Browse Source

Abstrakter InformationServerClient fertig

Kolja Strohm 6 years ago
parent
commit
7291c754a0
1 changed files with 198 additions and 41 deletions
  1. 198 41
      Include/KSGNetwork.h

+ 198 - 41
Include/KSGNetwork.h

@@ -67,7 +67,7 @@ namespace KSGClient
         Framework::Text *dauer; // Die Dater des Spiels
         Framework::Text *spielStatus; // Der Status des Spiels (beginnt, läuft, abgebrochen, fehlerhaft, beendet, unbewertet)
         Framework::Text *gewinner; // Der Name des Gewinners
-        int sAnzahl; // TODO: Ermitteln wozu dieser Wert gut ist
+        int sAnzahl; // Die Anzahl der Spieler
         Framework::RCArray< SpielHistorieTeamDaten > *teams; // Die Daten der Teams des Spiels
         // Erhöht den Reference Counter um 1 un gibt this zurück
         virtual SpielHistorieDaten *getThis() = 0;
@@ -91,6 +91,43 @@ namespace KSGClient
         virtual SpielHistorieListe *release() = 0;
     };
 
+    struct AccountInfo
+    {
+    protected:
+        int ref; // Reference Counter
+
+    public:
+        int id; // Die Id des Accounts
+        Framework::Text *name; // Der angezeigte Name des Accounts
+        Framework::Text zuletztOnline; // Der Zeitpunkt, zu dem der Account zuletzt online war
+        Framework::Text letztesSpiel; // Der Name des zuletzt gespielten online Spiels
+        Framework::Text letzteKarte; // Der Name der zuletzt gespielten Karte
+        Framework::Text punkte; // Die Punkte des Spielers in dem Spiel
+        // Erhöht den Reference Counter um 1 un gibt this zurück
+        virtual AccountInfo *getThis() = 0;
+        // Verringert den Reference Counter um 1 und gibt 0 zurück.
+        //  Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst 
+        virtual AccountInfo *release() = 0;
+    };
+
+    struct AccountActivityInfo
+    {
+    protected:
+        int ref; // Reference Counter
+
+    public:
+        Framework::Text datum; // Das Datum für das die Werte gillt
+        double stOnline; // Die Anzahl der Stunden, die der Account Online war
+        double stGespielt; // Die Anzahl der Stunden, die der Account in online Spielen verbracht hat
+        int anzSpiele; // Die Anzahl der gespielten online Spiele
+        int anzGewonnen; // Die Anzahl der gewonnenen online Spiele
+        // Erhöht den Reference Counter um 1 un gibt this zurück
+        virtual AccountActivityInfo *getThis() = 0;
+        // Verringert den Reference Counter um 1 und gibt 0 zurück.
+        //  Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst 
+        virtual AccountActivityInfo *release() = 0;
+    };
+
     // Wird benutzt, um die Verbindung mit den Servern aufrecht zu erhalten. Bei einem Verbindungsabbruch wird der Client automatisch abgemeldet
     class ErhaltungServerClient
     {
@@ -240,49 +277,169 @@ namespace KSGClient
     class InformationServerClient
     {
     public:
-        // nicht constant
-        virtual bool verbinde() = 0; // verbindet ich mit dem Informaion Server
-        virtual bool getInformationText( Text *txt, int *typ ) = 0; // fragt nach Informationstext
-        virtual bool istSpielErlaubt( int spielId ) = 0; // fragt, ob das entsprechende Spiel vom Server gesperrt wurde
-        virtual bool istKarteErlaubt( int karteId ) = 0; // fragt, ob die entsprechende Karte vom Server gesperrt wurde
-        virtual int getKarteId( char *name ) = 0; // fragt nach der Id einer Karte
-        virtual int getSpielId( char *name ) = 0; // fragt nach der id eines Spiels
-        virtual Text *getSpielerName( int accountId ) = 0; // fragt nach dem Namen eines Accounts
-        virtual bool getSpielStatistik( int accountId, int spielId, Array< int > *werte ) = 0; // fragt nach der Spiel Statistik eines Accounts
-        virtual Text *getKarteName( int karteId ) = 0; // fragt nach dem Namen einer Karte
-        virtual Text *getSpielName( int spielId ) = 0; // fragt nach dem Namen einer Spielart
-        virtual Text *getChatroomName( int chatroomId ) = 0; // fragt nach dem Namen eines Chatrooms
-        virtual int getSpielId( int karteId ) = 0; // fragt zu welcher Spielart die Karte gehört
-        virtual int getAccountId( char *name ) = 0; // gibt die Id des Accounts zurück
-        virtual int getChatroomId( char *name ) = 0; // gibt die Id des Chatrooms zurück
-        virtual int getGruppenKarteId( int gruppenId ) = 0; // gibt die karten Id der gruppe zurück
-        virtual bool getGruppeSpielerHinzufügen( int gruppeId ) = 0; // gibt die Spieler hinzufügen Funktion der Gruppe zurück
-        virtual int getGruppeAdminId( int gruppeId ) = 0; // gibt den Gruppen Administrator zurück
-        virtual int getSpielerPunkte( int accountId, int spielId ) = 0; // gibt die Punkte eines Spielers zurück
-        virtual Array< int > *getAccountSpielArtListe() = 0; // gibt eine Liste mit gekauften Spielen zurück
-        virtual int getSpielVersion( int spielId ) = 0; // gibt die neuste Version eines Spiels zurück
-        virtual int getKupfer() = 0; // gibt das Kupfer des Accounts zurück
-        virtual int getDateiGruppeIdVonSpiel( int spielId ) = 0; // Gibt die Dateigruppe eines Spieles zurück
-        virtual Text *getDateiGruppePfad( int dgId ) = 0; // Gibt den Dateigruppen Pfad zurück
-        virtual Array< int > *getAccountKarteListe( int spielId ) = 0; // gibt eine Liste mit gekauften Karten zurück
-        virtual int getDateiGruppeIdVonPfad( char *pfad ) = 0; // Gibt die Dateigruppe eines Pfades zurück
-        virtual int getDateiGruppeVersion( int dg ) = 0; // gibt die neuste Version einer Dateigruppe zurück
-        virtual int getSpielerListe( char *suche, int *seite, int *maxSeite, char sortSpalte, char rückwärts,
-                                     Array< int > *accounts, RCArray< Text > *name, RCArray< Text > *zuletztOnline,
-                                     RCArray< Text > *letztesSpiel, RCArray< Text > *letzteKarte, RCArray< Text > *punkte ) = 0; // sucht nach Spielern
-        virtual bool getSpielerAktivität( int accId, RCArray< Text > *datum, Array< double > *stOnline, Array< double > *stGespielt,
-                                          Array< int > *anzSpiele, Array< int > *anzGewonnen ) = 0; // ermittelt die aktivität eines Spielers
-        virtual int getAccountKarteSpiele( int account, int karte ) = 0; // Gibt zurück, wie oft ein Spieler eine Karte schon gespielt hat
-        virtual int getAccountKarteSpieleGewonnen( int account, int karte ) = 0; // Gibt zurück, wie oft ein Spieler eine Karte schon gewonnen hat
-        virtual bool hatAccountKarte( int account, int karte ) = 0; // Gibt zurück, ob ein Spieler die Karte im Besitz hat
-        virtual bool hatAccountSpiel( int account, int spiel ) = 0; // Gibt zurück, ob ein Spieler ein Spiel im Besitz hat
-        virtual Array< int > *getAccountKarteGespieltListe( int account, int spielId ) = 0; // gibt eine Liste mit Karten zurück, die von einem Spieler bereits gespielt wurden
-        virtual Array< int > *getAccountSpielGespieltListe( int account ) = 0; // gibt eine Liste mit Spielen zurück, die von einem Spieler bereits gespielt wurden
-        virtual bool getSpielPartnerListe( int account, Array< int > *spieler, Array< int > *karten, Array< int > *anzahl ) = 0; // Gibt eine Liste von Spiel Partnern eines Spielers zurück
+        // verbindet ich mit dem zugewiesenen Informaion Server
+        //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
+        virtual bool verbinde() = 0;
+        // 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
+        virtual bool getInformationText( Framework::Text *txt, int *typ ) = 0;
+        // 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
+        virtual bool istSpielErlaubt( int spielId ) = 0;
+        // 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
+        virtual bool istKarteErlaubt( int karteId ) = 0;
+        // Ermittelt die Id einer Karte
+        //  name: Der Name der Karte
+        //  Gibt bei misserfolg 0 zurück
+        virtual int getKarteId( char *name ) = 0;
+        // Fragt nach der Id eines Spiels
+        //  name: Der Name des Spiels
+        //  Gibt bei misserfolg 0 zurück
+        virtual int getSpielId( char *name ) = 0;
+        // fragt nach dem Namen eines Accounts
+        //  accountId: Die Id des Accounts
+        //  Gibt bei misserfolg 0 zurück
+        virtual Framework::Text *getSpielerName( int accountId ) = 0;
+        // 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)
+        virtual bool getSpielStatistik( int accountId, int spielId, Framework::Array< int > *werte ) = 0;
+        // fragt nach dem Namen einer Karte
+        //  karteId: Die id der Karte
+        //  Gibt bei misserfolg 0 zurück
+        virtual Framework::Text *getKarteName( int karteId ) = 0;
+        // fragt nach dem Namen eines Spiels
+        //  spielId: Die id des Spiels
+        //  Gibt bei misserfolg 0 zurück
+        virtual Framework::Text *getSpielName( int spielId ) = 0;
+        // fragt nach dem Namen eines Chatrooms
+        //  chatroomId: Die id des Chatrooms
+        //  Gibt bei misserfolg 0 zurück
+        virtual Framework::Text *getChatroomName( int chatroomId ) = 0;
+        // fragt zu welcher Spielart die Karte gehört
+        //  karteId: Die id der Karte
+        //  Gibt bei misserfolg 0 zurück
+        virtual int getSpielId( int karteId ) = 0;
+        // gibt die Id eines Accounts zurück
+        //  name: Der Angezeigte Name des Accounts
+        //  Gibt bei misserfolg 0 zurück
+        virtual int getAccountId( char *name ) = 0;
+        // gibt die Id des Chatrooms zurück
+        //  name: Der name des Chatrooms
+        //  Gibt bei misserfolg 0 zurück
+        virtual int getChatroomId( char *name ) = 0;
+        // gibt die karten Id zurück, zu dem eine Gruppe erstellt wurde
+        //  gruppenId: Die id der Gruppe
+        //  Gibt bei misserfolg 0 zurück
+        virtual int getGruppenKarteId( int gruppenId ) = 0;
+        // gibt 1 zurück, wenn zu einer Gruppe Spieler hinzugefügt werden können, 0 sonnst
+        //  gruppeId: Die id der Gruppe
+        virtual bool getGruppeSpielerHinzufügen( int gruppeId ) = 0;
+        // gibt die Account Id des Gruppen Administrators zurück
+        //  gruppeId: Die Id der Gruppe
+        //  Gibt bei misserfolg 0 zurück
+        virtual int getGruppeAdminId( int gruppeId ) = 0;
+        // gibt die Punkte eines Spielers zurück
+        //  accountId: Die Accont Id des Spielers
+        //  spielId: Die Id des Spiels
+        //  Gibt bei misserfolg 0 zurück
+        virtual int getSpielerPunkte( int accountId, int spielId ) = 0;
+        // gibt eine Liste mit Ids von gekauften Spielen zurück
+        //  Gibt bei misserfolg 0 zurück
+        virtual Framework::Array< int > *getAccountSpielArtListe() = 0;
+        // gibt die neuste Version eines Spiels zurück
+        //  spielId: Die Id des Spiels
+        //  Gibt bei misserfolg 0 zurück
+        virtual int getSpielVersion( int spielId ) = 0;
+        // gibt das Kupfer des Accounts zurück
+        //  Gibt bei misserfolg 0 zurück
+        virtual int getKupfer() = 0;
+        // Gibt die Dateigruppem Id eines Spieles zurück
+        //  spielId: Die Id des Spiels
+        //  Gibt bei misserfolg 0 zurück
+        virtual int getDateiGruppeIdVonSpiel( int spielId ) = 0;
+        // Gibt den Dateigruppen Pfad zurück
+        //  dgId: Die Id der Dateigruppe
+        //  Gibt bei misserfolg 0 zurück
+        virtual Framework::Text *getDateiGruppePfad( int dgId ) = 0;
+        // 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
+        virtual Framework::Array< int > *getAccountKarteListe( int spielId ) = 0;
+        // Gibt die Dateigruppen Id eines Pfades zurück
+        //  pfad: Der Pfad der Dateigruppe
+        //  Gibt bei misserfolg 0 zurück
+        virtual int getDateiGruppeIdVonPfad( char *pfad ) = 0;
+        // gibt die neuste Version einer Dateigruppe zurück
+        //  dg: Die Dateigruppen Id
+        //  Gibt bei misserfolg 0 zurück
+        virtual int getDateiGruppeVersion( int dg ) = 0;
+        // 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 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
+        virtual int getSpielerListe( char *suche, int *seite, int *maxSeite, char sortSpalte, char rückwärts, Framework::RCArray< AccountInfo > *accounts ) = 0;
+        // ermittelt die aktivität eines Spielers
+        //  accId: Die Id des Accounts
+        //  info: Enthält nach erfolgreichem Aufruf die Aktivitätsinformationen der letzten 30 Tage
+        virtual bool getSpielerAktivität( int accId, Framework::RCArray< AccountActivityInfo > *info ) = 0;
+        // Gibt zurück, wie oft ein Spieler eine Karte schon gespielt hat
+        //  account: Die Id des Accounts
+        //  karte: Die Id der Karte
+        virtual int getAccountKarteSpiele( int account, int karte ) = 0;
+        // Gibt zurück, wie oft ein Spieler eine Karte schon gewonnen hat
+        //  account: Die Id des Accounts
+        //  karte: Die Id der Karte
+        virtual int getAccountKarteSpieleGewonnen( int account, int karte ) = 0;
+        // Gibt zurück, ob ein Spieler die Karte im Besitz hat
+        //  account: Die Id des Accounts
+        //  karte: Die Id der Karte
+        virtual bool hatAccountKarte( int account, int karte ) = 0;
+        // Gibt zurück, ob ein Spieler ein Spiel im Besitz hat
+        //  account: Die Id des Accounts
+        //  spiel: Die Id des Spiels
+        virtual bool hatAccountSpiel( int account, int spiel ) = 0;
+        // 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
+        virtual Framework::Array< int > *getAccountKarteGespieltListe( int account, int spielId ) = 0;
+        // 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
+        virtual Framework::Array< int > *getAccountSpielGespieltListe( int account ) = 0;
+        // 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
+        virtual bool getSpielPartnerListe( int account, Framework::Array< int > *spieler, Framework::Array< int > *karten, Framework::Array< int > *anzahl ) = 0;
+        // 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
         virtual bool getStatistikListe( int account, int *seite, int *maxSeite, char sortSpalte, char rückwärts,
-                                        RCArray< Array< int > > *werte, RCArray< Text > *namen ) = 0; // Gibt eine Liste mit Spiel Statistiken zurück
+                                        Framework::RCArray< Framework::Array< int > > *werte, Framework::RCArray< Framework::Text > *namen ) = 0;
         // 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
         virtual SpielHistorieListe *getSpielHistorieDaten( int account ) = 0;
         // Erzeugt einen Client zu dem Historie Server, welcher die Aufzeichnungen und Statistiken eines Bestimmten Spiels verwaltet
         //  spielId: Die id des Spiels