#pragma once #include "../Include/KSGNetwork.h" #include namespace KSGClient { // Wird verwendet um informationen über Accounts abzufragen // Kann nur von eingeloggten Clients verwendet werden class InformationClient : public InformationServerClient { private: Framework::Text ip; unsigned short port; int cId; Network::Klient* k; char* key; unsigned char keyLen; Framework::Critical cs; Framework::Text err; public: // Konstruktor InformationClient(int klientId, unsigned short port, const char* ip, const char* key, unsigned char keyLen); // Destruktor ~InformationClient(); // verbindet ich mit dem zugewiesenen Informaion Server // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst bool verbinde() override; // fragt nach dem Informationstext // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst // txt: Ein Zeiger auf ein Text Objekt, welches bei einem erfolgreichen Aufruf den Informationstext enthält // typ: ein Zeieger auf ein Integer, welches bei einem erfolgreichen Aufruf den Typ der Information enthält bool getInformationText(Framework::Text* txt, int* typ) override; // fragt, ob das entsprechende Spiel vom Server gesperrt wurde // spielId: Die Id des Spiels // Gibt 1 zurück, falls das Spiel gespielt werden darf, 0 sonnst bool istSpielErlaubt(int spielId) override; // fragt, ob die entsprechende Karte vom Server gesperrt wurde // karteId: Die Id der Karte // Gibt 1 zurück, falls die Karte gespielt werden darf, 0 sonnst bool istKarteErlaubt(int karteId) override; // Ermittelt die Id einer Karte // name: Der Name der Karte // Gibt bei misserfolg 0 zurück int getKarteId(const char* name) override; // Fragt nach der Id eines Spiels // name: Der Name des Spiels // Gibt bei misserfolg 0 zurück int getSpielId(const char* name) override; // fragt nach dem Namen eines Accounts // accountId: Die Id des Accounts // Gibt bei misserfolg 0 zurück Framework::Text* getSpielerName(int accountId) override; // fragt nach der Spiel Statistik eines Accounts // accountId: Die Id des Accounts // spielId: Die Id des Spiels // werte: Nach erfolgreichem Aufruf enthält die Liste die Statistik werte (gespielt, gewonnen, verloren, punkte, bw0, bw1, bw2, bw3, bw4, bw5) bool getSpielStatistik(int accountId, int spielId, Framework::Array< int >* werte) override; // fragt nach dem Namen einer Karte // karteId: Die id der Karte // Gibt bei misserfolg 0 zurück Framework::Text* getKarteName(int karteId) override; // fragt nach dem Namen eines Spiels // spielId: Die id des Spiels // Gibt bei misserfolg 0 zurück Framework::Text* getSpielName(int spielId) override; // fragt nach dem Namen eines Chatrooms // chatroomId: Die id des Chatrooms // Gibt bei misserfolg 0 zurück Framework::Text* getChatroomName(int chatroomId) override; // fragt zu welcher Spielart die Karte gehört // karteId: Die id der Karte // Gibt bei misserfolg 0 zurück int getSpielId(int karteId) override; // gibt die Id eines Accounts zurück // name: Der Angezeigte Name des Accounts // Gibt bei misserfolg 0 zurück int getAccountId(const char* name) override; // gibt die Id des Chatrooms zurück // name: Der name des Chatrooms // Gibt bei misserfolg 0 zurück int getChatroomId(const char* name) override; // gibt die karten Id zurück, zu dem eine Gruppe erstellt wurde // gruppenId: Die id der Gruppe // Gibt bei misserfolg 0 zurück int getGruppenKarteId(int gruppenId) override; // gibt 1 zurück, wenn zu einer Gruppe Spieler hinzugefügt werden können, 0 sonnst // gruppeId: Die id der Gruppe bool getGruppeSpielerHinzufügen(int gruppeId) override; // gibt die Account Id des Gruppen Administrators zurück // gruppeId: Die Id der Gruppe // Gibt bei misserfolg 0 zurück int getGruppeAdminId(int gruppeId) override; // gibt die Punkte eines Spielers zurück // accountId: Die Accont Id des Spielers // spielId: Die Id des Spiels // Gibt bei misserfolg 0 zurück int getSpielerPunkte(int accountId, int spielId) override; // gibt eine Liste mit Ids von gekauften Spielen zurück // Gibt bei misserfolg 0 zurück Framework::Array< int >* getAccountSpielArtListe() override; // gibt die neuste Version eines Spiels zurück // spielId: Die Id des Spiels // Gibt bei misserfolg 0 zurück int getSpielVersion(int spielId) override; // gibt das Kupfer des Accounts zurück // Gibt bei misserfolg 0 zurück int getKupfer() override; // Gibt die Dateigruppem Id eines Spieles zurück // spielId: Die Id des Spiels // Gibt bei misserfolg 0 zurück int getDateiGruppeIdVonSpiel(int spielId) override; // Gibt den Dateigruppen Pfad zurück // dgId: Die Id der Dateigruppe // Gibt bei misserfolg 0 zurück Framework::Text* getDateiGruppePfad(int dgId) override; // gibt eine Liste mit gekauften Karten zurück // spielId: Die Spiel Id zu der die Karten gehören sollen // Gibt bei misserfolg 0 zurück Framework::Array< int >* getAccountKarteListe(int spielId) override; // Gibt die Dateigruppen Id eines Pfades zurück // pfad: Der Pfad der Dateigruppe // Gibt bei misserfolg 0 zurück int getDateiGruppeIdVonPfad(const char* pfad) override; // gibt die neuste Version einer Dateigruppe zurück // dg: Die Dateigruppen Id // Gibt bei misserfolg 0 zurück int getDateiGruppeVersion(int dg) override; // Gibt eine Liste Mit Accounts zurück, die einen bestimmten Text im Namen haben und bestimmt Sortiert ist // suche: Der Text, der in den Namen enthalten sein soll // seite: Die gewünschte Seite der Tabelle (enthält nach einem Erfolgreichen Aufruf die korrekte Seite) // maxSeite: Enthält nach erfolgreichem Aufruf die Maximale Seite // sortSpalte: Die Spalte, nach der Sortiert werden soll // rückwärts: 1:=Rückwärtzt Sortierung, 0:=Vorwärts Sortierung // accounts: Enthält nach erfolgreichem Aufruf die Daten der Accounts // Gibt die Anzahl der gefundenen Accounts zurück // Gibt die Anzahl der Spieler zurück, -1 bei fehler int getSpielerListe(const char* suche, int* seite, int* maxSeite, char sortSpalte, char rückwärts, Framework::Array< AccountInfo >* accounts) override; // ermittelt die aktivität eines Spielers // accId: Die Id des Accounts // info: Enthält nach erfolgreichem Aufruf die Aktivitätsinformationen der letzten 30 Tage bool getSpielerAktivität(int accId, Framework::Array< AccountActivityInfo >* info) override; // Gibt zurück, wie oft ein Spieler eine Karte schon gespielt hat // account: Die Id des Accounts // karte: Die Id der Karte int getAccountKarteSpiele(int account, int karte) override; // Gibt zurück, wie oft ein Spieler eine Karte schon gewonnen hat // account: Die Id des Accounts // karte: Die Id der Karte int getAccountKarteSpieleGewonnen(int account, int karte) override; // Gibt zurück, ob ein Spieler die Karte im Besitz hat // account: Die Id des Accounts // karte: Die Id der Karte bool hatAccountKarte(int account, int karte) override; // Gibt zurück, ob ein Spieler ein Spiel im Besitz hat // account: Die Id des Accounts // spiel: Die Id des Spiels bool hatAccountSpiel(int account, int spiel) override; // gibt eine Liste mit Ids von Karten zurück, die von einem Spieler bereits gespielt wurden // account: Die Id des Accounts // spiel: Die Id des Spiels // Gibt bei misserfolg 0 zurück Framework::Array< int >* getAccountKarteGespieltListe(int account, int spielId) override; // gibt eine Liste mit Ids von Spielen zurück, die von einem Spieler bereits gespielt wurden // account: Die Id des Accounts // Gibt bei misserfolg 0 zurück Framework::Array< int >* getAccountSpielGespieltListe(int account) override; // Gibt eine Liste von Spiel Partnern eines Spielers zurück // account: Die Id des Accounts // spieler: Enthält nach erfolgreichem Aufruf eine Liste mit Account Ids der Spiel Partner // karten: Enthält nach erfolgreichem Aufruf eine Liste mit den Ids der gespielten Karten // anzahl: Enthält nach erfolgreichem Aufruf eine Liste mit der Anzahl der Spiele // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst bool getSpielPartnerListe(int account, Framework::Array< int >* spieler, Framework::Array< int >* karten, Framework::Array< int >* anzahl) override; // Gibt eine Liste mit Spiel Statistiken zurück // account: Die Id des Accounts zu dem die Statistik ermittelt werden soll // seite: Die gewünschte Seite. Enthält nach efolgreichem Aufruf die korrekte Seite // maxSeite: Enthält nach erfolgreichem Aufruf die Macimale Seite // sortSpalte: Die Spalte, nach der Sortiert werden soll // rückwärts: 1:=Rückwärtzt Sortierung, 0:=Vorwärts Sortierung // werte: Enthält nach erfolgreichem Aufruf eine Liste mit Statistik Werten (gespielt, gewonnen, verloren, punkte, bw0, bw1, bw2, bw3, bw4, bw5) // namen: Enthält nach erfolgreichem Aufruf die Namen der Spiele // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst bool getStatistikListe(int account, int* seite, int* maxSeite, char sortSpalte, char rückwärts, Framework::RCArray< Framework::Array< int > >* werte, Framework::RCArray< Framework::Text >* namen) override; // Gibt eine Liste mit den Daten der letzten 20 Spiele von einem Account zurück // account: Die Id des Accounts // Gibt bei misserfolg 0 zurück Array< SpielHistorieDaten >* getSpielHistorieDaten(int account) override; // Erzeugt einen Client zu dem Historie Server, welcher die Aufzeichnungen und Statistiken eines Bestimmten Spiels verwaltet // spielId: Die id des Spiels // Gibt bei misserfolg 0 zurück HistorieServerClient* createHistorieServerClient(int spielId) override; // sucht nach dem Historie Server von einem Spiel // Prüft, ob der Account bestimmte Berechtigungen besitzt // recht: Die Id der Berechtigungen bool hatRecht(int recht) override; // Prüft ob Berechtigung vorhanden // Gibt eine Liste mit Karten zurück, die einen bestimmten Text im Namen enthalten und bestimmt sortiert ist // filter: Die Zeichenkette, die im Namen Auftreten soll // sortSpalte: Der Index der Spalte, nach der sortiert werden soll // absteigend: 1:=absteigende sortierung,0:=aufsteigende Sortierung // kId: Eine Liste, welche nach einem erfolgreichen Aufruf die Ids der Karten enthält // kName: Eine Liste, welche nach einem erfolgreichen Aufruf die Namen der Karten enthält // sName: Eine Liste, welche nach einem erfolgreichen Aufruf die Namen der Spiele der Karten enthält // kupfer: Eine Liste, welche nach einem erfolgreichen Aufruf die Preise der Karten in Kupfer // verkauft: Eine Liste, welche nach einem erfolgreichen Aufruf die Anzahl der Verkäufe der Karten enthält // maxSpieler: Eine Liste, welche nach einem erfolgreichen Aufruf die Maximalen Spieleranzahlen der Karten enthält int getKartenListe(const char* filter, char sortSpalte, char absteigend, Framework::Array< int >* kId, Framework::RCArray< Framework::Text >* kName, Framework::RCArray< Framework::Text >* sName, Framework::Array< int >* kupfer, Framework::Array< int >* verkauft, Framework::Array< int >* maxSpieler) override; // Erzeugt einen Client zu dem Editor Server von der Karte mit einer bestimmten Id // karteId: Die Id der Karte // Gibt bei misserfolg 0 zurück EditorServerClient* createEditorServerClient(int karteId) override; // Erzeugt einen Client zu dem Karten Server von der Karte mit einer bestimmten Id // karteId: Die Id der Karte // Gibt bei misserfolg 0 zurück KartenServerClient* createKartenServerClient(int karteId) override; // Erhält die Verbindung aufrecht // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt bool keepAlive() override; // Trennt die Verbindung zum Server // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden bool trenne(bool abmelden) override; // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst bool istVerbunden() const override; // gibt den Letzten Fehlertext zuück // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist const char* getLetzterFehler() const override; }; }