123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- #pragma once
- #include "../Include/KSGNetwork.h"
- #include <Critical.h>
- namespace KSGClient
- {
- // Wird verwendet um Chat nachrichten zu senden oder zu empfangen. Das Serversystem sendet außerdem einiege Mitteilungen über den Chat (z.B. Gefundene Spiele, Gruppeneinladungen ...)
- // Kann nur von eingeloggten Clients verwendet werden
- class ChatClient : public ChatServerClient
- {
- private:
- 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
- ChatClient(int klientId, unsigned short port, const char* ip, const char* key, unsigned char keyLen);
- // Destruktor
- ~ChatClient();
- // verbindet sich mit dem zugewiesenen Chat Server
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool verbinde() override;
- // sendet eine Chat Nachricht zu einem Account
- // zuAccount: Id des Ziel Accounts
- // nachricht: Die Nachricht
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool chatNachricht(int zuAccount, const char* nachricht) override;
- // ändert den angezeigten Account Namen
- // name: der neue Name
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool accountNameÄndern(const char* name) override;
- // beendet die Freundschaft mit einem Account
- // accountId: Die Id des Accounts
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool freundschaftBeenden(int accountId) override;
- // sendet eine Freundesanfragezu einem Account
- // accountId: Die Id des Accounts
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool freundesAnfrage(int accountId) override;
- // beantwortet eine Freundesanfrage
- // accountId: Die Id des Accounts
- // ja: 1:=annehmen,0:=ablehnen
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool freundesAnfrageBeantworten(int accountId, bool ja) override;
- // erstellt ein chatroom
- // name: Der Name des Chatrooms
- // Gibt bei erfolg die Id des Chatrooms zurück, 0 sonst
- int chatroomErstellen(const char* name) override;
- // Sendet eine Einladung zum Chatroom
- // accountId: Die Id des Accounts der eingeladen werden soll
- // chatroomId: Die Id des Chatrooms
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool chatroomEinladung(int accountId, int chatroomId) override;
- // Einladung zum Chatroom wird abgelehnt
- // accountId: Die Id des Accounts
- // chatroomId: Die Id des Chatrooms
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool chatroomEinladungAblehnen(int accountId, int chatroomId) override;
- // betritt ein chatroom
- // chatroomId: Die Id des Chatrooms
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool chatroomBetreten(int chatroomId) override;
- // chatroom Nachricht senden
- // chatroomId: Die Id des Chatrooms
- // nachricht: Die Nachricht die gesendet werden soll
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool chatroomNachricht(int chatroomId, const char* nachricht) override;
- // verlässt chatroom
- // chatroomId: Die Id des Chatrooms
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool chatroomVerlassen(int chatroomId) override;
- // kickt Account aus Chatroom (nur wenn als admin des Chatrooms eingeloggt)
- // chatroomId: Die Id des Chatrooms
- // accountId: Die Id des Accounts
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool chatroomKick(int chatroomId, int accountId) override;
- // fragt nach allen freunden
- // Die Liste der Freunde kann über getNextMessage empfangen werden
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool freundesListeAnfragen() override;
- // fragt nach allen chatnachrichten, die gesendet wurden, während der Account in den der Client eingeloggt ist, offline war
- // Die einzelnen Nachrichten können über getNextMessage empfangen werden
- // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
- bool chatNachrichtAnfrage() 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;
- // Wartet auf eine Nachricht vom Chatserver.
- // Gibt bei Erfolg 1 zurück, 0 sonnst
- // nachricht: Eine Referenz auf die Struktur, in der die Nachricht gespeichert werden soll
- bool getNextMessage(ChatServerNachricht& nachricht) 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
- const char* getLetzterFehler() const override;
- };
- }
|