InformationClient.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. #pragma once
  2. #include "../Include/KSGNetwork.h"
  3. #include <Critical.h>
  4. namespace KSGClient
  5. {
  6. // Wird verwendet um informationen über Accounts abzufragen
  7. // Kann nur von eingeloggten Clients verwendet werden
  8. class InformationClient : public InformationServerClient
  9. {
  10. private:
  11. Framework::Text ip;
  12. unsigned short port;
  13. int cId;
  14. Network::Klient* k;
  15. char* key;
  16. unsigned char keyLen;
  17. Framework::Critical cs;
  18. Framework::Text err;
  19. public:
  20. // Konstruktor
  21. InformationClient(int klientId, unsigned short port, const char* ip, const char* key, unsigned char keyLen);
  22. // Destruktor
  23. ~InformationClient();
  24. // verbindet ich mit dem zugewiesenen Informaion Server
  25. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  26. bool verbinde() override;
  27. // fragt nach dem Informationstext
  28. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  29. // txt: Ein Zeiger auf ein Text Objekt, welches bei einem erfolgreichen Aufruf den Informationstext enthält
  30. // typ: ein Zeieger auf ein Integer, welches bei einem erfolgreichen Aufruf den Typ der Information enthält
  31. bool getInformationText(Framework::Text* txt, int* typ) override;
  32. // fragt, ob das entsprechende Spiel vom Server gesperrt wurde
  33. // spielId: Die Id des Spiels
  34. // Gibt 1 zurück, falls das Spiel gespielt werden darf, 0 sonnst
  35. bool istSpielErlaubt(int spielId) override;
  36. // fragt, ob die entsprechende Karte vom Server gesperrt wurde
  37. // karteId: Die Id der Karte
  38. // Gibt 1 zurück, falls die Karte gespielt werden darf, 0 sonnst
  39. bool istKarteErlaubt(int karteId) override;
  40. // Ermittelt die Id einer Karte
  41. // name: Der Name der Karte
  42. // Gibt bei misserfolg 0 zurück
  43. int getKarteId(const char* name) override;
  44. // Fragt nach der Id eines Spiels
  45. // name: Der Name des Spiels
  46. // Gibt bei misserfolg 0 zurück
  47. int getSpielId(const char* name) override;
  48. // fragt nach dem Namen eines Accounts
  49. // accountId: Die Id des Accounts
  50. // Gibt bei misserfolg 0 zurück
  51. Framework::Text* getSpielerName(int accountId) override;
  52. // fragt nach der Spiel Statistik eines Accounts
  53. // accountId: Die Id des Accounts
  54. // spielId: Die Id des Spiels
  55. // werte: Nach erfolgreichem Aufruf enthält die Liste die Statistik werte (gespielt, gewonnen, verloren, punkte, bw0, bw1, bw2, bw3, bw4, bw5)
  56. bool getSpielStatistik(int accountId, int spielId, Framework::Array< int >* werte) override;
  57. // fragt nach dem Namen einer Karte
  58. // karteId: Die id der Karte
  59. // Gibt bei misserfolg 0 zurück
  60. Framework::Text* getKarteName(int karteId) override;
  61. // fragt nach dem Namen eines Spiels
  62. // spielId: Die id des Spiels
  63. // Gibt bei misserfolg 0 zurück
  64. Framework::Text* getSpielName(int spielId) override;
  65. // fragt nach dem Namen eines Chatrooms
  66. // chatroomId: Die id des Chatrooms
  67. // Gibt bei misserfolg 0 zurück
  68. Framework::Text* getChatroomName(int chatroomId) override;
  69. // fragt zu welcher Spielart die Karte gehört
  70. // karteId: Die id der Karte
  71. // Gibt bei misserfolg 0 zurück
  72. int getSpielId(int karteId) override;
  73. // gibt die Id eines Accounts zurück
  74. // name: Der Angezeigte Name des Accounts
  75. // Gibt bei misserfolg 0 zurück
  76. int getAccountId(const char* name) override;
  77. // gibt die Id des Chatrooms zurück
  78. // name: Der name des Chatrooms
  79. // Gibt bei misserfolg 0 zurück
  80. int getChatroomId(const char* name) override;
  81. // gibt die karten Id zurück, zu dem eine Gruppe erstellt wurde
  82. // gruppenId: Die id der Gruppe
  83. // Gibt bei misserfolg 0 zurück
  84. int getGruppenKarteId(int gruppenId) override;
  85. // gibt 1 zurück, wenn zu einer Gruppe Spieler hinzugefügt werden können, 0 sonnst
  86. // gruppeId: Die id der Gruppe
  87. bool getGruppeSpielerHinzufügen(int gruppeId) override;
  88. // gibt die Account Id des Gruppen Administrators zurück
  89. // gruppeId: Die Id der Gruppe
  90. // Gibt bei misserfolg 0 zurück
  91. int getGruppeAdminId(int gruppeId) override;
  92. // gibt die Punkte eines Spielers zurück
  93. // accountId: Die Accont Id des Spielers
  94. // spielId: Die Id des Spiels
  95. // Gibt bei misserfolg 0 zurück
  96. int getSpielerPunkte(int accountId, int spielId) override;
  97. // gibt eine Liste mit Ids von gekauften Spielen zurück
  98. // Gibt bei misserfolg 0 zurück
  99. Framework::Array< int >* getAccountSpielArtListe() override;
  100. // gibt die neuste Version eines Spiels zurück
  101. // spielId: Die Id des Spiels
  102. // Gibt bei misserfolg 0 zurück
  103. int getSpielVersion(int spielId) override;
  104. // gibt das Kupfer des Accounts zurück
  105. // Gibt bei misserfolg 0 zurück
  106. int getKupfer() override;
  107. // Gibt die Dateigruppem Id eines Spieles zurück
  108. // spielId: Die Id des Spiels
  109. // Gibt bei misserfolg 0 zurück
  110. int getDateiGruppeIdVonSpiel(int spielId) override;
  111. // Gibt den Dateigruppen Pfad zurück
  112. // dgId: Die Id der Dateigruppe
  113. // Gibt bei misserfolg 0 zurück
  114. Framework::Text* getDateiGruppePfad(int dgId) override;
  115. // gibt eine Liste mit gekauften Karten zurück
  116. // spielId: Die Spiel Id zu der die Karten gehören sollen
  117. // Gibt bei misserfolg 0 zurück
  118. Framework::Array< int >* getAccountKarteListe(int spielId) override;
  119. // Gibt die Dateigruppen Id eines Pfades zurück
  120. // pfad: Der Pfad der Dateigruppe
  121. // Gibt bei misserfolg 0 zurück
  122. int getDateiGruppeIdVonPfad(const char* pfad) override;
  123. // gibt die neuste Version einer Dateigruppe zurück
  124. // dg: Die Dateigruppen Id
  125. // Gibt bei misserfolg 0 zurück
  126. int getDateiGruppeVersion(int dg) override;
  127. // Gibt eine Liste Mit Accounts zurück, die einen bestimmten Text im Namen haben und bestimmt Sortiert ist
  128. // suche: Der Text, der in den Namen enthalten sein soll
  129. // seite: Die gewünschte Seite der Tabelle (enthält nach einem Erfolgreichen Aufruf die korrekte Seite)
  130. // maxSeite: Enthält nach erfolgreichem Aufruf die Maximale Seite
  131. // sortSpalte: Die Spalte, nach der Sortiert werden soll
  132. // rückwärts: 1:=Rückwärtzt Sortierung, 0:=Vorwärts Sortierung
  133. // accounts: Enthält nach erfolgreichem Aufruf die Daten der Accounts
  134. // Gibt die Anzahl der gefundenen Accounts zurück
  135. // Gibt die Anzahl der Spieler zurück, -1 bei fehler
  136. int getSpielerListe(const char* suche, int* seite, int* maxSeite, char sortSpalte, char rückwärts, Framework::Array< AccountInfo >* accounts) override;
  137. // ermittelt die aktivität eines Spielers
  138. // accId: Die Id des Accounts
  139. // info: Enthält nach erfolgreichem Aufruf die Aktivitätsinformationen der letzten 30 Tage
  140. bool getSpielerAktivität(int accId, Framework::Array< AccountActivityInfo >* info) override;
  141. // Gibt zurück, wie oft ein Spieler eine Karte schon gespielt hat
  142. // account: Die Id des Accounts
  143. // karte: Die Id der Karte
  144. int getAccountKarteSpiele(int account, int karte) override;
  145. // Gibt zurück, wie oft ein Spieler eine Karte schon gewonnen hat
  146. // account: Die Id des Accounts
  147. // karte: Die Id der Karte
  148. int getAccountKarteSpieleGewonnen(int account, int karte) override;
  149. // Gibt zurück, ob ein Spieler die Karte im Besitz hat
  150. // account: Die Id des Accounts
  151. // karte: Die Id der Karte
  152. bool hatAccountKarte(int account, int karte) override;
  153. // Gibt zurück, ob ein Spieler ein Spiel im Besitz hat
  154. // account: Die Id des Accounts
  155. // spiel: Die Id des Spiels
  156. bool hatAccountSpiel(int account, int spiel) override;
  157. // gibt eine Liste mit Ids von Karten zurück, die von einem Spieler bereits gespielt wurden
  158. // account: Die Id des Accounts
  159. // spiel: Die Id des Spiels
  160. // Gibt bei misserfolg 0 zurück
  161. Framework::Array< int >* getAccountKarteGespieltListe(int account, int spielId) override;
  162. // gibt eine Liste mit Ids von Spielen zurück, die von einem Spieler bereits gespielt wurden
  163. // account: Die Id des Accounts
  164. // Gibt bei misserfolg 0 zurück
  165. Framework::Array< int >* getAccountSpielGespieltListe(int account) override;
  166. // Gibt eine Liste von Spiel Partnern eines Spielers zurück
  167. // account: Die Id des Accounts
  168. // spieler: Enthält nach erfolgreichem Aufruf eine Liste mit Account Ids der Spiel Partner
  169. // karten: Enthält nach erfolgreichem Aufruf eine Liste mit den Ids der gespielten Karten
  170. // anzahl: Enthält nach erfolgreichem Aufruf eine Liste mit der Anzahl der Spiele
  171. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  172. bool getSpielPartnerListe(int account, Framework::Array< int >* spieler, Framework::Array< int >* karten, Framework::Array< int >* anzahl) override;
  173. // Gibt eine Liste mit Spiel Statistiken zurück
  174. // account: Die Id des Accounts zu dem die Statistik ermittelt werden soll
  175. // seite: Die gewünschte Seite. Enthält nach efolgreichem Aufruf die korrekte Seite
  176. // maxSeite: Enthält nach erfolgreichem Aufruf die Macimale Seite
  177. // sortSpalte: Die Spalte, nach der Sortiert werden soll
  178. // rückwärts: 1:=Rückwärtzt Sortierung, 0:=Vorwärts Sortierung
  179. // werte: Enthält nach erfolgreichem Aufruf eine Liste mit Statistik Werten (gespielt, gewonnen, verloren, punkte, bw0, bw1, bw2, bw3, bw4, bw5)
  180. // namen: Enthält nach erfolgreichem Aufruf die Namen der Spiele
  181. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  182. bool getStatistikListe(int account, int* seite, int* maxSeite, char sortSpalte, char rückwärts,
  183. Framework::RCArray< Framework::Array< int > >* werte, Framework::RCArray< Framework::Text >* namen) override;
  184. // Gibt eine Liste mit den Daten der letzten 20 Spiele von einem Account zurück
  185. // account: Die Id des Accounts
  186. // Gibt bei misserfolg 0 zurück
  187. Array< SpielHistorieDaten >* getSpielHistorieDaten(int account) override;
  188. // Erzeugt einen Client zu dem Historie Server, welcher die Aufzeichnungen und Statistiken eines Bestimmten Spiels verwaltet
  189. // spielId: Die id des Spiels
  190. // Gibt bei misserfolg 0 zurück
  191. HistorieServerClient* createHistorieServerClient(int spielId) override; // sucht nach dem Historie Server von einem Spiel
  192. // Prüft, ob der Account bestimmte Berechtigungen besitzt
  193. // recht: Die Id der Berechtigungen
  194. bool hatRecht(int recht) override; // Prüft ob Berechtigung vorhanden
  195. // Gibt eine Liste mit Karten zurück, die einen bestimmten Text im Namen enthalten und bestimmt sortiert ist
  196. // filter: Die Zeichenkette, die im Namen Auftreten soll
  197. // sortSpalte: Der Index der Spalte, nach der sortiert werden soll
  198. // absteigend: 1:=absteigende sortierung,0:=aufsteigende Sortierung
  199. // kId: Eine Liste, welche nach einem erfolgreichen Aufruf die Ids der Karten enthält
  200. // kName: Eine Liste, welche nach einem erfolgreichen Aufruf die Namen der Karten enthält
  201. // sName: Eine Liste, welche nach einem erfolgreichen Aufruf die Namen der Spiele der Karten enthält
  202. // kupfer: Eine Liste, welche nach einem erfolgreichen Aufruf die Preise der Karten in Kupfer
  203. // verkauft: Eine Liste, welche nach einem erfolgreichen Aufruf die Anzahl der Verkäufe der Karten enthält
  204. // maxSpieler: Eine Liste, welche nach einem erfolgreichen Aufruf die Maximalen Spieleranzahlen der Karten enthält
  205. int getKartenListe(const char* filter, char sortSpalte, char absteigend, Framework::Array< int >* kId, Framework::RCArray< Framework::Text >* kName, Framework::RCArray< Framework::Text >* sName,
  206. Framework::Array< int >* kupfer, Framework::Array< int >* verkauft, Framework::Array< int >* maxSpieler) override;
  207. // Erzeugt einen Client zu dem Editor Server von der Karte mit einer bestimmten Id
  208. // karteId: Die Id der Karte
  209. // Gibt bei misserfolg 0 zurück
  210. EditorServerClient* createEditorServerClient(int karteId) override;
  211. // Erzeugt einen Client zu dem Karten Server von der Karte mit einer bestimmten Id
  212. // karteId: Die Id der Karte
  213. // Gibt bei misserfolg 0 zurück
  214. KartenServerClient* createKartenServerClient(int karteId) override;
  215. // Erhält die Verbindung aufrecht
  216. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  217. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  218. bool keepAlive() override;
  219. // Trennt die Verbindung zum Server
  220. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  221. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  222. bool trenne(bool abmelden) override;
  223. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  224. bool istVerbunden() const override;
  225. // gibt den Letzten Fehlertext zuück
  226. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  227. const char* getLetzterFehler() const override;
  228. };
  229. }