KSGNetwork.h 81 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355
  1. #pragma once
  2. #include <Array.h>
  3. #include <Thread.h>
  4. #include "../../Include/StrukturenV.h"
  5. namespace Framework
  6. {
  7. class Text;
  8. class Datei;
  9. class KSGTDatei;
  10. class FBalken;
  11. class Zeit;
  12. class Bild;
  13. class Model2DData;
  14. }
  15. namespace GSL
  16. {
  17. class GSLSoundV;
  18. class GSLDateiV;
  19. }
  20. namespace Network
  21. {
  22. class Klient;
  23. }
  24. namespace KSGClient
  25. {
  26. // Enthält die Daten eines Spielers zu einem vergangenen Spiel
  27. struct SpielHistorieSpielerDaten
  28. {
  29. Framework::Text name; // Der Sichtabe Name des Spielers
  30. int punkte; // Die Punkte, die der Spieler in dem Spiel gewonnen / verloren hat
  31. Framework::Text status; // Der Status des Spielers in dem Spiel (verloren, gewonnen, nicht anwesend, beobachter, unentschieden)
  32. int farbe; // Die Farbe des Spielers
  33. };
  34. // Enthält die Datein eines Teams zu einem vergangenen Spiel
  35. struct SpielHistorieTeamDaten
  36. {
  37. Framework::Text name; // Der Sichtabe Name des Teams
  38. int sAnzahl; // Die Anzahl der Spieler im Team
  39. Framework::Text status; // Der Status des Teams (verloren, gewonnen, beobachter, unentschieden)
  40. int farbe; // Die Farbe des Teams
  41. Framework::Array< SpielHistorieSpielerDaten > spieler; // Eine Liste mit den Spielerdaten zu den Spielern aus dem Team
  42. };
  43. // Enthält Daten zu einem vergangenen Spiel
  44. struct SpielHistorieDaten
  45. {
  46. int id; // Die Id des vergangenen Spiels
  47. int karteId; // Die Id der Karte, welche gespielt wurde
  48. Framework::Text spiel; // Der Name des Spiels, welches gespielt wurde
  49. Framework::Text karte; // Der Name der Karte, welche gespielt wurde
  50. Framework::Text datum; // Der Zeitpunkt, an dem das Spiel Statfand
  51. Framework::Text status; // Der Status des Spielers, über welchen die Statistik angefragt wurde
  52. Framework::Text dauer; // Die Dater des Spiels
  53. Framework::Text spielStatus; // Der Status des Spiels (beginnt, läuft, abgebrochen, fehlerhaft, beendet, unbewertet)
  54. Framework::Text gewinner; // Der Name des Gewinners
  55. int sAnzahl; // Die Anzahl der Spieler
  56. Framework::Array< SpielHistorieTeamDaten > teams; // Die Daten der Teams des Spiels
  57. };
  58. // Enthält Informationen zu einem Account
  59. struct AccountInfo
  60. {
  61. int id; // Die Id des Accounts
  62. Framework::Text name; // Der angezeigte Name des Accounts
  63. Framework::Text zuletztOnline; // Der Zeitpunkt, zu dem der Account zuletzt online war
  64. Framework::Text letztesSpiel; // Der Name des zuletzt gespielten online Spiels
  65. Framework::Text letzteKarte; // Der Name der zuletzt gespielten Karte
  66. Framework::Text punkte; // Die Punkte des Spielers in dem Spiel
  67. };
  68. // Enthält Informationen zur Aktivität eines Accounts an einem bestimmten Tag
  69. struct AccountActivityInfo
  70. {
  71. Framework::Text datum; // Das Datum für das die Werte gillt
  72. double stOnline; // Die Anzahl der Stunden, die der Account Online war
  73. double stGespielt; // Die Anzahl der Stunden, die der Account in online Spielen verbracht hat
  74. int anzSpiele; // Die Anzahl der gespielten online Spiele
  75. int anzGewonnen; // Die Anzahl der gewonnenen online Spiele
  76. };
  77. class SpielServerClient;
  78. // Enthält eine Nachricht, die von Chat Server gesendet wurde
  79. struct ChatServerNachricht
  80. {
  81. char type; // Typ der Nachricht
  82. Framework::Text message; // Text der Nachricht
  83. int account; // Beteiligter Account
  84. int gruppe; // Beteiligte Gruppe
  85. int chatroom; // Beteiligter Chatraum
  86. Framework::Array< int > ids; // Liste mit Account Ids
  87. SpielServerClient *client; // ein Client zum zugewiesenen Spiel Server
  88. };
  89. // Enthält eine Nachricht von dem Spiel Server
  90. struct SpielServerNachricht
  91. {
  92. char type; // Typ der Nachricht
  93. char sekunden; // Mit der Nachricht zusammenhängende Sekunden
  94. char minuten; // Mit der Nachricht zusammenhängende Minuten
  95. char stunden; // Mit der Nachricht zusammenhängende Stunden
  96. Framework::Text message; // Text der Nachricht
  97. SpielerTeamStrukturV *sts; // Die Spieler Team Struktur eines Spiels
  98. int accountId; // Id des Accounts
  99. int spielerNummer; // Die Spielernummer des Accounts
  100. int karteId; // Die Id der Karte
  101. int prozent; // Der Prozentuale Ladefortschritt
  102. int ping; // Der Ping des Accounts (1000 = 1 Sekunde)
  103. short län; // Länge der gesendeten Daten
  104. char *data; // Die gesendeten Daten
  105. };
  106. // Wird benutzt, um die Verbindung mit den Servern aufrecht zu erhalten. Bei einem Verbindungsabbruch wird der Client automatisch abgemeldet
  107. class ErhaltungServerClient : protected virtual Framework::Thread
  108. {
  109. protected:
  110. // DBeantwortet Ping - Anfragen des Servers. Falls diese 60 Sekunden lang unbeantwortet bleiben, wird der Client vom Serversystem abgemeldet
  111. virtual void thread() = 0;
  112. public:
  113. // verbindet ich mit dem Erhaltung Server
  114. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  115. virtual bool verbinde() = 0;
  116. // Meldet sich beim Server ab und trennt die Verbindung
  117. virtual void abmelden() = 0;
  118. // Trennt die Verbindung zum Server
  119. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  120. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  121. virtual bool trenne() = 0;
  122. // gibt den Letzten Fehlertext zuück
  123. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  124. virtual char *getLetzterFehler() const = 0;
  125. // Erhöht den Reference Counter um 1 un gibt this zurück
  126. virtual ErhaltungServerClient *getThis() = 0;
  127. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  128. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  129. virtual ErhaltungServerClient *release() = 0;
  130. };
  131. // Wird benutzt, um aktualisierte Spieldateien herunterzuladen
  132. class PatchServerClient
  133. {
  134. public:
  135. // verbindet ich mit dem Patch Server
  136. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  137. virtual bool verbinde() = 0;
  138. // Gibt eine Tabelle von Dateigruppen zurück.
  139. // Gibt bei misserfolg 0 zurück
  140. virtual Framework::KSGTDatei *getDateiGruppenListe() = 0;
  141. // Gibt eine Tabelle von Dateien zurück.
  142. // gruppe: Die Id der Dateigruppe, zu der die Dateien gehöhren sollen
  143. // Gibt bei misserfolg 0 zurück
  144. virtual Framework::KSGTDatei *getDateiListe( int gruppe ) = 0;
  145. // Gibt die Größe einer Datei in bytes zurück
  146. // gruppe: Die Id der Dateigruppe der Datei
  147. // pfad: Der Pfad der Datei
  148. virtual __int64 getDateiGröße( int gruppe, const char *pfad ) = 0;
  149. // Lädt eine Datei herunter
  150. // gruppe: Die Dateigruppe der Datei
  151. // start: Der Index des bytes, bei dem der download begonnen werden soll (Enthält im Falle eines Abbruchs die Position, von welcher aus als nächstes heruntergeladen werden muss)
  152. // pfad: Der Pfad der Datei
  153. // zielPfad: Der Pfad, an den die Datei gespeichert werden soll
  154. // zFb: Ein Fortschrittsbalken, der automatisch aktualisiert wird
  155. // abbruch: Wenn diese Variable während des Vorgangs auf 1 gesetzt wird, so wird das Herunterladen abgebrochen.
  156. // maxbps: Die Anzahl der bytes pro Sekunde, die maximal übertragen werden sollen
  157. virtual bool downloadDatei( int gruppe, __int64 *start, const char *pfad, const char *zielPfad, Framework::FBalken *zFb, bool *abbruch, int maxbps ) = 0;
  158. // Trennt die Verbindung zum Server
  159. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  160. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  161. virtual bool trenne( bool abmelden ) = 0;
  162. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  163. virtual bool istVerbunden() const = 0;
  164. // Gibt die Anzahl von übertragenen Bytes seit dem letzten Aufruf zurück
  165. virtual int getDownload() const = 0;
  166. // gibt den Letzten Fehlertext zuück
  167. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  168. virtual char *getLetzterFehler() const = 0;
  169. // Erhöht den Reference Counter um 1 un gibt this zurück
  170. virtual PatchServerClient *getThis() = 0;
  171. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  172. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  173. virtual PatchServerClient *release() = 0;
  174. };
  175. // Wird verwendet um News Oberflächen abzufragen (KSG Script Seiten)
  176. class NewsServerClient
  177. {
  178. public:
  179. // verbindet ich mit dem News Server
  180. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  181. virtual bool verbinde() = 0;
  182. // Lädt eine KSG-Script Seite herunter uns speichert sie unter data/tmp/news/{name}
  183. // name: Der Name der Seite
  184. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  185. virtual bool ladeSeite( char *name ) = 0;
  186. // Erhält die Verbindung aufrecht
  187. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  188. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  189. virtual bool keepAlive() = 0;
  190. // Trennt die Verbindung zum Server
  191. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  192. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  193. virtual bool trenne( bool abmelden ) = 0;
  194. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  195. virtual bool istVerbunden() const = 0;
  196. // gibt den Letzten Fehlertext zuück
  197. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  198. virtual char *getLetzterFehler() const = 0;
  199. // Erhöht den Reference Counter um 1 un gibt this zurück
  200. virtual NewsServerClient *getThis() = 0;
  201. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  202. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  203. virtual NewsServerClient *release() = 0;
  204. };
  205. // Wird benutzt, um Accounts zu erstellen zu ändern oder zu löschen
  206. class RegisterServerClient
  207. {
  208. public:
  209. // verbindet ich mit dem Register Server
  210. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  211. virtual bool verbinde() = 0;
  212. // Sendet eine Anfrage auf Erstellung eines neuen Accounts. Ein neuer Account kann erst verwendet werden, wenn ein Link in der Bestätigungsemail angeklickt wurde.
  213. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  214. // name: Der Login Name des Accounts
  215. // pass: Das Login Passwort des Accounts
  216. // geheim: Das Geheimnis des Accounts
  217. // eMail: Die EMail Adresse an die die bestätigungs EMail gesendet werden soll
  218. // jahr: Das Jahr des Geburtsdatums
  219. // monat: Der Monat des Geburtstages
  220. // tag: Der Tag des Geburtstages
  221. virtual bool accountErstellen( const char *name, const char *pass, const char *geheim, const char *eMail, unsigned short jahr, char monat, char tag ) = 0;
  222. // 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.
  223. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  224. // name: Der Login Name des Accounts
  225. // pass: Das Login Passwort des Accounts
  226. // geheim: Das Geheimnis des Accounts
  227. virtual bool accountLöschen( const char *name, const char *pass, const char *geheim ) = 0;
  228. // Ändert das Passwort eines Accounts
  229. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  230. // name: Der Login Name des Accounts
  231. // pass: Das Login Passwort des Accounts
  232. // geheim: Das Geheimnis des Accounts
  233. // nPass: Das neue Passwort des Accounts
  234. virtual bool passwortÄndern( const char *name, const char *pass, const char *geheim, const char *nPass ) = 0;
  235. // Ändert die EMail Adresse eines Accounts
  236. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  237. // name: Der Login Name des Accounts
  238. // pass: Das Login Passwort des Accounts
  239. // geheim: Das Geheimnis des Accounts
  240. // nEMail: Die neue EMail Adresse
  241. virtual bool eMailÄndern( const char *name, const char *pass, const char *geheim, const char *nEMail ) = 0;
  242. // Ändert das Geheimnis eines Accounts
  243. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  244. // name: Der Login Name des Accounts
  245. // pass: Das Login Passwort des Accounts
  246. // geheim: Das Geheimnis des Accounts
  247. // nGeheim: Das neue Geheimnis
  248. virtual bool geheimnisÄndern( const char *name, const char *pass, const char *geheim, const char *nGeheim ) = 0;
  249. // Sendet eine Anfrage auf Name Vergessen. Der Name wird an die angegebene EMail Adresse gesendet
  250. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  251. // pass: Das Login Passwort des Accounts
  252. // geheim: Das Geheimnis des Accounts
  253. virtual bool nameVergessen( const char *pass, const char *geheim ) = 0;
  254. // Sendet eine Anfrage auf Passwort Vergessen. Es wird ein Link an die angegebene Email Adresse gesendet, über den ein neues Passwort vergeben werden kann
  255. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  256. // name: Der Login Name des Accounts
  257. // geheim: Das Geheimnis des Accounts
  258. virtual bool passwortVergessen( const char *name, const char *geheim ) = 0;
  259. // Sendet eine Anfrage auf Geheimnis Vergessen. Das Geheimnis wird an die angegebene EMail Adresse gesendet
  260. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  261. // name: Der Login Name des Accounts
  262. // pass: Das Login Passwort des Accounts
  263. virtual bool geheimnisVergessen( const char *name, const char *pass ) = 0;
  264. // Sendet eine Anfrage auf EMail Vergessen. Die EMail Adresse wird direkt vom Server zurückgegeben
  265. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  266. // name: Der Login Name des Accounts
  267. // pass: Das Login Passwort des Accounts
  268. // geheim: Das Geheimnis des Accounts
  269. // 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
  270. virtual bool eMailVergessen( const char *name, const char *pass, const char *geheim, char **eMail ) = 0;
  271. // Erhält die Verbindung aufrecht
  272. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  273. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  274. virtual bool keepAlive() = 0;
  275. // Trennt die Verbindung zum Server
  276. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  277. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  278. virtual bool trenne( bool abmelden ) = 0;
  279. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  280. virtual bool istVerbunden() const = 0;
  281. // gibt den Letzten Fehlertext zuück
  282. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  283. virtual char *getLetzterFehler() const = 0;
  284. // Erhöht den Reference Counter um 1 un gibt this zurück
  285. virtual RegisterServerClient *getThis() = 0;
  286. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  287. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  288. virtual RegisterServerClient *release() = 0;
  289. };
  290. // Wird verwendet um sich einzuloggen oder auszuloggen
  291. class LoginServerClient
  292. {
  293. public:
  294. // verbindet sich mit dem zugewiesenen Login Server
  295. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  296. virtual bool verbinde() = 0;
  297. // Der Client wird beim Serversystem in einen Account eingeloggt
  298. // Gibt bei Erfolg 1 zurück, 2 falls en anderer Client in dem Account eingeloggt ist, 0 sonnst
  299. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  300. virtual int login( const char *name, const char *pass ) = 0;
  301. // 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.
  302. virtual bool kick( const char *name, const char *pass, const char *geheim ) = 0;
  303. // logt den Account aus
  304. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  305. // sollte erst aufgerufen werden, nachdem ein erfolgreicher Aufruf von login erfolg ist
  306. virtual bool logout() = 0;
  307. // Erhält die Verbindung aufrecht
  308. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  309. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  310. virtual bool keepAlive() = 0;
  311. // Trennt die Verbindung zum Server
  312. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  313. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  314. virtual bool trenne( bool abmelden ) = 0;
  315. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  316. virtual bool istVerbunden() const = 0;
  317. // Gibt die Id des Accounts zurück, in den sich der Client eingeloggt hat.
  318. // sollte erst aufgerufen werden, nachdem ein erfolgreicher Aufruf von login erfolg ist
  319. virtual int getAccountId() const = 0;
  320. // gibt den Letzten Fehlertext zuück
  321. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  322. virtual char *getLetzterFehler() const = 0;
  323. // Erhöht den Reference Counter um 1 un gibt this zurück
  324. virtual LoginServerClient *getThis() = 0;
  325. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  326. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  327. virtual LoginServerClient *release() = 0;
  328. };
  329. class EditorServerClient;
  330. class KartenServerClient;
  331. class HistorieServerClient;
  332. // Wird verwendet um informationen über Accounts abzufragen
  333. // Kann nur von eingeloggten Clients verwendet werden
  334. class InformationServerClient
  335. {
  336. public:
  337. // verbindet ich mit dem zugewiesenen Informaion Server
  338. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  339. virtual bool verbinde() = 0;
  340. // fragt nach dem Informationstext
  341. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  342. // txt: Ein Zeiger auf ein Text Objekt, welches bei einem erfolgreichen Aufruf den Informationstext enthält
  343. // typ: ein Zeieger auf ein Integer, welches bei einem erfolgreichen Aufruf den Typ der Information enthält
  344. virtual bool getInformationText( Framework::Text *txt, int *typ ) = 0;
  345. // fragt, ob das entsprechende Spiel vom Server gesperrt wurde
  346. // spielId: Die Id des Spiels
  347. // Gibt 1 zurück, falls das Spiel gespielt werden darf, 0 sonnst
  348. virtual bool istSpielErlaubt( int spielId ) = 0;
  349. // fragt, ob die entsprechende Karte vom Server gesperrt wurde
  350. // karteId: Die Id der Karte
  351. // Gibt 1 zurück, falls die Karte gespielt werden darf, 0 sonnst
  352. virtual bool istKarteErlaubt( int karteId ) = 0;
  353. // Ermittelt die Id einer Karte
  354. // name: Der Name der Karte
  355. // Gibt bei misserfolg 0 zurück
  356. virtual int getKarteId( char *name ) = 0;
  357. // Fragt nach der Id eines Spiels
  358. // name: Der Name des Spiels
  359. // Gibt bei misserfolg 0 zurück
  360. virtual int getSpielId( char *name ) = 0;
  361. // fragt nach dem Namen eines Accounts
  362. // accountId: Die Id des Accounts
  363. // Gibt bei misserfolg 0 zurück
  364. virtual Framework::Text *getSpielerName( int accountId ) = 0;
  365. // fragt nach der Spiel Statistik eines Accounts
  366. // accountId: Die Id des Accounts
  367. // spielId: Die Id des Spiels
  368. // werte: Nach erfolgreichem Aufruf enthält die Liste die Statistik werte (gespielt, gewonnen, verloren, punkte, bw0, bw1, bw2, bw3, bw4, bw5)
  369. virtual bool getSpielStatistik( int accountId, int spielId, Framework::Array< int > *werte ) = 0;
  370. // fragt nach dem Namen einer Karte
  371. // karteId: Die id der Karte
  372. // Gibt bei misserfolg 0 zurück
  373. virtual Framework::Text *getKarteName( int karteId ) = 0;
  374. // fragt nach dem Namen eines Spiels
  375. // spielId: Die id des Spiels
  376. // Gibt bei misserfolg 0 zurück
  377. virtual Framework::Text *getSpielName( int spielId ) = 0;
  378. // fragt nach dem Namen eines Chatrooms
  379. // chatroomId: Die id des Chatrooms
  380. // Gibt bei misserfolg 0 zurück
  381. virtual Framework::Text *getChatroomName( int chatroomId ) = 0;
  382. // fragt zu welcher Spielart die Karte gehört
  383. // karteId: Die id der Karte
  384. // Gibt bei misserfolg 0 zurück
  385. virtual int getSpielId( int karteId ) = 0;
  386. // gibt die Id eines Accounts zurück
  387. // name: Der Angezeigte Name des Accounts
  388. // Gibt bei misserfolg 0 zurück
  389. virtual int getAccountId( char *name ) = 0;
  390. // gibt die Id des Chatrooms zurück
  391. // name: Der name des Chatrooms
  392. // Gibt bei misserfolg 0 zurück
  393. virtual int getChatroomId( char *name ) = 0;
  394. // gibt die karten Id zurück, zu dem eine Gruppe erstellt wurde
  395. // gruppenId: Die id der Gruppe
  396. // Gibt bei misserfolg 0 zurück
  397. virtual int getGruppenKarteId( int gruppenId ) = 0;
  398. // gibt 1 zurück, wenn zu einer Gruppe Spieler hinzugefügt werden können, 0 sonnst
  399. // gruppeId: Die id der Gruppe
  400. virtual bool getGruppeSpielerHinzufügen( int gruppeId ) = 0;
  401. // gibt die Account Id des Gruppen Administrators zurück
  402. // gruppeId: Die Id der Gruppe
  403. // Gibt bei misserfolg 0 zurück
  404. virtual int getGruppeAdminId( int gruppeId ) = 0;
  405. // gibt die Punkte eines Spielers zurück
  406. // accountId: Die Accont Id des Spielers
  407. // spielId: Die Id des Spiels
  408. // Gibt bei misserfolg 0 zurück
  409. virtual int getSpielerPunkte( int accountId, int spielId ) = 0;
  410. // gibt eine Liste mit Ids von gekauften Spielen zurück
  411. // Gibt bei misserfolg 0 zurück
  412. virtual Framework::Array< int > *getAccountSpielArtListe() = 0;
  413. // gibt die neuste Version eines Spiels zurück
  414. // spielId: Die Id des Spiels
  415. // Gibt bei misserfolg 0 zurück
  416. virtual int getSpielVersion( int spielId ) = 0;
  417. // gibt das Kupfer des Accounts zurück
  418. // Gibt bei misserfolg 0 zurück
  419. virtual int getKupfer() = 0;
  420. // Gibt die Dateigruppem Id eines Spieles zurück
  421. // spielId: Die Id des Spiels
  422. // Gibt bei misserfolg 0 zurück
  423. virtual int getDateiGruppeIdVonSpiel( int spielId ) = 0;
  424. // Gibt den Dateigruppen Pfad zurück
  425. // dgId: Die Id der Dateigruppe
  426. // Gibt bei misserfolg 0 zurück
  427. virtual Framework::Text *getDateiGruppePfad( int dgId ) = 0;
  428. // gibt eine Liste mit gekauften Karten zurück
  429. // spielId: Die Spiel Id zu der die Karten gehören sollen
  430. // Gibt bei misserfolg 0 zurück
  431. virtual Framework::Array< int > *getAccountKarteListe( int spielId ) = 0;
  432. // Gibt die Dateigruppen Id eines Pfades zurück
  433. // pfad: Der Pfad der Dateigruppe
  434. // Gibt bei misserfolg 0 zurück
  435. virtual int getDateiGruppeIdVonPfad( char *pfad ) = 0;
  436. // gibt die neuste Version einer Dateigruppe zurück
  437. // dg: Die Dateigruppen Id
  438. // Gibt bei misserfolg 0 zurück
  439. virtual int getDateiGruppeVersion( int dg ) = 0;
  440. // Gibt eine Liste Mit Accounts zurück, die einen bestimmten Text im Namen haben und bestimmt Sortiert ist
  441. // suche: Der Text, der in den Namen enthalten sein soll
  442. // seite: Die gewünschte Seite der Tabelle (enthält nach einem Erfolgreichen Aufruf die korrekte Seite)
  443. // maxSeite: Enthält nach erfolgreichem Aufruf die Maximale Seite
  444. // sortSpalte: Die Spalte, nach der Sortiert werden soll
  445. // rückwärts: 1:=Rückwärtzt Sortierung, 0:=Vorwärts Sortierung
  446. // accounts: Enthält nach erfolgreichem Aufruf die Daten der Accounts
  447. // Gibt die Anzahl der gefundenen Accounts zurück
  448. // Gibt die Anzahl der Spieler zurück, -1 bei fehler
  449. virtual int getSpielerListe( char *suche, int *seite, int *maxSeite, char sortSpalte, char rückwärts, Framework::Array< AccountInfo > *accounts ) = 0;
  450. // ermittelt die aktivität eines Spielers
  451. // accId: Die Id des Accounts
  452. // info: Enthält nach erfolgreichem Aufruf die Aktivitätsinformationen der letzten 30 Tage
  453. virtual bool getSpielerAktivität( int accId, Framework::Array< AccountActivityInfo > *info ) = 0;
  454. // Gibt zurück, wie oft ein Spieler eine Karte schon gespielt hat
  455. // account: Die Id des Accounts
  456. // karte: Die Id der Karte
  457. virtual int getAccountKarteSpiele( int account, int karte ) = 0;
  458. // Gibt zurück, wie oft ein Spieler eine Karte schon gewonnen hat
  459. // account: Die Id des Accounts
  460. // karte: Die Id der Karte
  461. virtual int getAccountKarteSpieleGewonnen( int account, int karte ) = 0;
  462. // Gibt zurück, ob ein Spieler die Karte im Besitz hat
  463. // account: Die Id des Accounts
  464. // karte: Die Id der Karte
  465. virtual bool hatAccountKarte( int account, int karte ) = 0;
  466. // Gibt zurück, ob ein Spieler ein Spiel im Besitz hat
  467. // account: Die Id des Accounts
  468. // spiel: Die Id des Spiels
  469. virtual bool hatAccountSpiel( int account, int spiel ) = 0;
  470. // gibt eine Liste mit Ids von Karten zurück, die von einem Spieler bereits gespielt wurden
  471. // account: Die Id des Accounts
  472. // spiel: Die Id des Spiels
  473. // Gibt bei misserfolg 0 zurück
  474. virtual Framework::Array< int > *getAccountKarteGespieltListe( int account, int spielId ) = 0;
  475. // gibt eine Liste mit Ids von Spielen zurück, die von einem Spieler bereits gespielt wurden
  476. // account: Die Id des Accounts
  477. // Gibt bei misserfolg 0 zurück
  478. virtual Framework::Array< int > *getAccountSpielGespieltListe( int account ) = 0;
  479. // Gibt eine Liste von Spiel Partnern eines Spielers zurück
  480. // account: Die Id des Accounts
  481. // spieler: Enthält nach erfolgreichem Aufruf eine Liste mit Account Ids der Spiel Partner
  482. // karten: Enthält nach erfolgreichem Aufruf eine Liste mit den Ids der gespielten Karten
  483. // anzahl: Enthält nach erfolgreichem Aufruf eine Liste mit der Anzahl der Spiele
  484. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  485. virtual bool getSpielPartnerListe( int account, Framework::Array< int > *spieler, Framework::Array< int > *karten, Framework::Array< int > *anzahl ) = 0;
  486. // Gibt eine Liste mit Spiel Statistiken zurück
  487. // account: Die Id des Accounts zu dem die Statistik ermittelt werden soll
  488. // seite: Die gewünschte Seite. Enthält nach efolgreichem Aufruf die korrekte Seite
  489. // maxSeite: Enthält nach erfolgreichem Aufruf die Macimale Seite
  490. // sortSpalte: Die Spalte, nach der Sortiert werden soll
  491. // rückwärts: 1:=Rückwärtzt Sortierung, 0:=Vorwärts Sortierung
  492. // werte: Enthält nach erfolgreichem Aufruf eine Liste mit Statistik Werten (gespielt, gewonnen, verloren, punkte, bw0, bw1, bw2, bw3, bw4, bw5)
  493. // namen: Enthält nach erfolgreichem Aufruf die Namen der Spiele
  494. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  495. virtual bool getStatistikListe( int account, int *seite, int *maxSeite, char sortSpalte, char rückwärts,
  496. Framework::RCArray< Framework::Array< int > > *werte, Framework::RCArray< Framework::Text > *namen ) = 0;
  497. // Gibt eine Liste mit den Daten der letzten 20 Spiele von einem Account zurück
  498. // account: Die Id des Accounts
  499. // Gibt bei misserfolg 0 zurück
  500. virtual Array< SpielHistorieDaten > *getSpielHistorieDaten( int account ) = 0;
  501. // Erzeugt einen Client zu dem Historie Server, welcher die Aufzeichnungen und Statistiken eines Bestimmten Spiels verwaltet
  502. // spielId: Die id des Spiels
  503. // Gibt bei misserfolg 0 zurück
  504. virtual HistorieServerClient *createHistorieServerClient( int spielId ) = 0; // sucht nach dem Historie Server von einem Spiel
  505. // Prüft, ob der Account bestimmte Berechtigungen besitzt
  506. // recht: Die Id der Berechtigungen
  507. virtual bool hatRecht( int recht ) = 0; // Prüft ob Berechtigung vorhanden
  508. // Gibt eine Liste mit Karten zurück, die einen bestimmten Text im Namen enthalten und bestimmt sortiert ist
  509. // filter: Die Zeichenkette, die im Namen Auftreten soll
  510. // sortSpalte: Der Index der Spalte, nach der sortiert werden soll
  511. // absteigend: 1:=absteigende sortierung,0:=aufsteigende Sortierung
  512. // kId: Eine Liste, welche nach einem erfolgreichen Aufruf die Ids der Karten enthält
  513. // kName: Eine Liste, welche nach einem erfolgreichen Aufruf die Namen der Karten enthält
  514. // sName: Eine Liste, welche nach einem erfolgreichen Aufruf die Namen der Spiele der Karten enthält
  515. // kupfer: Eine Liste, welche nach einem erfolgreichen Aufruf die Preise der Karten in Kupfer
  516. // verkauft: Eine Liste, welche nach einem erfolgreichen Aufruf die Anzahl der Verkäufe der Karten enthält
  517. // maxSpieler: Eine Liste, welche nach einem erfolgreichen Aufruf die Maximalen Spieleranzahlen der Karten enthält
  518. virtual int getKartenListe( char *filter, char sortSpalte, char absteigend, Framework::Array< int > *kId, Framework::RCArray< Framework::Text > *kName, Framework::RCArray< Framework::Text > *sName,
  519. Framework::Array< int > *kupfer, Framework::Array< int > *verkauft, Framework::Array< int > *maxSpieler ) = 0;
  520. // Erzeugt einen Client zu dem Editor Server von der Karte mit einer bestimmten Id
  521. // karteId: Die Id der Karte
  522. // Gibt bei misserfolg 0 zurück
  523. virtual EditorServerClient *createEditorServerClient( int karteId ) = 0;
  524. // Erzeugt einen Client zu dem Karten Server von der Karte mit einer bestimmten Id
  525. // karteId: Die Id der Karte
  526. // Gibt bei misserfolg 0 zurück
  527. virtual KartenServerClient *createKartenServerClient( int karteId ) = 0;
  528. // Erhält die Verbindung aufrecht
  529. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  530. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  531. virtual bool keepAlive() = 0;
  532. // Trennt die Verbindung zum Server
  533. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  534. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  535. virtual bool trenne( bool abmelden ) = 0;
  536. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  537. virtual bool istVerbunden() const = 0;
  538. // gibt den Letzten Fehlertext zuück
  539. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  540. virtual char *getLetzterFehler() const = 0;
  541. // Erhöht den Reference Counter um 1 un gibt this zurück
  542. virtual InformationServerClient *getThis() = 0;
  543. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  544. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  545. virtual InformationServerClient *release() = 0;
  546. };
  547. // 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 ...)
  548. // Kann nur von eingeloggten Clients verwendet werden
  549. class ChatServerClient
  550. {
  551. public:
  552. // verbindet sich mit dem zugewiesenen Chat Server
  553. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  554. virtual bool verbinde() = 0;
  555. // sendet eine Chat Nachricht zu einem Account
  556. // zuAccount: Id des Ziel Accounts
  557. // nachricht: Die Nachricht
  558. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  559. virtual bool chatNachricht( int zuAccount, const char *nachricht ) = 0;
  560. // ändert den angezeigten Account Namen
  561. // name: der neue Name
  562. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  563. virtual bool accountNameÄndern( const char *name ) = 0;
  564. // beendet die Freundschaft mit einem Account
  565. // accountId: Die Id des Accounts
  566. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  567. virtual bool freundschaftBeenden( int accountId ) = 0;
  568. // sendet eine Freundesanfragezu einem Account
  569. // accountId: Die Id des Accounts
  570. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  571. virtual bool freundesAnfrage( int accountId ) = 0;
  572. // beantwortet eine Freundesanfrage
  573. // accountId: Die Id des Accounts
  574. // ja: 1:=annehmen,0:=ablehnen
  575. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  576. virtual bool freundesAnfrageBeantworten( int accountId, bool ja ) = 0;
  577. // erstellt ein chatroom
  578. // name: Der Name des Chatrooms
  579. // Gibt bei erfolg die Id des Chatrooms zurück, 0 sonst
  580. virtual int chatroomErstellen( const char *name ) = 0;
  581. // Sendet eine Einladung zum Chatroom
  582. // accountId: Die Id des Accounts der eingeladen werden soll
  583. // chatroomId: Die Id des Chatrooms
  584. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  585. virtual bool chatroomEinladung( int accountId, int chatroomId ) = 0;
  586. // Einladung zum Chatroom wird abgelehnt
  587. // accountId: Die Id des Accounts
  588. // chatroomId: Die Id des Chatrooms
  589. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  590. virtual bool chatroomEinladungAblehnen( int accountId, int chatroomId ) = 0;
  591. // betritt ein chatroom
  592. // chatroomId: Die Id des Chatrooms
  593. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  594. virtual bool chatroomBetreten( int chatroomId ) = 0;
  595. // chatroom Nachricht senden
  596. // chatroomId: Die Id des Chatrooms
  597. // nachricht: Die Nachricht die gesendet werden soll
  598. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  599. virtual bool chatroomNachricht( int chatroomId, const char *nachricht ) = 0;
  600. // verlässt chatroom
  601. // chatroomId: Die Id des Chatrooms
  602. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  603. virtual bool chatroomVerlassen( int chatroomId ) = 0;
  604. // kickt Account aus Chatroom (nur wenn als admin des Chatrooms eingeloggt)
  605. // chatroomId: Die Id des Chatrooms
  606. // accountId: Die Id des Accounts
  607. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  608. virtual bool chatroomKick( int chatroomId, int accountId ) = 0;
  609. // fragt nach allen freunden
  610. // Die Liste der Freunde kann über getNextMessage empfangen werden
  611. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  612. virtual bool freundesListeAnfragen() = 0;
  613. // fragt nach allen chatnachrichten, die gesendet wurden, während der Account in den der Client eingeloggt ist, offline war
  614. // Die einzelnen Nachrichten können über getNextMessage empfangen werden
  615. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  616. virtual bool chatNachrichtAnfrage() = 0;
  617. // Erhält die Verbindung aufrecht
  618. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  619. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  620. virtual bool keepAlive() = 0;
  621. // Trennt die Verbindung zum Server
  622. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  623. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  624. virtual bool trenne( bool abmelden ) = 0;
  625. // Wartet auf eine Nachricht vom Chatserver.
  626. // Gibt bei Erfolg 1 zurück, 0 sonnst
  627. // nachricht: Eine Referenz auf die Struktur, in der die Nachricht gespeichert werden soll
  628. virtual bool getNextMessage( ChatServerNachricht &nachricht) = 0;
  629. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  630. virtual bool istVerbunden() const = 0;
  631. // gibt den Letzten Fehlertext zuück
  632. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  633. virtual char *getLetzterFehler() const = 0;
  634. // Erhöht den Reference Counter um 1 un gibt this zurück
  635. virtual ChatServerClient *getThis() = 0;
  636. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  637. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  638. virtual ChatServerClient *release() = 0;
  639. };
  640. // Wird verwendet um Spiele oder Karten zu kaufen
  641. // Kann nur von eingeloggten Clients verwendet werden
  642. class ShopServerClient
  643. {
  644. public:
  645. // verbindet sich mit dem zugewiesenen Shop Server
  646. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  647. virtual bool verbinde() = 0;
  648. // Gibt eine Liste mit Spiel Ids zurück, mit Spielen, die einen Bestimten Text im Namen haben
  649. // suche: Der Text, der im Namen der Spiele vorkommen soll
  650. // Gibt bei misserfolg 0 zurück
  651. virtual Framework::Array< int > *suchSpiele( const char *suche ) = 0;
  652. // läd Titelbild des Spieles herunter und speichert es unter data/tmp/shop/kazfen/spiele/{id}/titelbg.ltdb
  653. // id: Die Id des Spiels
  654. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  655. virtual bool ladeSpielTitel( int id ) = 0;
  656. // läd Shop Seite des Spieles herunter und speichert es unter data/tmp/shop/kazfen/spiele/{id}/seite.ksgs
  657. // id: Die Id des Spiels
  658. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  659. virtual bool ladeSpielSeite( int id ) = 0;
  660. // Gibt den Besitz Status eines Spiels zurück (0 = nicht im Besitz, 1 = Testversion, 2 = gekauft)
  661. // id: Die Id des Spiels
  662. virtual int getSpielBesitzStatus( int id ) = 0;
  663. // gibt die Anzahl der verbleibenden Spiele der Testversion zurück
  664. // id: Die Id des Spiels
  665. virtual int getSpielTestversion( int id ) = 0;
  666. // Gibt den Erwerbbarkeits Status eines Spiels zurück (0 = nichts, 1 = nur Testversion, 2 = nur Vollversion, 3 = beides)
  667. // id: Die Id des Spiels
  668. virtual int istSpielErwerbbar( int id ) = 0;
  669. // Gibt den Preis eines Spiels in Kupfer zurück
  670. // id: Die Id des Spiels
  671. // testVersion: 1:=Es wird der Preis der Testversion zurückgegeben, 0:=Es wird der Preis der Vollversion zurückgegeben
  672. virtual int getSpielPreis( int id, bool testVersion ) = 0;
  673. // Kauft ein Spiel
  674. // id: Die Id des Spiels
  675. // testVersion: 1:=Es wird die Testversion erworben, 0:=Es wird die Vollversion erworben
  676. virtual bool spielErwerben( int spielId, bool testVersion ) = 0;
  677. // sucht nach Karten mit zu einem bestimmten Spiel
  678. // suche: Ein Text, der im Namen der Karte vorkommen soll
  679. // spielId: Die Id des Spiels
  680. // Gibt eine Liste Mit den Ids der gefundenen Karten zurück
  681. virtual Framework::Array< int > *suchKarten( const char *suche, int spielId ) = 0;
  682. // lädt das Titelbild der Karte herunter und speichert es unter data/tmp/shop/kaufen/karten/{id}/titelbg.ltdb
  683. // id: Die Id der Karte
  684. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  685. virtual bool ladeKarteTitel( int id ) = 0;
  686. // lädt die Shop Seite der Karte herunter und speichert es unter data/tmp/shop/kaufen/karten/{id}/seite.ksgs
  687. // id: Die Id der Karte
  688. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  689. virtual bool ladeKarteSeite( int id ) = 0;
  690. // Gibt den Besitz Status einer Karte zurück (0 = nicht im Besitz, 1 = Testversion, 2 = gekauft)
  691. // id: Die Id der Karte
  692. virtual int getKarteBesitzStatus( int id ) = 0;
  693. // gibt die Anzahl der verbleibenden Spiele der Testversion zurück
  694. // id: Die Id der Karte
  695. virtual int getKarteTestversion( int id ) = 0;
  696. // Gibt den Erwerbbarkeits Status einer Karte zurück (0 = nichts, 1 = nur Testversion, 2 = nur Vollversion, 3 = beides)
  697. // id: Die Id der Karte
  698. virtual int istKarteErwerbbar( int id ) = 0;
  699. // Gibt den Preis einer Karte in Kupfer zurück
  700. // id: Die Id der Karte
  701. // testVersion: 1:=Es wird der Preis der Testversion zurückgegeben, 0:=Es wird der Preis der Vollversion zurückgegeben
  702. virtual int getKartePreis( int id, bool testVersion ) = 0;
  703. // Kauft eine Karte
  704. // id: Die Id der Karte
  705. // testVersion: 1:=Es wird die Testversion erworben, 0:=Es wird die Vollversion erworben
  706. virtual bool karteErwerben( int karteId, bool testVersion ) = 0;
  707. // Erhält die Verbindung aufrecht
  708. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  709. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  710. virtual bool keepAlive() = 0;
  711. // Trennt die Verbindung zum Server
  712. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  713. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  714. virtual bool trenne( bool abmelden ) = 0;
  715. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  716. virtual bool istVerbunden() const = 0;
  717. // gibt den Letzten Fehlertext zuück
  718. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  719. virtual char *getLetzterFehler() const = 0;
  720. // Erhöht den Reference Counter um 1 un gibt this zurück
  721. virtual ShopServerClient *getThis() = 0;
  722. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  723. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  724. virtual ShopServerClient *release() = 0;
  725. };
  726. // Wird verwendet um sich für Spiele anzumelden
  727. // Kann nur von eingeloggten Clients verwendet werden
  728. class AnmeldungServerClient
  729. {
  730. public:
  731. // verbindet sich mit dem zugewiesenen Anmeldung Server
  732. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  733. virtual bool verbinde() = 0;
  734. // erstellt eine gruppe
  735. // karteId: Die Id der Karte für die die Gruppe erstellt werden soll
  736. // Gibt bei Erfolg die Id der Gruppe zurück. Bei misserfolg wird 0 zurückgegeben
  737. virtual int gruppeErstellen( int karteId ) = 0;
  738. // Betritt eine Gruppe
  739. // gruppeId: Die Id der Gruppe
  740. // mitglieder: Nach erfolgreichem Aufruf enthält diese Liste die Lister der Account Ids der Gruppenmitglieder
  741. // anzahl: Nach erfolgreichem Aufruf wird hier die Anzahl der Gruppenmitglieder gespeichert
  742. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  743. virtual bool gruppeBetreten( int gruppeId, Framework::Array< int > *mitglieder, int *anzahl ) = 0;
  744. // Verlässt eine Gruppe
  745. // gruppeId: Die Id der Gruppe
  746. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  747. virtual bool gruppeVerlassen( int gruppeId ) = 0;
  748. // Trägt die Gruppe in die Warteschlange für die Karte ein (nur für den Gruppen Administrator)
  749. // gruppeId: Die Id der Gruppe
  750. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  751. virtual bool gruppeAnmelden( int gruppeId ) = 0;
  752. // Trägt die Gruppe aus der Warteschlange für die Karte aus (nur für den Gruppen Administrator)
  753. // gruppeId: Die Id der Gruppe
  754. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  755. virtual bool gruppeAbmelden( int gruppeId ) = 0;
  756. // läht Spieler ein die Gruppe zu betreten (nur für den Gruppen Administrator)
  757. // accountId: Die Id des Accounts
  758. // gruppeId: Die Id der Gruppe
  759. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  760. virtual bool gruppeSpielerEinladen( int accountId, int gruppeId ) = 0;
  761. // Zieht die Einladung eine Gruppe zu betreten zurück (nur für den Gruppen Administrator)
  762. // accountId: Die Id des Accounts
  763. // gruppeId: Die Id der Gruppe
  764. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  765. virtual bool gruppeEinladungAbbrechen( int accountId, int gruppeId ) = 0;
  766. // Einladung zur Gruppe ablehnen
  767. // gruppeId: Die Id der Gruppe
  768. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  769. virtual bool gruppeEinladungAblehnen( int gruppeId ) = 0;
  770. // wirft Spieler aus Gruppe (nur für den Gruppen Administrator)
  771. // accountId: Die Id des Accounts
  772. // gruppeId: Die Id der Gruppe
  773. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  774. virtual bool kickSpielerAusGruppe( int accountId, int gruppeId ) = 0;
  775. // 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
  776. // gruppeId: Die Id der Gruppe
  777. // spielStarte: 1:=alleine spielen, 0:=auf volles Spiel warten
  778. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  779. virtual bool gruppeSpielStarten( int gruppeId, bool spielStarten ) = 0;
  780. // Sendet eine Nachricht an den Gruppen Chat
  781. // gruppeId: Die Id der Gruppe
  782. // nachricht: Die Nachricht, die gesendet werden soll
  783. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  784. virtual bool gruppeNachricht( int gruppeId, char *nachricht ) = 0;
  785. // Meldet den eingeloggten Account in der Warteschlange für eine Karte an
  786. // karteId: Die Id der Karte
  787. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  788. virtual bool anmelden( int karteId ) = 0;
  789. // Meldet den eingeloggten Account aus der Warteschlange ab
  790. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  791. virtual bool abmelden() = 0;
  792. // Erhält die Verbindung aufrecht
  793. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  794. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  795. virtual bool keepAlive() = 0;
  796. // Trennt die Verbindung zum Server
  797. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  798. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  799. virtual bool trenne( bool abmelden ) = 0;
  800. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  801. virtual bool istVerbunden() const = 0;
  802. // gibt den Letzten Fehlertext zuück
  803. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  804. virtual char *getLetzterFehler() const = 0;
  805. // Erhöht den Reference Counter um 1 un gibt this zurück
  806. virtual AnmeldungServerClient *getThis() = 0;
  807. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  808. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  809. virtual AnmeldungServerClient *release() = 0;
  810. };
  811. // Wird verwendet um die aktuellen versionen der Karten vor dem Spiel herunterzuladen
  812. // Kann nur von eingeloggten Clients verwendet werden
  813. class KartenServerClient
  814. {
  815. public:
  816. // verbindet sich mit dem zugewiesenen Karten Server
  817. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  818. virtual bool verbinde() = 0;
  819. // lädt eine Karte herunter und speichert sie unter data/tmp/Karten/{id}/spiel
  820. // id: Die Id der Karte
  821. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  822. virtual bool downloadKarte( int id ) = 0;
  823. // lädt das Titelbild Karte herunter und speichert es unter data/tmp/Karten/{id}/titel.ltdb
  824. // id: Die Id der Karte
  825. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  826. virtual bool downloadKarteTitel( int id ) = 0;
  827. // lädt die Beschreibung Karte herunter und speichert sie unter data/tmp/Karten/{id}/beschreibung.ksgs
  828. // id: Die Id der Karte
  829. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  830. virtual bool downloadKarteBeschreibung( int id ) = 0;
  831. // lädt die Minimap Karte herunter und speichert es unter data/tmp/Karten/{id}/minimap.ltdb
  832. // id: Die Id der Karte
  833. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  834. virtual bool downloadKarteMinimap( int id ) = 0;
  835. // lädt das Ladebild Karte herunter und speichert es unter data/tmp/Karten/{id}/ladebild.ltdb
  836. // id: Die Id der Karte
  837. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  838. virtual bool downloadKarteLadebild( int id ) = 0;
  839. // Erhält die Verbindung aufrecht
  840. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  841. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  842. virtual bool keepAlive() = 0;
  843. // Trennt die Verbindung zum Server
  844. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  845. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  846. virtual bool trenne( bool abmelden ) = 0;
  847. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  848. virtual bool istVerbunden() const = 0;
  849. // gibt den Letzten Fehlertext zuück
  850. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  851. virtual char *getLetzterFehler() const = 0;
  852. // Erhöht den Reference Counter um 1 un gibt this zurück
  853. virtual KartenServerClient *getThis() = 0;
  854. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  855. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  856. virtual KartenServerClient *release() = 0;
  857. };
  858. // Wird zum Online Spielen verwendet
  859. // Kann nur von eingeloggten Clients verwendet werden
  860. class SpielServerClient
  861. {
  862. public:
  863. // verbindet sich mit dem zugewiesenen Karten Server
  864. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  865. virtual bool verbinde() = 0;
  866. // Betritt das Vorgeschlagene Spiel
  867. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  868. virtual bool spielErstelltAnnehmen() = 0;
  869. // Lehnt das Vorgeschlagene Spiel ab
  870. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  871. virtual bool spielErstelltAblehnen() = 0;
  872. // Wechselt zu einem bestimmten Team
  873. // team: Die Id des teams
  874. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  875. virtual bool spielErstelltTeamWechseln( int team ) = 0;
  876. // Bestätigt die Teamauswahl so dass das Spiel früher beginnen kann
  877. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  878. virtual bool spielErstelltTeamFertig() = 0;
  879. // sendet eine Chat Nachricht an die mitglieder des erstellten Spiels
  880. // nachricht: Die Nachricht
  881. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  882. virtual bool spielErstelltChatNachricht( char *nachricht ) = 0;
  883. // Teilt dem Server mit, dass der Client bereit ist das Spiel zu laden
  884. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  885. virtual bool bereitZumLaden() = 0;
  886. // Teilt dem Server mit, zu wie viel Prozent der Client das Spiel geladen hat
  887. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  888. virtual bool setLadenProzent( int prozent ) = 0;
  889. // Teilt dem Server mit, dass das Spiel fertig geladen wurde
  890. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  891. virtual bool bereitZumSpiel() = 0;
  892. // Sendet während des Spiels eine Nachricht an den Server
  893. // län: Die Länge der Nachricht
  894. // bytes: Ein Zeiger auf die Nachricht
  895. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  896. virtual bool spielNachricht( short län, char *bytes ) = 0;
  897. // Sendet während der Statistik eine Nachricht an den Server
  898. // län: Die Länge der Nachricht
  899. // bytes: Ein Zeiger auf die Nachricht
  900. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  901. virtual bool statistikNachricht( short län, char *bytes ) = 0;
  902. // Wartet auf eine Nachricht vom Spiel Server.
  903. // Gibt bei Erfolg 1 zurück, 0 sonnst
  904. // nachricht: Eine Referenz auf die Struktur, in der die Nachricht gespeichert werden soll
  905. virtual bool getNextMessage( SpielServerNachricht &nachricht ) = 0;
  906. // Erhält die Verbindung aufrecht
  907. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  908. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  909. virtual bool keepAlive() = 0;
  910. // Trennt die Verbindung zum Server
  911. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  912. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  913. virtual bool trenne() = 0;
  914. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  915. virtual bool istVerbunden() const = 0;
  916. // gibt den Letzten Fehlertext zuück
  917. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  918. virtual char *getLetzterFehler() const = 0;
  919. // Erhöht den Reference Counter um 1 un gibt this zurück
  920. virtual SpielServerClient *getThis() = 0;
  921. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  922. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  923. virtual SpielServerClient *release() = 0;
  924. };
  925. // Wird verwendet um Statistiken und Aufzeichnungen von vergangenen Spielen abzufragen
  926. // Kann nur von eingeloggten Clients verwendet werden
  927. class HistorieServerClient
  928. {
  929. protected:
  930. // verbindet sich mit dem zugewiesenen Historie Server
  931. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  932. virtual bool verbinde() = 0;
  933. // Trennt die Verbindung zum Server
  934. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  935. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  936. virtual bool trenne( bool abmelden ) = 0;
  937. public:
  938. // Lädt die Spiel Aufzeichnung eines Spiels herunter und speichert sie unter data/tmp/historie/{spielId}
  939. // Die Spielid wurde dem Objekt zum Zeitpunkt der Erstellung vom Information Server mitgegeben
  940. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  941. // Diese Funktion verbindet sich selbstständig mit dem Server und trennt die Verbindung nach Beendigung des Vorgangs
  942. virtual bool downloadSpielHistorie() = 0;
  943. // gibt den Letzten Fehlertext zuück
  944. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  945. virtual char *getLetzterFehler() const = 0;
  946. // Erhöht den Reference Counter um 1 un gibt this zurück
  947. virtual HistorieServerClient *getThis() = 0;
  948. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  949. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  950. virtual HistorieServerClient *release() = 0;
  951. };
  952. // Wird verwendet um Minigame Bestscores abzufragen und Minigame Spielaufzeichnungen zu laden
  953. // Kann nur von eingeloggten Clients verwendet werden
  954. class MinigameServerClient
  955. {
  956. public:
  957. // verbindet sich mit dem zugewiesenen Minigame Server
  958. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  959. virtual bool verbinde() = 0;
  960. // Ermittelt die liste mit allen Optionen zu einem Minigame zurück, zu denen es Welt beste Scores gibt
  961. // mName: Der Name des Minigames
  962. // zOptionList: Enthält nach erfolgreichem Aufruf eine Liste mit Optionen
  963. // Gibt die Anzahl der Optionen zurück
  964. virtual int getMinigameOptionList( char *mName, Framework::RCArray< Framework::Text > *zOptionList ) = 0;
  965. // Ermittelt eine Liste mit den Weltbesten Scores zurück
  966. // mName: Der Name des Minigames
  967. // zScore: Enthält nach erfolgreichem Aufruf eine Liste mit Scores
  968. // zPlayerList: Enthält nach erfolgreichem Aufruf eine Liste mit angezeigten Account Namen, die die Scores erreicht haben.
  969. // zOptionList: Enthält nach erfolgreichem Aufruf eine Liste mit Optionen, die beim erreichen der Scores aktiv waren.
  970. // Gibt die Anzahl der Bestscores zurück
  971. virtual int getMinigameBestscoreList( char *mName, Framework::Array< int > *zScore, Framework::RCArray< Framework::Text > *zPlayerList, Framework::RCArray< Framework::Text > *zOptionList ) = 0;
  972. // Gibt den Welt bestscore zu einem Bestimmten Minigame mit bestimmten Optionen zurück.
  973. // mName: Der Name des Minigames
  974. // oName: Die Optionen
  975. // zPlayer: Enthält nach erfolgreichem Aufruf den Angezeigten Namen des Accounts, der den Score erreicht hat
  976. virtual int getMinigameOptionBestscore( char *mName, char *oName, Framework::Text *zPlayer ) = 0;
  977. // Meldet die Beendigung eines Minigames
  978. // mName: Der Name des Minigames
  979. // oName: Die Optionen mit denen gespielt wurde
  980. // score: Der Erreichte Score
  981. // zCapture: Ein Zeiger auf eine Datei mit der Spielaufzeichnung
  982. // Gibt 0 zurück wenn eines Fehler aufgetreten ist, 1 wenn der Forgang erfolgreich war
  983. virtual bool reportEndOfGame( char *mName, char *oName, int score, Framework::Datei *zCapture ) = 0;
  984. // Lädt ein Game Capture herunter und speichert sie unter data/tmp/minigames/wb.mgc
  985. // mName: Der Name des Minigames
  986. // oName: Die Optionen
  987. // Gibt die Datei mit dem Capture zurück
  988. virtual Framework::Datei *downloadGameCapture( char *mName, char *oName ) = 0;
  989. // Erhält die Verbindung aufrecht
  990. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  991. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  992. virtual bool keepAlive() = 0;
  993. // Trennt die Verbindung zum Server
  994. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  995. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  996. virtual bool trenne( bool abmelden ) = 0;
  997. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  998. virtual bool istVerbunden() const = 0;
  999. // gibt den Letzten Fehlertext zuück
  1000. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  1001. virtual char *getLetzterFehler() const = 0;
  1002. // Erhöht den Reference Counter um 1 un gibt this zurück
  1003. virtual MinigameServerClient *getThis() = 0;
  1004. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  1005. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  1006. virtual MinigameServerClient *release() = 0;
  1007. };
  1008. // Wird verwendet um Karten für Spiele zu erstellen
  1009. // Kann nur von eingeloggten Clients verwendet werden
  1010. class EditorServerClient
  1011. {
  1012. public:
  1013. // verbindet sich mit dem zugewiesenen Editor Server
  1014. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1015. virtual bool verbinde() = 0;
  1016. // Erstellt eine neue Karte
  1017. // name: Der Name der Karte
  1018. // spielArt: Die Id des Spiels
  1019. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1020. virtual bool karteErstellen( char *name, int spielArt ) = 0;
  1021. // lädt eine bestimmte Karte
  1022. // id: Die Id der Karte
  1023. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1024. virtual bool ladeKarte( int id ) = 0;
  1025. // gibt eine Liste mit Abbildern der geladenen Karte zurück
  1026. // name: Enthält nach erfolgreichem Aufruf eine Liste mit Namen der Abbilder
  1027. // datum: Enthält nach erfolgreichem Aufruf eine Liste mit dem Datum der Erstellung für jedes Abbild
  1028. // Gibt die Anzahl der Abbilder zurück
  1029. virtual int getAbbildListe( Framework::RCArray< Framework::Text > *name, Framework::RCArray< Framework::Zeit > *datum ) = 0;
  1030. // Erstellt ein neues Abbild der geladenen Karte
  1031. // name: Der Name des Abbildes
  1032. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1033. virtual bool abbildErstellen( char *name ) = 0;
  1034. // Löscht ein altes Abbild der geladenen Karte
  1035. // name: Der Name des Abbildes
  1036. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1037. virtual bool abbildLöschen( char *name ) = 0;
  1038. // Stellt ein altes Abbild der geladenen Karte wieder her
  1039. // name: Der Name des Abbildes
  1040. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1041. virtual bool abbildHerstellen( char *name ) = 0;
  1042. // Verüffentlich eine neue Version der geladenen Karte
  1043. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1044. virtual bool veröffentlichen() = 0;
  1045. // Veröffentlich eine neue Version der Shop Seite der geladenen Karte
  1046. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1047. virtual bool shopSeiteVeröffentlichen() = 0;
  1048. // Läht die Vorschau der Shop Seite der geladenen Karte herrunter und speichert sie unter data/tmp/ke/ssv
  1049. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1050. virtual bool ladeShopSeiteVorschau() = 0;
  1051. // Erstellt eine neue Shop Seiten Datei
  1052. // name: Der Name der Datei
  1053. // typ: 0=Ordner, 1=Bild, 2=Text
  1054. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1055. virtual bool ssDateiErstellen( char *name, int typ ) = 0;
  1056. // Öffnet einen Ordner der Shop Seite
  1057. // name: Der Name des Ordners
  1058. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1059. virtual bool ssOrdnerÖffnen( char *name ) = 0;
  1060. // Lädt das ein Bild der Shop Seite und gibt es zurück
  1061. // datei: Der Name der Bilddatei
  1062. // bild: Der Name des Bildes
  1063. // Gibt bei misserfolg 0 zurück
  1064. virtual Framework::Bild *ssBildLaden( char *datei, char *bild ) = 0;
  1065. // Löscht eine Datei der Shop Seite
  1066. // name: Der Name der Datei
  1067. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1068. virtual bool ssDateiLöschen( char *name ) = 0;
  1069. // Läd eine KSGS Datei der Shop Seite und gibt den Quellcode zurück
  1070. // datei: Der Name der Datei
  1071. // Gibt bei misserfolg 0 zurück
  1072. virtual Framework::Text *ssTextLaden( char *datei ) = 0;
  1073. // Spechert eine KSGS Datei der Shop Seite
  1074. // datei: Der Name der Datei
  1075. // zText: Ein Zeiger auf den neuen Quellcode (ohne erhöhten Reference Counter)
  1076. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1077. virtual bool ssTextSpeichern( char *datei, Framework::Text *zText ) = 0;
  1078. // Löscht ein Bild der Shop Seite
  1079. // datei: Der Name der Bilddatei
  1080. // bild: Der Name des Bildes
  1081. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1082. virtual bool ssBildLöschen( char *datei, char *bild ) = 0;
  1083. // Speichert ein Bild einer ShopSeite
  1084. // datei: Der name der Bilddatei
  1085. // name: Der Name des Bildes
  1086. // zBild: Ein Zeiger auf das Bild (ohne erhöhten Reference Counter)
  1087. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1088. virtual bool ssBildSpeichern( char *datei, char *name, Framework::Bild *zBild ) = 0;
  1089. // Lädt eine Liste mit Dateien von der Shop Seite
  1090. // zList: Enthält nach erfolgreichem Aufruf die Liste mit Dateinamen
  1091. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1092. virtual int ssGetDateiListe( Framework::RCArray< Framework::Text > *zList ) = 0;
  1093. // Lädt die Bild Liste einer Bild Datei der Shop Seite
  1094. // name: Der Name der Bilddatei
  1095. // zList: Enthält nach erfolgreichem Aufruf eine Liste mit Bildnamen
  1096. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1097. virtual int ssGetBildListe( char *name, Framework::RCArray< Framework::Text > *zList ) = 0;
  1098. // Lädt die Shop Daten
  1099. // es: Enthält nach erfolgreichem aufruf den Erwerbbarkeits Status (0 = nichts, 1 = nur Testversion, 2 = nur Vollversion, 3 = beides)
  1100. // tp: Enthält nach erfolgreichem Aufruf den Preis der Testversion in Kupfer
  1101. // vp: Enthält nach erfolgreichem Aufruf den Preis der Vollversion in Kupfer
  1102. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1103. virtual bool getShopDaten( int &es, int &tp, int &vp ) = 0;
  1104. // Setzt die Shop Daten
  1105. // es: der Erwerbbarkeits Status (0 = nichts, 1 = nur Testversion, 2 = nur Vollversion, 3 = beides)
  1106. // tp: der Preis der Testversion in Kupfer
  1107. // vp: der Preis der Vollversion in Kupfer
  1108. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1109. virtual bool setShopDaten( int es, int tp, int vp ) = 0;
  1110. // gibt die Kartenbeschreibung als KSGScript Quellcode zurück
  1111. // Gibt bei misserfolg 0 zurück
  1112. virtual Framework::Text *beschreibungLaden() = 0;
  1113. // gibt das Titelbild der Karte zurück
  1114. // Gibt bei misserfolg 0 zurück
  1115. virtual Framework::Bild *titelbildLaden() = 0;
  1116. // gibt das Minimap Bild der Karte zurück
  1117. // Gibt bei misserfolg 0 zurück
  1118. virtual Framework::Bild *minimapLaden() = 0;
  1119. // gibt das Ladebild der Karte zurück
  1120. // Gibt bei misserfolg 0 zurück
  1121. virtual Framework::Bild *ladebildLaden() = 0;
  1122. // speichert den KSGScript Quellcode der Kartenbeschreibung
  1123. // zText: Der KSGScript Quellcode (ohne erhöhten reference Counter)
  1124. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1125. virtual bool beschreibungSpeichern( Framework::Text *zText ) = 0;
  1126. // speichert das Titelbild der Karte
  1127. // zBild: das neue Titelbild
  1128. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1129. virtual bool titelbildSpeichern( Framework::Bild *zBild ) = 0;
  1130. // speichert das Minimapbild der Karte
  1131. // zBild: das neue Minimapbild
  1132. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1133. virtual bool minimapSpeichern( Framework::Bild *zBild ) = 0;
  1134. // speichert das Ladebild der Karte
  1135. // zBild: das neue Ladebild
  1136. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1137. virtual bool ladebildSpeichern( Framework::Bild *zBild ) = 0;
  1138. // lädt die Spieler Team Daten der Karte
  1139. // sts: Enthält nach erfolgreichem Aufruf die Spieler Team Daten
  1140. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1141. virtual bool ladeTeamDaten( SpielerTeamStrukturV *sts ) = 0;
  1142. // speichert die Team Daten
  1143. // sts: die neuen Spieler Team Daten
  1144. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1145. virtual bool speicherTeamDaten( SpielerTeamStrukturV *sts ) = 0;
  1146. // Erstellt neue Datei im Datei Editor
  1147. // typ: 0=ordner 1=bild 2=modell2d 3=sound
  1148. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1149. virtual bool deNeueDatei( char typ, Framework::Text *zName ) = 0;
  1150. // Öffnet Ordner im Datei Editor
  1151. // zName: Der Name des Ordners
  1152. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1153. virtual bool deOrdnerÖffnen( Framework::Text *zName ) = 0;
  1154. // Gibt ein Bild aus dem Datei Editor zurück
  1155. // zDatei: Der Name der Datei (ohne erhöhten Reference Counter)
  1156. // zBild: Der Name des Bildes (ohne erhöhten Reference Counter)
  1157. // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erhöhten Reference Counter)
  1158. // Gibt bei misserfolg 0 zurück
  1159. virtual Framework::Bild *deBildLaden( Framework::Text *zDatei, Framework::Text *zBild, Framework::FBalken *zF ) = 0;
  1160. // Löscht eine Datei aus dem Datei Editor
  1161. // zName: Der Name der Datei
  1162. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1163. virtual bool deDateiLöschen( Framework::Text *zName ) = 0;
  1164. // Löscht Bild aus Datei im Datei Editor
  1165. // zDatei: Der Name der Bilddatei (ohne erhöhten Reference Counter)
  1166. // zBild: Der Name des Bildes (ohne erhöhten Reference Counter)
  1167. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1168. virtual bool deBildLöschen( Framework::Text *zDatei, Framework::Text *zBild ) = 0;
  1169. // Speichert Bild in Datei im Datei Editor
  1170. // zDatei: Der Name der Bilddatei (ohne erhöhten Reference Counter)
  1171. // zName: Der Name des Bildes (ohne erhöhten Reference Counter)
  1172. // zBild: Das neue Bild (ohne erhöhten Reference Counter)
  1173. // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erhöhten Reference Counter)
  1174. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1175. virtual bool deBildSpeichern( Framework::Text *zDatei, Framework::Text *zName, Framework::Bild *zBild, Framework::FBalken *zF ) = 0;
  1176. // Lädt eine Liste mit Dateien im aktuellen Ordner des Datei Editors
  1177. // zNamen: Enthält nach erfolgreichem Aufruf eine Liste mit Dateinamen (ohne erhöhten Reference Counter)
  1178. // Gibt die Anzahl der Dateien zurück
  1179. virtual int deGetDateiListe( Framework::RCArray< Framework::Text > *zNamen ) = 0;
  1180. // Lädt eine Liste mit Bildern aus einer Bilddatei des Datei Editors
  1181. // zNamen: Enthält nach erfolgreichem Aufruf eine Liste mit den Bildnamen (ohne erhöhten Reference Counter)
  1182. // Gibt die Anzahl der Bilder zurück
  1183. virtual int deGetBildListe( Framework::Text *zDatei, Framework::RCArray< Framework::Text > *zNamen ) = 0;
  1184. // Lädt eine Liste mit 2D Modellen aus einer Modeldatei im Datei Editor
  1185. // zDatei: Der Name der Modeldatei (ohne erhöhten Reference Counter)
  1186. // zNamen: Enthält nach erfolgreichem Aufruf eine Liste mit den Modelnamen (ohne erhöhten Reference Counter)
  1187. // Gibt die Anzahl der Modelle zurück
  1188. virtual int deGetModelListe( Framework::Text *zDatei, Framework::RCArray< Framework::Text > *zNamen ) = 0;
  1189. // Lädt eine Liste mit Sounds aus einer Sounddatei im Datei Editor
  1190. // zDatei: Der Name der Sounddatei (ohne erhöhten Reference Counter)
  1191. // zNamen: Enthält nach erfolgreichem Aufruf eine Liste mit den Soundnamen (ohne erhöhten Reference Counter)
  1192. // Gibt die Anzahl der Sounds zurück
  1193. virtual int deGetSoundListe( Framework::Text *zDatei, Framework::RCArray< Framework::Text > *zNamen ) = 0;
  1194. // Löscht ein Model aus einer Modeldatei des Datei Editors
  1195. // zDatei: Der Name der Modeldatei (ohne erhöhten Reference Counter)
  1196. // zModel: Der Name des Models (ohne erhöhten Reference Counter)
  1197. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1198. virtual bool deModelLöschen( Framework::Text *zDatei, Framework::Text *zModel ) = 0;
  1199. // Löscht einen Sound aus einer Sounddatei des Datei Editors
  1200. // zDatei: Der Name der Sounddatei (ohne erhöhten Reference Counter)
  1201. // zSound: Der Name des Sounds (ohne erhöhten Reference Counter)
  1202. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1203. virtual bool deSoundLöschen( Framework::Text *zDatei, Framework::Text *zSound ) = 0;
  1204. // Lädt ein Model aus einer Modeldatei des Datei Editors
  1205. // zDatei: Der Name der Modeldatei (ohne erhöhten Reference Counter)
  1206. // zModel: Enthält nach erfolgreichem Aufruf das Model (ohne erhöhten Reference Counter)
  1207. // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erhöhten Reference Counter)
  1208. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1209. virtual Framework::Model2DData *deModelLaden( Framework::Text *zDatei, Framework::Text *zModel, Framework::FBalken *zF ) = 0;
  1210. // Lädt einen Sound herunter und gibt ihn zurück
  1211. // file: Ein Zeiger auf die GSLDatei, in der der Sound gespeichert werden soll
  1212. // zDatei: Der Name der Sounddatei (ohne erhöhten Reference Counter)
  1213. // zSound: Der Name des Sounds (ohne erhöhten Reference Counter)
  1214. // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erhöhten Reference Counter)
  1215. // Gibt bei misserfolg 0 zurück
  1216. virtual GSL::GSLSoundV *deSoundLaden( GSL::GSLDateiV *file, Framework::Text *zDatei, Framework::Text *zSound, Framework::FBalken *zF ) = 0;
  1217. // Speichert ein Model in eine Modeldatei des Datei Editors
  1218. // zDatei: Der Name der Modeldatei (ohne erhöhten Reference Counter)
  1219. // zModel: Der Name des Models (ohne erhöhten Reference Counter)
  1220. // zData: Die Daten des Models (ohne erhöhten Reference Counter)
  1221. // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erhöhten Reference Counter)
  1222. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1223. virtual bool deModelSpeichern( Framework::Text *zDatei, Framework::Text *zModel, Framework::Model2DData *zData, Framework::FBalken *zF ) = 0;
  1224. // Speichert einen Sound in einer Sounddatei des Datei Editors
  1225. // zDatei: Der Name der Modeldatei (ohne erhöhten Reference Counter)
  1226. // zSound: Der Name des Sounds (ohne erhöhten Reference Counter)
  1227. // zData: Die Daten des Sounts (ohne erhöhten Reference Counter)
  1228. // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erhöhten Reference Counter)
  1229. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1230. virtual bool deSoundSpeichern( Framework::Text *zDatei, Framework::Text *zSound, GSL::GSLSoundV *zData, Framework::FBalken *zF ) = 0;
  1231. // Lädt die Kauf Statistik der geladenen Karte
  1232. // verkauft: Enthält nach erfolgreichem Aurfuf eine Liste mit den Anzahlen der Käufe der Karte der letzten 30 Tage
  1233. // einkommen: Enthält nach erfolgreichem Aurfuf eine Liste mit den Anzahlen der verdinten Kupfer in den letzten 30 Tagen
  1234. // gespielt: Enthält nach erfolgreichem Aurfuf eine Liste mit den Anzahlen der Spielen der letzten 30 Tage
  1235. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1236. virtual int getVerkaufStatistik( Framework::Array< int > *verkauft, Framework::Array< int > *einkommen, Framework::Array< int > *gespielt ) = 0;
  1237. // Startet den Editor Modus, welcher für jedes Spiel unterschiedlich funktioniert
  1238. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1239. virtual bool initEditor() = 0;
  1240. // Erhält die Verbindung aufrecht
  1241. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1242. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  1243. virtual bool keepAlive() = 0;
  1244. // Trennt die Verbindung zum Server
  1245. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1246. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  1247. virtual bool trenne( bool abmelden ) = 0;
  1248. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  1249. virtual bool istVerbunden() const = 0;
  1250. // gibt den Letzten Fehlertext zuück
  1251. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  1252. virtual char *getLetzterFehler() const = 0;
  1253. // Erhöht den Reference Counter um 1 un gibt this zurück
  1254. virtual EditorServerClient *getThis() = 0;
  1255. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  1256. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  1257. virtual EditorServerClient *release() = 0;
  1258. };
  1259. // Wird verwendet um Eine Verbindung mit dem Serversystem herzustellen
  1260. class MainServerClient
  1261. {
  1262. public:
  1263. // 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
  1264. virtual bool registerSSL( char *ip, unsigned short port ) = 0;
  1265. // Verbindet den Client mit dem Server
  1266. // Wird automatisch aufgerufen, falls eine Methode aufgerufen wird, die eine Verbindung erfordert. In diesem Fall wird die Verbindung auch automatisch wieder getrennt.
  1267. virtual bool connect() = 0;
  1268. // Erzeugt einen Erhaltungs Server Client
  1269. // Gibt bei misserfolg 0 zurück
  1270. virtual ErhaltungServerClient *createErhaltungServerClient() = 0;
  1271. // Erzeugt einen Patch Server Client
  1272. // Gibt bei misserfolg 0 zurück
  1273. virtual PatchServerClient *createPatchServerClient() = 0;
  1274. // Erzeugt einen News Server Client
  1275. // Gibt bei misserfolg 0 zurück
  1276. virtual NewsServerClient *createNewsServerClient() = 0;
  1277. // Erzeugt einen Register Server Client
  1278. // Gibt bei misserfolg 0 zurück
  1279. virtual RegisterServerClient *createRegisterServerClient() = 0;
  1280. // Erzeugt einen Login Server Client
  1281. // Gibt bei misserfolg 0 zurück
  1282. virtual LoginServerClient *createLoginServerClient() = 0;
  1283. // Erzeugt einen Information Server Client
  1284. // Gibt bei misserfolg 0 zurück
  1285. virtual InformationServerClient *createInformationServerClient() = 0;
  1286. // Erzeugt einen Chat Server Client
  1287. // Gibt bei misserfolg 0 zurück
  1288. virtual ChatServerClient *createChatServerClient() = 0;
  1289. // Erzeugt einen Shop Server Client
  1290. // Gibt bei misserfolg 0 zurück
  1291. virtual ShopServerClient *createShopServerClient() = 0;
  1292. // Erzeugt einen Anmeldung Server Client
  1293. // Gibt bei misserfolg 0 zurück
  1294. virtual AnmeldungServerClient *createAnmeldungServerClient() = 0;
  1295. // Erzeugt einen Minigame Server Client
  1296. // Gibt bei misserfolg 0 zurück
  1297. virtual MinigameServerClient *createMinigameServerClient() = 0;
  1298. // Trennt die Verbindung zum Server. Muss nur aufgerufen werden, wenn vorher manuell connect aufgerufen wurde
  1299. virtual bool disconnect() = 0;
  1300. // Meldet den Client vom Server ab. Alle zuvor von diesem Client erzeugten Clients werden durch diesen Vorgang unbrauchbar
  1301. virtual bool unregister() = 0;
  1302. // Gibt die dem Client zugewiesene Id zurück.
  1303. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  1304. virtual int getClientId() const = 0;
  1305. // Gibt die Ip Adresse des dem Client zugewiesenen Main Servers zurück.
  1306. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  1307. virtual Framework::Text *getServerIp() const = 0;
  1308. // Gibt den Port des dem Client zugewiesenen Main Servers zurück.
  1309. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  1310. virtual unsigned short getServerPort() const = 0;
  1311. // Gibt den Zeiger auf den Schlüssel zurück
  1312. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  1313. virtual char *zKey() const = 0;
  1314. // Gibt die Länge des Schlüssels zurück
  1315. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  1316. virtual unsigned char getKeyLen() const = 0;
  1317. // gibt den Letzten Fehlertext zuück
  1318. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  1319. virtual char *getLetzterFehler() const = 0;
  1320. // Erhöht den Reference Counter um 1 un gibt this zurück
  1321. virtual MainServerClient *getThis() = 0;
  1322. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  1323. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  1324. virtual MainServerClient *release() = 0;
  1325. };
  1326. }