KSGNetwork.h 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798
  1. #pragma once
  2. #include <Array.h>
  3. namespace Framework
  4. {
  5. class Text;
  6. }
  7. namespace Network
  8. {
  9. class Klient;
  10. }
  11. namespace KSGClient
  12. {
  13. // Enthält die Daten eines Spielers zu einem vergangenen Spiel
  14. struct SpielHistorieSpielerDaten
  15. {
  16. protected:
  17. int ref; // Reference Counter
  18. public:
  19. Framework::Text *name; // Der Sichtabe Name des Spielers
  20. int punkte; // Die Punkte, die der Spieler in dem Spiel gewonnen / verloren hat
  21. Framework::Text *status; // Der Status des Spielers in dem Spiel (verloren, gewonnen, nicht anwesend, beobachter, unentschieden)
  22. int farbe; // Die Farbe des Spielers
  23. // Erhöht den Reference Counter um 1 un gibt this zurück
  24. virtual SpielHistorieSpielerDaten *getThis() = 0;
  25. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  26. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  27. virtual SpielHistorieSpielerDaten *release() = 0;
  28. };
  29. // Enthält die Datein eines Teams zu einem vergangenen Spiel
  30. struct SpielHistorieTeamDaten
  31. {
  32. protected:
  33. int ref; // Reference Counter
  34. public:
  35. Framework::Text *name; // Der Sichtabe Name des Teams
  36. int sAnzahl; // Die Anzahl der Spieler im Team
  37. Framework::Text *status; // Der Status des Teams (verloren, gewonnen, beobachter, unentschieden)
  38. int farbe; // Die Farbe des Teams
  39. Framework::RCArray< SpielHistorieSpielerDaten > *spieler; // Eine Liste mit den Spielerdaten zu den Spielern aus dem Team
  40. // Erhöht den Reference Counter um 1 un gibt this zurück
  41. virtual SpielHistorieTeamDaten *getThis() = 0;
  42. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  43. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  44. virtual SpielHistorieTeamDaten *release() = 0;
  45. };
  46. // Enthält Daten zu einem vergangenen Spiel
  47. struct SpielHistorieDaten
  48. {
  49. protected:
  50. int ref; // Reference Counter
  51. public:
  52. int id; // Die Id des vergangenen Spiels
  53. int karteId; // Die Id der Karte, welche gespielt wurde
  54. Framework::Text *spiel; // Der Name des Spiels, welches gespielt wurde
  55. Framework::Text *karte; // Der Name der Karte, welche gespielt wurde
  56. Framework::Text *datum; // Der Zeitpunkt, an dem das Spiel Statfand
  57. Framework::Text *status; // Der Status des Spielers, über welchen die Statistik angefragt wurde
  58. Framework::Text *dauer; // Die Dater des Spiels
  59. Framework::Text *spielStatus; // Der Status des Spiels (beginnt, läuft, abgebrochen, fehlerhaft, beendet, unbewertet)
  60. Framework::Text *gewinner; // Der Name des Gewinners
  61. int sAnzahl; // Die Anzahl der Spieler
  62. Framework::RCArray< SpielHistorieTeamDaten > *teams; // Die Daten der Teams des Spiels
  63. // Erhöht den Reference Counter um 1 un gibt this zurück
  64. virtual SpielHistorieDaten *getThis() = 0;
  65. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  66. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  67. virtual SpielHistorieDaten *release() = 0;
  68. };
  69. // Enthält eine Liste von Spiel Daten aus vergangenen Spielen
  70. struct SpielHistorieListe
  71. {
  72. protected:
  73. int ref; // Reference Counter
  74. public:
  75. Framework::RCArray< SpielHistorieDaten > *spiele; // Eine Liste mit den Daten zu vergangenen Spielen
  76. // Erhöht den Reference Counter um 1 un gibt this zurück
  77. virtual SpielHistorieListe *getThis() = 0;
  78. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  79. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  80. virtual SpielHistorieListe *release() = 0;
  81. };
  82. struct AccountInfo
  83. {
  84. protected:
  85. int ref; // Reference Counter
  86. public:
  87. int id; // Die Id des Accounts
  88. Framework::Text *name; // Der angezeigte Name des Accounts
  89. Framework::Text zuletztOnline; // Der Zeitpunkt, zu dem der Account zuletzt online war
  90. Framework::Text letztesSpiel; // Der Name des zuletzt gespielten online Spiels
  91. Framework::Text letzteKarte; // Der Name der zuletzt gespielten Karte
  92. Framework::Text punkte; // Die Punkte des Spielers in dem Spiel
  93. // Erhöht den Reference Counter um 1 un gibt this zurück
  94. virtual AccountInfo *getThis() = 0;
  95. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  96. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  97. virtual AccountInfo *release() = 0;
  98. };
  99. struct AccountActivityInfo
  100. {
  101. protected:
  102. int ref; // Reference Counter
  103. public:
  104. Framework::Text datum; // Das Datum für das die Werte gillt
  105. double stOnline; // Die Anzahl der Stunden, die der Account Online war
  106. double stGespielt; // Die Anzahl der Stunden, die der Account in online Spielen verbracht hat
  107. int anzSpiele; // Die Anzahl der gespielten online Spiele
  108. int anzGewonnen; // Die Anzahl der gewonnenen online Spiele
  109. // Erhöht den Reference Counter um 1 un gibt this zurück
  110. virtual AccountActivityInfo *getThis() = 0;
  111. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  112. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  113. virtual AccountActivityInfo *release() = 0;
  114. };
  115. struct ChatServerNachricht
  116. {
  117. protected:
  118. int ref; // Reference Counter
  119. public:
  120. char type; // Typ der Nachricht
  121. Framework::Text *message; // Text der Nachricht
  122. int account; // Beteiligter Account
  123. int gruppe; // Beteiligte Gruppe
  124. int chatroom; // Beteiligter Chatraum
  125. Framework::Array< int > *ids; // Liste mit Account Ids
  126. // Erhöht den Reference Counter um 1 un gibt this zurück
  127. virtual ChatServerNachricht *getThis() = 0;
  128. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  129. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  130. virtual ChatServerNachricht *release() = 0;
  131. };
  132. // Wird benutzt, um die Verbindung mit den Servern aufrecht zu erhalten. Bei einem Verbindungsabbruch wird der Client automatisch abgemeldet
  133. class ErhaltungServerClient
  134. {
  135. };
  136. // Wird benutzt, um aktualisierte Spieldateien herunterzuladen
  137. class PatchServerClient
  138. {
  139. };
  140. // Wird verwendet um News Oberflächen abzufragen (KSG Script Seiten)
  141. class NewsServerClient
  142. {
  143. };
  144. // Wird benutzt, um Accounts zu erstellen zu ändern oder zu löschen
  145. class RegisterServerClient
  146. {
  147. public:
  148. // verbindet ich mit dem Register Server
  149. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  150. virtual bool verbinde() = 0;
  151. // Sendet eine Anfrage auf Erstellung eines neuen Accounts. Ein neuer Account kann erst verwendet werden, wenn ein Link in der Bestätigungsemail angeklickt wurde.
  152. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  153. // name: Der Login Name des Accounts
  154. // pass: Das Login Passwort des Accounts
  155. // geheim: Das Geheimnis des Accounts
  156. // eMail: Die EMail Adresse an die die bestätigungs EMail gesendet werden soll
  157. // jahr: Das Jahr des Geburtsdatums
  158. // monat: Der Monat des Geburtstages
  159. // tag: Der Tag des Geburtstages
  160. virtual bool accountErstellen( const char *name, const char *pass, const char *geheim, const char *eMail, unsigned short jahr, char monat, char tag ) = 0;
  161. // Sendet eine Anfrage auf Löschung eines neuen Accounts. Ein neuer Account kann erst gelöscht werden, wenn ein Link in der Bestätigungsemail angeklickt wurde.
  162. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  163. // name: Der Login Name des Accounts
  164. // pass: Das Login Passwort des Accounts
  165. // geheim: Das Geheimnis des Accounts
  166. virtual bool accountLöschen( const char *name, const char *pass, const char *geheim ) = 0;
  167. // Ändert das Passwort eines Accounts
  168. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  169. // name: Der Login Name des Accounts
  170. // pass: Das Login Passwort des Accounts
  171. // geheim: Das Geheimnis des Accounts
  172. // nPass: Das neue Passwort des Accounts
  173. virtual bool passwortÄndern( const char *name, const char *pass, const char *geheim, const char *nPass ) = 0;
  174. // Ändert die EMail Adresse eines Accounts
  175. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  176. // name: Der Login Name des Accounts
  177. // pass: Das Login Passwort des Accounts
  178. // geheim: Das Geheimnis des Accounts
  179. // nEMail: Die neue EMail Adresse
  180. virtual bool eMailÄndern( const char *name, const char *pass, const char *geheim, const char *nEMail ) = 0;
  181. // Ändert das Geheimnis eines Accounts
  182. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  183. // name: Der Login Name des Accounts
  184. // pass: Das Login Passwort des Accounts
  185. // geheim: Das Geheimnis des Accounts
  186. // nGeheim: Das neue Geheimnis
  187. virtual bool geheimnisÄndern( const char *name, const char *pass, const char *geheim, const char *nGeheim ) = 0;
  188. // Sendet eine Anfrage auf Name Vergessen. Der Name wird an die angegebene EMail Adresse gesendet
  189. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  190. // pass: Das Login Passwort des Accounts
  191. // geheim: Das Geheimnis des Accounts
  192. virtual bool nameVergessen( const char *pass, const char *geheim ) = 0;
  193. // Sendet eine Anfrage auf Passwort Vergessen. Es wird ein Link an die angegebene Email Adresse gesendet, über den ein neues Passwort vergeben werden kann
  194. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  195. // name: Der Login Name des Accounts
  196. // geheim: Das Geheimnis des Accounts
  197. virtual bool passwortVergessen( const char *name, const char *geheim ) = 0;
  198. // Sendet eine Anfrage auf Geheimnis Vergessen. Das Geheimnis wird an die angegebene EMail Adresse gesendet
  199. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  200. // name: Der Login Name des Accounts
  201. // pass: Das Login Passwort des Accounts
  202. virtual bool geheimnisVergessen( const char *name, const char *pass ) = 0;
  203. // Sendet eine Anfrage auf EMail Vergessen. Die EMail Adresse wird direkt vom Server zurückgegeben
  204. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  205. // name: Der Login Name des Accounts
  206. // pass: Das Login Passwort des Accounts
  207. // geheim: Das Geheimnis des Accounts
  208. // eMail: Ein Zeiger auf eine Zeichenkette. Diese wird bei einem Erfolgreichen Aufruf auf die EMail Adresse gesetzt und muss manuell mit delete[] gelöscht werden
  209. virtual bool eMailVergessen( const char *name, const char *pass, const char *geheim, char **eMail ) = 0;
  210. // Erhält die Verbindung aufrecht
  211. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  212. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  213. virtual bool keepAlive() = 0;
  214. // Trennt die Verbindung zum Server
  215. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  216. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  217. virtual bool trenne() = 0;
  218. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  219. virtual bool istVerbunden() const = 0;
  220. // gibt den Letzten Fehlertext zuück
  221. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  222. virtual char *getLetzterFehler() const = 0;
  223. // Erhöht den Reference Counter um 1 un gibt this zurück
  224. virtual RegisterServerClient *getThis() = 0;
  225. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  226. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  227. virtual RegisterServerClient *release() = 0;
  228. };
  229. // Wird verwendet um sich einzuloggen oder auszuloggen
  230. class LoginServerClient
  231. {
  232. public:
  233. // verbindet sich mit dem zugewiesenen Login Server
  234. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  235. virtual bool verbinde() = 0;
  236. // Der Client wird beim Serversystem in einen Account eingeloggt
  237. // gibt bei Erfolg 1 zurück
  238. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  239. virtual int login( const char *name, const char *pass ) = 0;
  240. // Diese Funktion wird in der Zukunft mal implementiert werden. Mit dem Geheimnis des Accounts können so andere Clients, welche bereits in dem Account eingeloggt werden rausgeschmissen werden.
  241. virtual bool kick( const char *geheim ) = 0;
  242. // logt den Account aus
  243. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  244. // sollte erst aufgerufen werden, nachdem ein erfolgreicher Aufruf von login erfolg ist
  245. virtual bool logout() = 0;
  246. // Erhält die Verbindung aufrecht
  247. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  248. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  249. virtual bool keepAlive() = 0;
  250. // Trennt die Verbindung zum Server
  251. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  252. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  253. virtual bool trenne() = 0;
  254. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  255. virtual bool istVerbunden() const = 0;
  256. // Gibt die Id des Accounts zurück, in den sich der Client eingeloggt hat.
  257. // sollte erst aufgerufen werden, nachdem ein erfolgreicher Aufruf von login erfolg ist
  258. virtual int getAccountId() const = 0;
  259. // gibt den Letzten Fehlertext zuück
  260. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  261. virtual char *getLetzterFehler() const = 0;
  262. // Erhöht den Reference Counter um 1 un gibt this zurück
  263. virtual LoginServerClient *getThis() = 0;
  264. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  265. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  266. virtual LoginServerClient *release() = 0;
  267. };
  268. // Wird verwendet um informationen über Accounts abzufragen
  269. // Kann nur von eingeloggten Clients verwendet werden
  270. class InformationServerClient
  271. {
  272. public:
  273. // verbindet ich mit dem zugewiesenen Informaion Server
  274. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  275. virtual bool verbinde() = 0;
  276. // fragt nach dem Informationstext
  277. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  278. // txt: Ein Zeiger auf ein Text Objekt, welches bei einem erfolgreichen Aufruf den Informationstext enthält
  279. // typ: ein Zeieger auf ein Integer, welches bei einem erfolgreichen Aufruf den Typ der Information enthält
  280. virtual bool getInformationText( Framework::Text *txt, int *typ ) = 0;
  281. // fragt, ob das entsprechende Spiel vom Server gesperrt wurde
  282. // spielId: Die Id des Spiels
  283. // Gibt 1 zurück, falls das Spiel gespielt werden darf, 0 sonnst
  284. virtual bool istSpielErlaubt( int spielId ) = 0;
  285. // fragt, ob die entsprechende Karte vom Server gesperrt wurde
  286. // karteId: Die Id der Karte
  287. // Gibt 1 zurück, falls die Karte gespielt werden darf, 0 sonnst
  288. virtual bool istKarteErlaubt( int karteId ) = 0;
  289. // Ermittelt die Id einer Karte
  290. // name: Der Name der Karte
  291. // Gibt bei misserfolg 0 zurück
  292. virtual int getKarteId( char *name ) = 0;
  293. // Fragt nach der Id eines Spiels
  294. // name: Der Name des Spiels
  295. // Gibt bei misserfolg 0 zurück
  296. virtual int getSpielId( char *name ) = 0;
  297. // fragt nach dem Namen eines Accounts
  298. // accountId: Die Id des Accounts
  299. // Gibt bei misserfolg 0 zurück
  300. virtual Framework::Text *getSpielerName( int accountId ) = 0;
  301. // fragt nach der Spiel Statistik eines Accounts
  302. // accountId: Die Id des Accounts
  303. // spielId: Die Id des Spiels
  304. // werte: Nach erfolgreichem Aufruf enthält die Liste die Statistik werte (gespielt, gewonnen, verloren, punkte, bw0, bw1, bw2, bw3, bw4, bw5)
  305. virtual bool getSpielStatistik( int accountId, int spielId, Framework::Array< int > *werte ) = 0;
  306. // fragt nach dem Namen einer Karte
  307. // karteId: Die id der Karte
  308. // Gibt bei misserfolg 0 zurück
  309. virtual Framework::Text *getKarteName( int karteId ) = 0;
  310. // fragt nach dem Namen eines Spiels
  311. // spielId: Die id des Spiels
  312. // Gibt bei misserfolg 0 zurück
  313. virtual Framework::Text *getSpielName( int spielId ) = 0;
  314. // fragt nach dem Namen eines Chatrooms
  315. // chatroomId: Die id des Chatrooms
  316. // Gibt bei misserfolg 0 zurück
  317. virtual Framework::Text *getChatroomName( int chatroomId ) = 0;
  318. // fragt zu welcher Spielart die Karte gehört
  319. // karteId: Die id der Karte
  320. // Gibt bei misserfolg 0 zurück
  321. virtual int getSpielId( int karteId ) = 0;
  322. // gibt die Id eines Accounts zurück
  323. // name: Der Angezeigte Name des Accounts
  324. // Gibt bei misserfolg 0 zurück
  325. virtual int getAccountId( char *name ) = 0;
  326. // gibt die Id des Chatrooms zurück
  327. // name: Der name des Chatrooms
  328. // Gibt bei misserfolg 0 zurück
  329. virtual int getChatroomId( char *name ) = 0;
  330. // gibt die karten Id zurück, zu dem eine Gruppe erstellt wurde
  331. // gruppenId: Die id der Gruppe
  332. // Gibt bei misserfolg 0 zurück
  333. virtual int getGruppenKarteId( int gruppenId ) = 0;
  334. // gibt 1 zurück, wenn zu einer Gruppe Spieler hinzugefügt werden können, 0 sonnst
  335. // gruppeId: Die id der Gruppe
  336. virtual bool getGruppeSpielerHinzufügen( int gruppeId ) = 0;
  337. // gibt die Account Id des Gruppen Administrators zurück
  338. // gruppeId: Die Id der Gruppe
  339. // Gibt bei misserfolg 0 zurück
  340. virtual int getGruppeAdminId( int gruppeId ) = 0;
  341. // gibt die Punkte eines Spielers zurück
  342. // accountId: Die Accont Id des Spielers
  343. // spielId: Die Id des Spiels
  344. // Gibt bei misserfolg 0 zurück
  345. virtual int getSpielerPunkte( int accountId, int spielId ) = 0;
  346. // gibt eine Liste mit Ids von gekauften Spielen zurück
  347. // Gibt bei misserfolg 0 zurück
  348. virtual Framework::Array< int > *getAccountSpielArtListe() = 0;
  349. // gibt die neuste Version eines Spiels zurück
  350. // spielId: Die Id des Spiels
  351. // Gibt bei misserfolg 0 zurück
  352. virtual int getSpielVersion( int spielId ) = 0;
  353. // gibt das Kupfer des Accounts zurück
  354. // Gibt bei misserfolg 0 zurück
  355. virtual int getKupfer() = 0;
  356. // Gibt die Dateigruppem Id eines Spieles zurück
  357. // spielId: Die Id des Spiels
  358. // Gibt bei misserfolg 0 zurück
  359. virtual int getDateiGruppeIdVonSpiel( int spielId ) = 0;
  360. // Gibt den Dateigruppen Pfad zurück
  361. // dgId: Die Id der Dateigruppe
  362. // Gibt bei misserfolg 0 zurück
  363. virtual Framework::Text *getDateiGruppePfad( int dgId ) = 0;
  364. // gibt eine Liste mit gekauften Karten zurück
  365. // spielId: Die Spiel Id zu der die Karten gehören sollen
  366. // Gibt bei misserfolg 0 zurück
  367. virtual Framework::Array< int > *getAccountKarteListe( int spielId ) = 0;
  368. // Gibt die Dateigruppen Id eines Pfades zurück
  369. // pfad: Der Pfad der Dateigruppe
  370. // Gibt bei misserfolg 0 zurück
  371. virtual int getDateiGruppeIdVonPfad( char *pfad ) = 0;
  372. // gibt die neuste Version einer Dateigruppe zurück
  373. // dg: Die Dateigruppen Id
  374. // Gibt bei misserfolg 0 zurück
  375. virtual int getDateiGruppeVersion( int dg ) = 0;
  376. // Gibt eine Liste Mit Accounts zurück, die einen bestimmten Text im Namen haben und bestimmt Sortiert ist
  377. // suche: Der Text, der in den Namen enthalten sein soll
  378. // seite: Die gewünschte Seite der Tabelle (enthält nach einem Erfolgreichen Aufruf die korrekte Seite)
  379. // maxSeite: Enthält nach erfolgreichem Aufruf die Maximale Seite
  380. // sortSpalte: Die Spalte, nach der Sortiert werden soll
  381. // rückwärts: 1:=Rückwärtzt Sortierung, 0:=Vorwärts Sortierung
  382. // accounts: Enthält nach erfolgreichem Aufruf die Daten der Accounts
  383. // Gibt die Anzahl der gefundenen Accounts zurück
  384. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  385. virtual int getSpielerListe( char *suche, int *seite, int *maxSeite, char sortSpalte, char rückwärts, Framework::RCArray< AccountInfo > *accounts ) = 0;
  386. // ermittelt die aktivität eines Spielers
  387. // accId: Die Id des Accounts
  388. // info: Enthält nach erfolgreichem Aufruf die Aktivitätsinformationen der letzten 30 Tage
  389. virtual bool getSpielerAktivität( int accId, Framework::RCArray< AccountActivityInfo > *info ) = 0;
  390. // Gibt zurück, wie oft ein Spieler eine Karte schon gespielt hat
  391. // account: Die Id des Accounts
  392. // karte: Die Id der Karte
  393. virtual int getAccountKarteSpiele( int account, int karte ) = 0;
  394. // Gibt zurück, wie oft ein Spieler eine Karte schon gewonnen hat
  395. // account: Die Id des Accounts
  396. // karte: Die Id der Karte
  397. virtual int getAccountKarteSpieleGewonnen( int account, int karte ) = 0;
  398. // Gibt zurück, ob ein Spieler die Karte im Besitz hat
  399. // account: Die Id des Accounts
  400. // karte: Die Id der Karte
  401. virtual bool hatAccountKarte( int account, int karte ) = 0;
  402. // Gibt zurück, ob ein Spieler ein Spiel im Besitz hat
  403. // account: Die Id des Accounts
  404. // spiel: Die Id des Spiels
  405. virtual bool hatAccountSpiel( int account, int spiel ) = 0;
  406. // gibt eine Liste mit Ids von Karten zurück, die von einem Spieler bereits gespielt wurden
  407. // account: Die Id des Accounts
  408. // spiel: Die Id des Spiels
  409. // Gibt bei misserfolg 0 zurück
  410. virtual Framework::Array< int > *getAccountKarteGespieltListe( int account, int spielId ) = 0;
  411. // gibt eine Liste mit Ids von Spielen zurück, die von einem Spieler bereits gespielt wurden
  412. // account: Die Id des Accounts
  413. // Gibt bei misserfolg 0 zurück
  414. virtual Framework::Array< int > *getAccountSpielGespieltListe( int account ) = 0;
  415. // Gibt eine Liste von Spiel Partnern eines Spielers zurück
  416. // account: Die Id des Accounts
  417. // spieler: Enthält nach erfolgreichem Aufruf eine Liste mit Account Ids der Spiel Partner
  418. // karten: Enthält nach erfolgreichem Aufruf eine Liste mit den Ids der gespielten Karten
  419. // anzahl: Enthält nach erfolgreichem Aufruf eine Liste mit der Anzahl der Spiele
  420. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  421. virtual bool getSpielPartnerListe( int account, Framework::Array< int > *spieler, Framework::Array< int > *karten, Framework::Array< int > *anzahl ) = 0;
  422. // Gibt eine Liste mit Spiel Statistiken zurück
  423. // account: Die Id des Accounts zu dem die Statistik ermittelt werden soll
  424. // seite: Die gewünschte Seite. Enthält nach efolgreichem Aufruf die korrekte Seite
  425. // maxSeite: Enthält nach erfolgreichem Aufruf die Macimale Seite
  426. // sortSpalte: Die Spalte, nach der Sortiert werden soll
  427. // rückwärts: 1:=Rückwärtzt Sortierung, 0:=Vorwärts Sortierung
  428. // werte: Enthält nach erfolgreichem Aufruf eine Liste mit Statistik Werten (gespielt, gewonnen, verloren, punkte, bw0, bw1, bw2, bw3, bw4, bw5)
  429. // namen: Enthält nach erfolgreichem Aufruf die Namen der Spiele
  430. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  431. virtual bool getStatistikListe( int account, int *seite, int *maxSeite, char sortSpalte, char rückwärts,
  432. Framework::RCArray< Framework::Array< int > > *werte, Framework::RCArray< Framework::Text > *namen ) = 0;
  433. // Gibt eine Liste mit den Daten der letzten 20 Spiele von einem Account zurück
  434. // account: Die Id des Accounts
  435. // Gibt bei misserfolg 0 zurück
  436. virtual SpielHistorieListe *getSpielHistorieDaten( int account ) = 0;
  437. // Erzeugt einen Client zu dem Historie Server, welcher die Aufzeichnungen und Statistiken eines Bestimmten Spiels verwaltet
  438. // spielId: Die id des Spiels
  439. // Gibt bei misserfolg 0 zurück
  440. virtual HistorieServerClient *createHistorieServerClient( int spielId ) = 0; // sucht nach dem Historie Server von einem Spiel
  441. // Prüft, ob der Account bestimmte Berechtigungen besitzt
  442. // recht: Die Id der Berechtigungen
  443. virtual bool hatRecht( int recht ) = 0; // Prüft ob Berechtigung vorhanden
  444. // Gibt eine Liste mit Karten zurück, die einen bestimmten Text im Namen enthalten und bestimmt sortiert ist
  445. // filter: Die Zeichenkette, die im Namen Auftreten soll
  446. // sortSpalte: Der Index der Spalte, nach der sortiert werden soll
  447. // absteigend: 1:=absteigende sortierung,0:=aufsteigende Sortierung
  448. // kId: Eine Liste, welche nach einem erfolgreichen Aufruf die Ids der Karten enthält
  449. // kName: Eine Liste, welche nach einem erfolgreichen Aufruf die Namen der Karten enthält
  450. // sName: Eine Liste, welche nach einem erfolgreichen Aufruf die Namen der Spiele der Karten enthält
  451. // kupfer: Eine Liste, welche nach einem erfolgreichen Aufruf die Preise der Karten in Kupfer
  452. // verkauft: Eine Liste, welche nach einem erfolgreichen Aufruf die Anzahl der Verkäufe der Karten enthält
  453. // maxSpieler: Eine Liste, welche nach einem erfolgreichen Aufruf die Maximalen Spieleranzahlen der Karten enthält
  454. virtual int getKartenListe( char *filter, char sortSpalte, char absteigend, Framework::Array< int > *kId, Framework::RCArray< Framework::Text > *kName, Framework::RCArray< Framework::Text > *sName,
  455. Framework::Array< int > *kupfer, Framework::Array< int > *verkauft, Framework::Array< int > *maxSpieler ) = 0;
  456. // Erzeugt einen Client zu dem Editor Server von der Karte mit einer bestimmten Id
  457. // karteId: Die Id der Karte
  458. // Gibt bei misserfolg 0 zurück
  459. virtual EditorServerClient *createEditorServerClient( int karteId ) = 0;
  460. // Erzeugt einen Client zu dem Karten Server von der Karte mit einer bestimmten Id
  461. // karteId: Die Id der Karte
  462. // Gibt bei misserfolg 0 zurück
  463. virtual KartenServerClient *createKartenServerClient( int karteId ) = 0;
  464. // Erhält die Verbindung aufrecht
  465. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  466. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  467. virtual bool keepAlive() = 0;
  468. // Trennt die Verbindung zum Server
  469. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  470. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  471. virtual bool trenne() = 0;
  472. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  473. virtual bool istVerbunden() const = 0;
  474. // gibt den Letzten Fehlertext zuück
  475. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  476. virtual char *getLetzterFehler() const = 0;
  477. // Erhöht den Reference Counter um 1 un gibt this zurück
  478. virtual InformationServerClient *getThis() = 0;
  479. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  480. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  481. virtual InformationServerClient *release() = 0;
  482. };
  483. // Wird verwendet um Chat nachrichten zu senden oder zu empfangen. Das Serversystem sendet außerdem einiege Mitteilungen über den Chat (z.B. Gefundene Spiele, Gruppeneinladungen ...)
  484. // Kann nur von eingeloggten Clients verwendet werden
  485. class ChatServerClient
  486. {
  487. public:
  488. // verbindet sich mit dem zugewiesenen Chat Server
  489. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  490. virtual bool verbinde() = 0;
  491. // sendet eine Chat Nachricht zu einem Account
  492. // zuAccount: Id des Ziel Accounts
  493. // nachricht: Die Nachricht
  494. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  495. virtual bool chatNachricht( int zuAccount, const char *nachricht ) = 0;
  496. // ändert den angezeigten Account Namen
  497. // name: der neue Name
  498. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  499. virtual bool accountNameÄndern( const char *name ) = 0;
  500. // beendet die Freundschaft mit einem Account
  501. // accountId: Die Id des Accounts
  502. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  503. virtual bool freundschaftBeenden( int accountId ) = 0;
  504. // sendet eine Freundesanfragezu einem Account
  505. // accountId: Die Id des Accounts
  506. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  507. virtual bool freundesAnfrage( int accountId ) = 0;
  508. // beantwortet eine Freundesanfrage
  509. // accountId: Die Id des Accounts
  510. // ja: 1:=annehmen,0:=ablehnen
  511. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  512. virtual bool freundesAnfrageBeantworten( int accountId, bool ja ) = 0;
  513. // erstellt ein chatroom
  514. // name: Der Name des Chatrooms
  515. // Gibt bei erfolg die Id des Chatrooms zurück, 0 sonst
  516. virtual int chatroomErstellen( const char *name ) = 0;
  517. // Sendet eine Einladung zum Chatroom
  518. // accountId: Die Id des Accounts der eingeladen werden soll
  519. // chatroomId: Die Id des Chatrooms
  520. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  521. virtual bool chatroomEinladung( int accountId, int chatroomId ) = 0;
  522. // Einladung zum Chatroom wird abgelehnt
  523. // accountId: Die Id des Accounts
  524. // chatroomId: Die Id des Chatrooms
  525. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  526. virtual bool chatroomEinladungAblehnen( int accountId, int chatroomId ) = 0;
  527. // betritt ein chatroom
  528. // chatroomId: Die Id des Chatrooms
  529. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  530. virtual bool chatroomBetreten( int chatroomId ) = 0;
  531. // chatroom Nachricht senden
  532. // chatroomId: Die Id des Chatrooms
  533. // nachricht: Die Nachricht die gesendet werden soll
  534. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  535. virtual bool chatroomNachricht( int chatroomId, const char *nachricht ) = 0;
  536. // verlässt chatroom
  537. // chatroomId: Die Id des Chatrooms
  538. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  539. virtual bool chatroomVerlassen( int chatroomId ) = 0;
  540. // kickt Account aus Chatroom (nur wenn als admin des Chatrooms eingeloggt)
  541. // chatroomId: Die Id des Chatrooms
  542. // accountId: Die Id des Accounts
  543. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  544. virtual bool chatroomKick( int chatroomId, int accountId ) = 0;
  545. // fragt nach allen freunden
  546. // Die Liste der Freunde kann über getNextMessage empfangen werden
  547. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  548. virtual bool freundesListeAnfragen() = 0;
  549. // fragt nach allen chatnachrichten, die gesendet wurden, während der Account in den der Client eingeloggt ist, offline war
  550. // Die einzelnen Nachrichten können über getNextMessage empfangen werden
  551. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  552. virtual bool chatNachrichtAnfrage() = 0;
  553. // Erhält die Verbindung aufrecht
  554. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  555. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  556. virtual bool keepAlive() = 0;
  557. // Trennt die Verbindung zum Server
  558. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  559. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  560. virtual bool trenne() = 0;
  561. // Wartet auf eine Nachricht vom Chatserver und gibt diese zurück.
  562. virtual ChatServerNachricht *getNextMessage() = 0;
  563. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  564. virtual bool istVerbunden() const = 0;
  565. // gibt den Letzten Fehlertext zuück
  566. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  567. virtual char *getLetzterFehler() const = 0;
  568. // Erhöht den Reference Counter um 1 un gibt this zurück
  569. virtual ChatServerClient *getThis() = 0;
  570. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  571. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  572. virtual ChatServerClient *release() = 0;
  573. };
  574. // Wird verwendet um Spiele oder Karten zu kaufen
  575. // Kann nur von eingeloggten Clients verwendet werden
  576. class ShopServerClient
  577. {
  578. };
  579. // Wird verwendet um sich für Spiele anzumelden
  580. // Kann nur von eingeloggten Clients verwendet werden
  581. class AnmeldungServerClient
  582. {
  583. public:
  584. // verbindet sich mit dem zugewiesenen Anmeldung Server
  585. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  586. bool verbinde();
  587. // erstellt eine gruppe
  588. // karteId: Die Id der Karte für die die Gruppe erstellt werden soll
  589. // Gibt bei Erfolg die Id der Gruppe zurück. Bei misserfolg wird 0 zurückgegeben
  590. int gruppeErstellen( int karteId );
  591. // Betritt eine Gruppe
  592. // gruppeId: Die Id der Gruppe
  593. // mitglieder: Nach erfolgreichem Aufruf enthält diese Liste die Lister der Account Ids der Gruppenmitglieder
  594. // anzahl: Nach erfolgreichem Aufruf wird hier die Anzahl der Gruppenmitglieder gespeichert
  595. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  596. bool gruppeBetreten( int gruppeId, Framework::Array< int > *mitglieder, int *anzahl );
  597. // Verlässt eine Gruppe
  598. // gruppeId: Die Id der Gruppe
  599. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  600. bool gruppeVerlassen( int gruppeId );
  601. // Trägt die Gruppe in die Warteschlange für die Karte ein (nur für den Gruppen Administrator)
  602. // gruppeId: Die Id der Gruppe
  603. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  604. bool gruppeAnmelden( int gruppeId );
  605. // Trägt die Gruppe aus der Warteschlange für die Karte aus (nur für den Gruppen Administrator)
  606. // gruppeId: Die Id der Gruppe
  607. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  608. bool gruppeAbmelden( int gruppeId );
  609. // läht Spieler ein die Gruppe zu betreten (nur für den Gruppen Administrator)
  610. // accountId: Die Id des Accounts
  611. // gruppeId: Die Id der Gruppe
  612. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  613. bool gruppeSpielerEinladen( int accountId, int gruppeId );
  614. // Zieht die Einladung eine Gruppe zu betreten zurück (nur für den Gruppen Administrator)
  615. // accountId: Die Id des Accounts
  616. // gruppeId: Die Id der Gruppe
  617. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  618. bool gruppeEinladungAbbrechen( int accountId, int gruppeId );
  619. // Einladung zur Gruppe ablehnen
  620. // gruppeId: Die Id der Gruppe
  621. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  622. bool gruppeEinladungAblehnen( int gruppeId );
  623. // wirft Spieler aus Gruppe (nur für den Gruppen Administrator)
  624. // accountId: Die Id des Accounts
  625. // gruppeId: Die Id der Gruppe
  626. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  627. bool kickSpielerAusGruppe( int accountId, int gruppeId );
  628. // Legt fest, ob die Spieler in der Gruppe alleine spielen wollen, oder ob weitere Spieler aus der Warteschlange hinzugefügt werden sollen bis die Karte voll ist
  629. // gruppeId: Die Id der Gruppe
  630. // spielStarte: 1:=alleine spielen, 0:=auf volles Spiel warten
  631. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  632. bool gruppeSpielStarten( int gruppeId, bool spielStarten );
  633. // Sendet eine Nachricht an den Gruppen Chat
  634. // gruppeId: Die Id der Gruppe
  635. // nachricht: Die Nachricht, die gesendet werden soll
  636. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  637. bool gruppeNachricht( int gruppeId, char *nachricht );
  638. // Meldet den eingeloggten Account in der Warteschlange für eine Karte an
  639. // karteId: Die Id der Karte
  640. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  641. bool anmelden( int karteId );
  642. // Meldet den eingeloggten Account aus der Warteschlange ab
  643. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  644. bool abmelden();
  645. // Erhält die Verbindung aufrecht
  646. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  647. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  648. bool keepAlive();
  649. // Trennt die Verbindung zum Server
  650. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  651. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  652. bool trenne();
  653. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  654. bool istVerbunden() const;
  655. // gibt den Letzten Fehlertext zuück
  656. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  657. char *getLetzterFehler() const;
  658. // Erhöht den Reference Counter um 1 un gibt this zurück
  659. AnmeldungServerClient *getThis();
  660. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  661. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  662. AnmeldungServerClient *release();
  663. };
  664. // Wird verwendet um die aktuellen versionen der Karten vor dem Spiel herunterzuladen
  665. // Kann nur von eingeloggten Clients verwendet werden
  666. class KartenServerClient
  667. {
  668. };
  669. // Wird zum Online Spielen verwendet
  670. // Kann nur von eingeloggten Clients verwendet werden
  671. class SpielServerClient
  672. {
  673. };
  674. // Wird verwendet um Statistiken und Aufzeichnungen von vergangenen Spielen abzufragen
  675. // Kann nur von eingeloggten Clients verwendet werden
  676. class HistorieServerClient
  677. {
  678. };
  679. // Wird verwendet um Minigame Bestscores abzufragen und Minigame Spielaufzeichnungen zu laden
  680. // Kann nur von eingeloggten Clients verwendet werden
  681. class MinigameServerClient
  682. {
  683. };
  684. // Wird verwendet um Karten für Spiele zu erstellen
  685. // Kann nur von eingeloggten Clients verwendet werden
  686. class EditorServerClient
  687. {
  688. };
  689. // Wird verwendet um Eine Verbindung mit dem Serversystem herzustellen
  690. class MainServerClient
  691. {
  692. public:
  693. // Meldet den neuen Client beim Serversystem an. Durch diesen Vorgang erhält der Client eine Id und den Port und die Ip Addresse des Main Servers
  694. virtual bool registerSSL( Framework::Text *ip, unsigned short port ) = 0;
  695. // Verbindet den Client mit dem Server
  696. // Wird automatisch aufgerufen, falls eine Methode aufgerufen wird, die eine Verbindung erfordert. In diesem Fall wird die Verbindung auch automatisch wieder getrennt.
  697. virtual bool connect() = 0;
  698. // Erzeugt einen Erhaltungs Server Client
  699. // Gibt bei misserfolg 0 zurück
  700. virtual ErhaltungServerClient *createErhaltungServerClient() = 0;
  701. // Erzeugt einen Patch Server Client
  702. // Gibt bei misserfolg 0 zurück
  703. virtual PatchServerClient *createPatchServerClient() = 0;
  704. // Erzeugt einen News Server Client
  705. // Gibt bei misserfolg 0 zurück
  706. virtual NewsServerClient *createNewsServerClient() = 0;
  707. // Erzeugt einen Register Server Client
  708. // Gibt bei misserfolg 0 zurück
  709. virtual RegisterServerClient *createRegisterServerClient() = 0;
  710. // Erzeugt einen Login Server Client
  711. // Gibt bei misserfolg 0 zurück
  712. virtual LoginServerClient *createLoginServerClient() = 0;
  713. // Erzeugt einen Information Server Client
  714. // Gibt bei misserfolg 0 zurück
  715. virtual InformationServerClient *createInformationServerClient() = 0;
  716. // Erzeugt einen Chat Server Client
  717. // Gibt bei misserfolg 0 zurück
  718. virtual ChatServerClient *createChatServerClient() = 0;
  719. // Erzeugt einen Shop Server Client
  720. // Gibt bei misserfolg 0 zurück
  721. virtual ShopServerClient *createShopServerClient() = 0;
  722. // Erzeugt einen Anmeldung Server Client
  723. // Gibt bei misserfolg 0 zurück
  724. virtual AnmeldungServerClient *createAnmeldungServerClient() = 0;
  725. // Erzeugt einen Minigame Server Client
  726. // Gibt bei misserfolg 0 zurück
  727. virtual MinigameServerClient *createMinigameServerClient() = 0;
  728. // Trennt die Verbindung zum Server. Muss nur aufgerufen werden, wenn vorher manuell connect aufgerufen wurde
  729. virtual bool disconnect() = 0;
  730. // Meldet den Client vom Server ab. Alle zuvor von diesem Client erzeugten Clients werden durch diesen Vorgang unbrauchbar
  731. virtual bool unregister() = 0;
  732. // Gibt die dem Client zugewiesene Id zurück.
  733. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  734. virtual int getClientId() const = 0;
  735. // Gibt die Ip Adresse des dem Client zugewiesenen Main Servers zurück.
  736. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  737. virtual Framework::Text *getServerIp() const = 0;
  738. // Gibt den Port des dem Client zugewiesenen Main Servers zurück.
  739. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  740. virtual unsigned short getServerPort() const = 0;
  741. };
  742. extern "C"
  743. {
  744. // Einstiegspunkte in die Bibliothek
  745. // Erzeugt einen neuen Client beim Serversystem.
  746. // registerSSL Methode muss aufgerufen werden um den Client beim Serversystem anzumelden
  747. MainServerClient *createMainServerClient();
  748. // Erzeugt einen Client, der bereits beim Serversystem angemeldet ist
  749. // ip: Die Ip des Main Servers für angemeldete Clients
  750. // port: Der Port des Main Servers für angemeldete Clients
  751. // klientId: Die Id die der Client durch das Anmelden bekommen hat
  752. MainServerClient *createMainServerClient( char *ip, unsigned short port, int klientId );
  753. }
  754. }