KSGNetwork.h 84 KB

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