#pragma once #include "../Include/KSGNetwork.h" #include namespace KSGClient { class MainClient : public MainServerClient { 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 MainClient(); MainClient( char *ip, unsigned short port, int klientId, char *key, unsigned char keyLen ); // Destruktor ~MainClient(); // 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 bool registerSSL( char *ip, unsigned short port ) override; // Verbindet den Client mit dem Server // Wird automatisch aufgerufen, falls eine Methode aufgerufen wird, die eine Verbindung erfordert. In diesem Fall wird die Verbindung auch automatisch wieder getrennt. bool connect() override; // Erzeugt einen Erhaltungs Server Client // Gibt bei misserfolg 0 zurück ErhaltungServerClient *createErhaltungServerClient() override; // Erzeugt einen Patch Server Client // Gibt bei misserfolg 0 zurück PatchServerClient *createPatchServerClient() override; // Erzeugt einen News Server Client // Gibt bei misserfolg 0 zurück NewsServerClient *createNewsServerClient() override; // Erzeugt einen Register Server Client // Gibt bei misserfolg 0 zurück RegisterServerClient *createRegisterServerClient() override; // Erzeugt einen Login Server Client // Gibt bei misserfolg 0 zurück LoginServerClient *createLoginServerClient() override; // Erzeugt einen Information Server Client // Gibt bei misserfolg 0 zurück InformationServerClient *createInformationServerClient() override; // Erzeugt einen Chat Server Client // Gibt bei misserfolg 0 zurück ChatServerClient *createChatServerClient() override; // Erzeugt einen Shop Server Client // Gibt bei misserfolg 0 zurück ShopServerClient *createShopServerClient() override; // Erzeugt einen Anmeldung Server Client // Gibt bei misserfolg 0 zurück AnmeldungServerClient *createAnmeldungServerClient() override; // Erzeugt einen Minigame Server Client // Gibt bei misserfolg 0 zurück MinigameServerClient *createMinigameServerClient() override; // Trennt die Verbindung zum Server. Muss nur aufgerufen werden, wenn vorher manuell connect aufgerufen wurde bool disconnect() override; // Meldet den Client vom Server ab. Alle zuvor von diesem Client erzeugten Clients werden durch diesen Vorgang unbrauchbar bool unregister() override; // Gibt die dem Client zugewiesene Id zurück. // sollte erst nach dem Aufruf von registerSSL verwendet werden. int getClientId() const override; // Gibt die Ip Adresse des dem Client zugewiesenen Main Servers zurück. // sollte erst nach dem Aufruf von registerSSL verwendet werden. char *getServerIp() const override; // Gibt den Port des dem Client zugewiesenen Main Servers zurück. // sollte erst nach dem Aufruf von registerSSL verwendet werden. unsigned short getServerPort() const override; // Gibt den Zeiger auf den Schlüssel zurück // sollte erst nach dem Aufruf von registerSSL verwendet werden. char *zKey() const override; // Gibt die Länge des Schlüssels zurück // sollte erst nach dem Aufruf von registerSSL verwendet werden. unsigned char getKeyLen() const override; // gibt den Letzten Fehlertext zuück // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist char *getLetzterFehler() const override; }; }