#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(const char* ip, unsigned short port, int klientId, const 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(const 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. const 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. const 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 const char* getLetzterFehler() const override; }; }