#pragma once #include "../include/KSGNetwork.h" #include namespace KSGClient { // Wird verwendet um sich einzuloggen oder auszuloggen class LoginClient : public LoginServerClient { private: Framework::Text ip; unsigned short port; int cId; Network::Klient* k; char* key; unsigned char keyLen; Framework::Critical cs; Framework::Text err; int accountId; public: // Konstruktor LoginClient(int klientId, unsigned short port, const char* ip, const char* key, unsigned char keyLen); // Destruktor ~LoginClient(); // verbindet sich mit dem zugewiesenen Login Server // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst bool verbinde() override; // Der Client wird beim Serversystem in einen Account eingeloggt // Gibt bei Erfolg 1 zurück, 2 falls en anderer Client in dem Account eingeloggt ist, 0 sonnst // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden int login(const char* name, const char* pass) override; // Diese Funktion wird in der Zukunft mal implementiert werden. Mit dem Geheimnis des Accounts können so andere Clients, welche bereits in dem Account eingeloggt werden rausgeschmissen werden. bool kick(const char* name, const char* pass, const char* geheim) override; // logt den Account aus // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst // sollte erst aufgerufen werden, nachdem ein erfolgreicher Aufruf von login erfolg ist bool logout() 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 die Id des Accounts zurück, in den sich der Client eingeloggt hat. // sollte erst aufgerufen werden, nachdem ein erfolgreicher Aufruf von login erfolg ist int getAccountId() const override; // gibt den Letzten Fehlertext zuück // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist const char* getLetzterFehler() const override; }; }