KSGNetwork.h 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458
  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; // TODO: Ermitteln wozu dieser Wert gut ist
  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. // Wird benutzt, um die Verbindung mit den Servern aufrecht zu erhalten. Bei einem Verbindungsabbruch wird der Client automatisch abgemeldet
  83. class ErhaltungServerClient
  84. {
  85. };
  86. // Wird benutzt, um aktualisierte Spieldateien herunterzuladen
  87. class PatchServerClient
  88. {
  89. };
  90. // Wird verwendet um News Oberflächen abzufragen (KSG Script Seiten)
  91. class NewsServerClient
  92. {
  93. };
  94. // Wird benutzt, um Accounts zu erstellen zu ändern oder zu löschen
  95. class RegisterServerClient
  96. {
  97. public:
  98. // verbindet ich mit dem Register Server
  99. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  100. virtual bool verbinde() = 0;
  101. // Sendet eine Anfrage auf Erstellung eines neuen Accounts. Ein neuer Account kann erst verwendet werden, wenn ein Link in der Bestätigungsemail angeklickt wurde.
  102. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  103. // name: Der Login Name des Accounts
  104. // pass: Das Login Passwort des Accounts
  105. // geheim: Das Geheimnis des Accounts
  106. // eMail: Die EMail Adresse an die die bestätigungs EMail gesendet werden soll
  107. // jahr: Das Jahr des Geburtsdatums
  108. // monat: Der Monat des Geburtstages
  109. // tag: Der Tag des Geburtstages
  110. virtual bool accountErstellen( const char *name, const char *pass, const char *geheim, const char *eMail, unsigned short jahr, char monat, char tag ) = 0;
  111. // 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.
  112. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  113. // name: Der Login Name des Accounts
  114. // pass: Das Login Passwort des Accounts
  115. // geheim: Das Geheimnis des Accounts
  116. virtual bool accountLöschen( const char *name, const char *pass, const char *geheim ) = 0;
  117. // Ändert das Passwort eines Accounts
  118. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  119. // name: Der Login Name des Accounts
  120. // pass: Das Login Passwort des Accounts
  121. // geheim: Das Geheimnis des Accounts
  122. // nPass: Das neue Passwort des Accounts
  123. virtual bool passwortÄndern( const char *name, const char *pass, const char *geheim, const char *nPass ) = 0;
  124. // Ändert die EMail Adresse eines Accounts
  125. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  126. // name: Der Login Name des Accounts
  127. // pass: Das Login Passwort des Accounts
  128. // geheim: Das Geheimnis des Accounts
  129. // nEMail: Die neue EMail Adresse
  130. virtual bool eMailÄndern( const char *name, const char *pass, const char *geheim, const char *nEMail ) = 0;
  131. // Ändert das Geheimnis eines Accounts
  132. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  133. // name: Der Login Name des Accounts
  134. // pass: Das Login Passwort des Accounts
  135. // geheim: Das Geheimnis des Accounts
  136. // nGeheim: Das neue Geheimnis
  137. virtual bool geheimnisÄndern( const char *name, const char *pass, const char *geheim, const char *nGeheim ) = 0;
  138. // Sendet eine Anfrage auf Name Vergessen. Der Name wird an die angegebene EMail Adresse gesendet
  139. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  140. // pass: Das Login Passwort des Accounts
  141. // geheim: Das Geheimnis des Accounts
  142. virtual bool nameVergessen( const char *pass, const char *geheim ) = 0;
  143. // Sendet eine Anfrage auf Passwort Vergessen. Es wird ein Link an die angegebene Email Adresse gesendet, über den ein neues Passwort vergeben werden kann
  144. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  145. // name: Der Login Name des Accounts
  146. // geheim: Das Geheimnis des Accounts
  147. virtual bool passwortVergessen( const char *name, const char *geheim ) = 0;
  148. // Sendet eine Anfrage auf Geheimnis Vergessen. Das Geheimnis wird an die angegebene EMail Adresse gesendet
  149. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  150. // name: Der Login Name des Accounts
  151. // pass: Das Login Passwort des Accounts
  152. virtual bool geheimnisVergessen( const char *name, const char *pass ) = 0;
  153. // Sendet eine Anfrage auf EMail Vergessen. Die EMail Adresse wird direkt vom Server zurückgegeben
  154. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  155. // name: Der Login Name des Accounts
  156. // pass: Das Login Passwort des Accounts
  157. // geheim: Das Geheimnis des Accounts
  158. // 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
  159. virtual bool eMailVergessen( const char *name, const char *pass, const char *geheim, char **eMail ) = 0;
  160. // Erhält die Verbindung aufrecht
  161. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  162. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  163. virtual bool keepAlive() = 0;
  164. // Trennt die Verbindung zum Server
  165. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  166. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  167. virtual bool trenne() = 0;
  168. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  169. virtual bool istVerbunden() const = 0;
  170. // gibt den Letzten Fehlertext zuück
  171. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  172. virtual char *getLetzterFehler() const = 0;
  173. // Erhöht den Reference Counter um 1 un gibt this zurück
  174. virtual RegisterServerClient *getThis() = 0;
  175. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  176. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  177. virtual RegisterServerClient *release() = 0;
  178. };
  179. // Wird verwendet um sich einzuloggen oder auszuloggen
  180. class LoginServerClient
  181. {
  182. public:
  183. // verbindet sich mit dem zugewiesenen Login Server
  184. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  185. virtual bool verbinde() = 0;
  186. // Der Client wird beim Serversystem in einen Account eingeloggt
  187. // gibt bei Erfolg 1 zurück
  188. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  189. virtual int login( const char *name, const char *pass ) = 0;
  190. // 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.
  191. virtual bool kick( const char *geheim ) = 0;
  192. // logt den Account aus
  193. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  194. // sollte erst aufgerufen werden, nachdem ein erfolgreicher Aufruf von login erfolg ist
  195. virtual bool logout() = 0;
  196. // Erhält die Verbindung aufrecht
  197. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  198. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  199. virtual bool keepAlive() = 0;
  200. // Trennt die Verbindung zum Server
  201. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  202. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  203. virtual bool trenne() = 0;
  204. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  205. virtual bool istVerbunden() const = 0;
  206. // Gibt die Id des Accounts zurück, in den sich der Client eingeloggt hat.
  207. // sollte erst aufgerufen werden, nachdem ein erfolgreicher Aufruf von login erfolg ist
  208. virtual int getAccountId() const = 0;
  209. // gibt den Letzten Fehlertext zuück
  210. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  211. virtual char *getLetzterFehler() const = 0;
  212. // Erhöht den Reference Counter um 1 un gibt this zurück
  213. virtual LoginServerClient *getThis() = 0;
  214. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  215. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  216. virtual LoginServerClient *release() = 0;
  217. };
  218. // Wird verwendet um informationen über Accounts abzufragen
  219. // Kann nur von eingeloggten Clients verwendet werden
  220. class InformationServerClient
  221. {
  222. public:
  223. // nicht constant
  224. virtual bool verbinde() = 0; // verbindet ich mit dem Informaion Server
  225. virtual bool getInformationText( Text *txt, int *typ ) = 0; // fragt nach Informationstext
  226. virtual bool istSpielErlaubt( int spielId ) = 0; // fragt, ob das entsprechende Spiel vom Server gesperrt wurde
  227. virtual bool istKarteErlaubt( int karteId ) = 0; // fragt, ob die entsprechende Karte vom Server gesperrt wurde
  228. virtual int getKarteId( char *name ) = 0; // fragt nach der Id einer Karte
  229. virtual int getSpielId( char *name ) = 0; // fragt nach der id eines Spiels
  230. virtual Text *getSpielerName( int accountId ) = 0; // fragt nach dem Namen eines Accounts
  231. virtual bool getSpielStatistik( int accountId, int spielId, Array< int > *werte ) = 0; // fragt nach der Spiel Statistik eines Accounts
  232. virtual Text *getKarteName( int karteId ) = 0; // fragt nach dem Namen einer Karte
  233. virtual Text *getSpielName( int spielId ) = 0; // fragt nach dem Namen einer Spielart
  234. virtual Text *getChatroomName( int chatroomId ) = 0; // fragt nach dem Namen eines Chatrooms
  235. virtual int getSpielId( int karteId ) = 0; // fragt zu welcher Spielart die Karte gehört
  236. virtual int getAccountId( char *name ) = 0; // gibt die Id des Accounts zurück
  237. virtual int getChatroomId( char *name ) = 0; // gibt die Id des Chatrooms zurück
  238. virtual int getGruppenKarteId( int gruppenId ) = 0; // gibt die karten Id der gruppe zurück
  239. virtual bool getGruppeSpielerHinzufügen( int gruppeId ) = 0; // gibt die Spieler hinzufügen Funktion der Gruppe zurück
  240. virtual int getGruppeAdminId( int gruppeId ) = 0; // gibt den Gruppen Administrator zurück
  241. virtual int getSpielerPunkte( int accountId, int spielId ) = 0; // gibt die Punkte eines Spielers zurück
  242. virtual Array< int > *getAccountSpielArtListe() = 0; // gibt eine Liste mit gekauften Spielen zurück
  243. virtual int getSpielVersion( int spielId ) = 0; // gibt die neuste Version eines Spiels zurück
  244. virtual int getKupfer() = 0; // gibt das Kupfer des Accounts zurück
  245. virtual int getDateiGruppeIdVonSpiel( int spielId ) = 0; // Gibt die Dateigruppe eines Spieles zurück
  246. virtual Text *getDateiGruppePfad( int dgId ) = 0; // Gibt den Dateigruppen Pfad zurück
  247. virtual Array< int > *getAccountKarteListe( int spielId ) = 0; // gibt eine Liste mit gekauften Karten zurück
  248. virtual int getDateiGruppeIdVonPfad( char *pfad ) = 0; // Gibt die Dateigruppe eines Pfades zurück
  249. virtual int getDateiGruppeVersion( int dg ) = 0; // gibt die neuste Version einer Dateigruppe zurück
  250. virtual int getSpielerListe( char *suche, int *seite, int *maxSeite, char sortSpalte, char rückwärts,
  251. Array< int > *accounts, RCArray< Text > *name, RCArray< Text > *zuletztOnline,
  252. RCArray< Text > *letztesSpiel, RCArray< Text > *letzteKarte, RCArray< Text > *punkte ) = 0; // sucht nach Spielern
  253. virtual bool getSpielerAktivität( int accId, RCArray< Text > *datum, Array< double > *stOnline, Array< double > *stGespielt,
  254. Array< int > *anzSpiele, Array< int > *anzGewonnen ) = 0; // ermittelt die aktivität eines Spielers
  255. virtual int getAccountKarteSpiele( int account, int karte ) = 0; // Gibt zurück, wie oft ein Spieler eine Karte schon gespielt hat
  256. virtual int getAccountKarteSpieleGewonnen( int account, int karte ) = 0; // Gibt zurück, wie oft ein Spieler eine Karte schon gewonnen hat
  257. virtual bool hatAccountKarte( int account, int karte ) = 0; // Gibt zurück, ob ein Spieler die Karte im Besitz hat
  258. virtual bool hatAccountSpiel( int account, int spiel ) = 0; // Gibt zurück, ob ein Spieler ein Spiel im Besitz hat
  259. virtual Array< int > *getAccountKarteGespieltListe( int account, int spielId ) = 0; // gibt eine Liste mit Karten zurück, die von einem Spieler bereits gespielt wurden
  260. virtual Array< int > *getAccountSpielGespieltListe( int account ) = 0; // gibt eine Liste mit Spielen zurück, die von einem Spieler bereits gespielt wurden
  261. virtual bool getSpielPartnerListe( int account, Array< int > *spieler, Array< int > *karten, Array< int > *anzahl ) = 0; // Gibt eine Liste von Spiel Partnern eines Spielers zurück
  262. virtual bool getStatistikListe( int account, int *seite, int *maxSeite, char sortSpalte, char rückwärts,
  263. RCArray< Array< int > > *werte, RCArray< Text > *namen ) = 0; // Gibt eine Liste mit Spiel Statistiken zurück
  264. // Gibt eine Liste mit den Daten der letzten 20 Spiele von einem Account zurück
  265. // account: Die Id des Accounts
  266. virtual SpielHistorieListe *getSpielHistorieDaten( int account ) = 0;
  267. // Erzeugt einen Client zu dem Historie Server, welcher die Aufzeichnungen und Statistiken eines Bestimmten Spiels verwaltet
  268. // spielId: Die id des Spiels
  269. // Gibt bei misserfolg 0 zurück
  270. virtual HistorieServerClient *createHistorieServerClient( int spielId ) = 0; // sucht nach dem Historie Server von einem Spiel
  271. // Prüft, ob der Account bestimmte Berechtigungen besitzt
  272. // recht: Die Id der Berechtigungen
  273. virtual bool hatRecht( int recht ) = 0; // Prüft ob Berechtigung vorhanden
  274. // Gibt eine Liste mit Karten zurück, die einen bestimmten Text im Namen enthalten und bestimmt sortiert ist
  275. // filter: Die Zeichenkette, die im Namen Auftreten soll
  276. // sortSpalte: Der Index der Spalte, nach der sortiert werden soll
  277. // absteigend: 1:=absteigende sortierung,0:=aufsteigende Sortierung
  278. // kId: Eine Liste, welche nach einem erfolgreichen Aufruf die Ids der Karten enthält
  279. // kName: Eine Liste, welche nach einem erfolgreichen Aufruf die Namen der Karten enthält
  280. // sName: Eine Liste, welche nach einem erfolgreichen Aufruf die Namen der Spiele der Karten enthält
  281. // kupfer: Eine Liste, welche nach einem erfolgreichen Aufruf die Preise der Karten in Kupfer
  282. // verkauft: Eine Liste, welche nach einem erfolgreichen Aufruf die Anzahl der Verkäufe der Karten enthält
  283. // maxSpieler: Eine Liste, welche nach einem erfolgreichen Aufruf die Maximalen Spieleranzahlen der Karten enthält
  284. virtual int getKartenListe( char *filter, char sortSpalte, char absteigend, Framework::Array< int > *kId, Framework::RCArray< Framework::Text > *kName, Framework::RCArray< Framework::Text > *sName,
  285. Framework::Array< int > *kupfer, Framework::Array< int > *verkauft, Framework::Array< int > *maxSpieler ) = 0;
  286. // Erzeugt einen Client zu dem Editor Server von der Karte mit einer bestimmten Id
  287. // karteId: Die Id der Karte
  288. // Gibt bei misserfolg 0 zurück
  289. virtual EditorServerClient *createEditorServerClient( int karteId ) = 0;
  290. // Erzeugt einen Client zu dem Karten Server von der Karte mit einer bestimmten Id
  291. // karteId: Die Id der Karte
  292. // Gibt bei misserfolg 0 zurück
  293. virtual KartenServerClient *createKartenServerClient( int karteId ) = 0;
  294. // Erhält die Verbindung aufrecht
  295. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  296. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  297. virtual bool keepAlive() = 0; // Erhält die Verbindung aufrecht
  298. // Trennt die Verbindung zum Server
  299. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  300. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  301. virtual bool trenne() = 0;
  302. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  303. virtual bool istVerbunden() const = 0;
  304. // gibt den Letzten Fehlertext zuück
  305. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  306. virtual char *getLetzterFehler() const = 0;
  307. // Erhöht den Reference Counter um 1 un gibt this zurück
  308. virtual InformationServerClient *getThis() = 0;
  309. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  310. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  311. virtual InformationServerClient *release() = 0;
  312. };
  313. // 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 ...)
  314. // Kann nur von eingeloggten Clients verwendet werden
  315. class ChatServerClient
  316. {
  317. };
  318. // Wird verwendet um Spiele oder Karten zu kaufen
  319. // Kann nur von eingeloggten Clients verwendet werden
  320. class ShopServerClient
  321. {
  322. };
  323. // Wird verwendet um sich für Spiele anzumelden
  324. // Kann nur von eingeloggten Clients verwendet werden
  325. class AnmeldungServerClient
  326. {
  327. };
  328. // Wird verwendet um die aktuellen versionen der Karten vor dem Spiel herunterzuladen
  329. // Kann nur von eingeloggten Clients verwendet werden
  330. class KartenServerClient
  331. {
  332. };
  333. // Wird zum Online Spielen verwendet
  334. // Kann nur von eingeloggten Clients verwendet werden
  335. class SpielServerClient
  336. {
  337. };
  338. // Wird verwendet um Statistiken und Aufzeichnungen von vergangenen Spielen abzufragen
  339. // Kann nur von eingeloggten Clients verwendet werden
  340. class HistorieServerClient
  341. {
  342. };
  343. // Wird verwendet um Minigame Bestscores abzufragen und Minigame Spielaufzeichnungen zu laden
  344. // Kann nur von eingeloggten Clients verwendet werden
  345. class MinigameServerClient
  346. {
  347. };
  348. // Wird verwendet um Karten für Spiele zu erstellen
  349. // Kann nur von eingeloggten Clients verwendet werden
  350. class EditorServerClient
  351. {
  352. };
  353. // Wird verwendet um Eine Verbindung mit dem Serversystem herzustellen
  354. class MainServerClient
  355. {
  356. public:
  357. // 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
  358. virtual bool registerSSL( Framework::Text *ip, unsigned short port ) = 0;
  359. // Verbindet den Client mit dem Server
  360. // Wird automatisch aufgerufen, falls eine Methode aufgerufen wird, die eine Verbindung erfordert. In diesem Fall wird die Verbindung auch automatisch wieder getrennt.
  361. virtual bool connect() = 0;
  362. // Erzeugt einen Erhaltungs Server Client
  363. // Gibt bei misserfolg 0 zurück
  364. virtual ErhaltungServerClient *createErhaltungServerClient() = 0;
  365. // Erzeugt einen Patch Server Client
  366. // Gibt bei misserfolg 0 zurück
  367. virtual PatchServerClient *createPatchServerClient() = 0;
  368. // Erzeugt einen News Server Client
  369. // Gibt bei misserfolg 0 zurück
  370. virtual NewsServerClient *createNewsServerClient() = 0;
  371. // Erzeugt einen Register Server Client
  372. // Gibt bei misserfolg 0 zurück
  373. virtual RegisterServerClient *createRegisterServerClient() = 0;
  374. // Erzeugt einen Login Server Client
  375. // Gibt bei misserfolg 0 zurück
  376. virtual LoginServerClient *createLoginServerClient() = 0;
  377. // Erzeugt einen Information Server Client
  378. // Gibt bei misserfolg 0 zurück
  379. virtual InformationServerClient *createInformationServerClient() = 0;
  380. // Erzeugt einen Chat Server Client
  381. // Gibt bei misserfolg 0 zurück
  382. virtual ChatServerClient *createChatServerClient() = 0;
  383. // Erzeugt einen Shop Server Client
  384. // Gibt bei misserfolg 0 zurück
  385. virtual ShopServerClient *createShopServerClient() = 0;
  386. // Erzeugt einen Anmeldung Server Client
  387. // Gibt bei misserfolg 0 zurück
  388. virtual AnmeldungServerClient *createAnmeldungServerClient() = 0;
  389. // Erzeugt einen Minigame Server Client
  390. // Gibt bei misserfolg 0 zurück
  391. virtual MinigameServerClient *createMinigameServerClient() = 0;
  392. // Trennt die Verbindung zum Server. Muss nur aufgerufen werden, wenn vorher manuell connect aufgerufen wurde
  393. virtual bool disconnect() = 0;
  394. // Meldet den Client vom Server ab. Alle zuvor von diesem Client erzeugten Clients werden durch diesen Vorgang unbrauchbar
  395. virtual bool unregister() = 0;
  396. // Gibt die dem Client zugewiesene Id zurück.
  397. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  398. virtual int getClientId() const = 0;
  399. // Gibt die Ip Adresse des dem Client zugewiesenen Main Servers zurück.
  400. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  401. virtual Framework::Text *getServerIp() const = 0;
  402. // Gibt den Port des dem Client zugewiesenen Main Servers zurück.
  403. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  404. virtual unsigned short getServerPort() const = 0;
  405. };
  406. extern "C"
  407. {
  408. // Einstiegspunkte in die Bibliothek
  409. // Erzeugt einen neuen Client beim Serversystem.
  410. // registerSSL Methode muss aufgerufen werden um den Client beim Serversystem anzumelden
  411. MainServerClient *createMainServerClient();
  412. // Erzeugt einen Client, der bereits beim Serversystem angemeldet ist
  413. // ip: Die Ip des Main Servers für angemeldete Clients
  414. // port: Der Port des Main Servers für angemeldete Clients
  415. // klientId: Die Id die der Client durch das Anmelden bekommen hat
  416. MainServerClient *createMainServerClient( char *ip, unsigned short port, int klientId );
  417. }
  418. }