12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- #pragma once
- #include "../Include/KSGNetwork.h"
- #include <Critical.h>
- namespace KSGClient
- {
- // Wird zum Online Spielen verwendet
- // Kann nur von eingeloggten Clients verwendet werden
- class SpielClient : public SpielServerClient
- {
- private:
- int ref;
- Framework::Text ip;
- unsigned short port;
- int cId;
- Network::Klient *senden;
- Network::Klient *empfangen;
- char *key;
- unsigned char keyLen;
- Framework::Critical cs;
- Framework::Text err;
- public:
- // Konstruktor
- SpielClient( int klientId, unsigned short port, char *ip, char *key, unsigned char keyLen );
- // Destruktor
- ~SpielClient();
- // verbindet sich mit dem zugewiesenen Karten Server
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool verbinde() override;
- // Betritt das Vorgeschlagene Spiel
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool spielErstelltAnnehmen() override;
- // Lehnt das Vorgeschlagene Spiel ab
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool spielErstelltAblehnen() override;
- // Wechselt zu einem bestimmten Team
- // team: Die Id des teams
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool spielErstelltTeamWechseln( int team ) override;
- // Bestätigt die Teamauswahl so dass das Spiel früher beginnen kann
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool spielErstelltTeamFertig() override;
- // sendet eine Chat Nachricht an die mitglieder des erstellten Spiels
- // nachricht: Die Nachricht
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool spielErstelltChatNachricht( char *nachricht ) override;
- // Teilt dem Server mit, dass der Client bereit ist das Spiel zu laden
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool bereitZumLaden() override;
- // Teilt dem Server mit, zu wie viel Prozent der Client das Spiel geladen hat
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool setLadenProzent( int prozent ) override;
- // Teilt dem Server mit, dass das Spiel fertig geladen wurde
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool bereitZumSpiel() override;
- // Sendet während des Spiels eine Nachricht an den Server
- // län: Die Länge der Nachricht
- // bytes: Ein Zeiger auf die Nachricht
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool spielNachricht( short län, char *bytes ) override;
- // Sendet während der Statistik eine Nachricht an den Server
- // län: Die Länge der Nachricht
- // bytes: Ein Zeiger auf die Nachricht
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool statistikNachricht( short län, char *bytes ) override;
- // Wartet auf eine Nachricht vom Spiel Server.
- // Gibt bei Erfolg 1 zurück, 0 sonnst
- // nachricht: Eine Referenz auf die Struktur, in der die Nachricht gespeichert werden soll
- bool getNextMessage( SpielServerNachricht &nachricht ) 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() 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
- char *getLetzterFehler() const override;
- // Erhöht den Reference Counter um 1 un gibt this zurück
- SpielServerClient *getThis() override;
- // 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
- SpielServerClient *release() override;
- };
- }
|