ChatClient.h 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. #pragma once
  2. #include "../Include/KSGNetwork.h"
  3. #include <Critical.h>
  4. namespace KSGClient
  5. {
  6. // 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 ...)
  7. // Kann nur von eingeloggten Clients verwendet werden
  8. class ChatClient : public ChatServerClient
  9. {
  10. private:
  11. Framework::Text ip;
  12. unsigned short port;
  13. int cId;
  14. Network::Klient* senden;
  15. Network::Klient* empfangen;
  16. char* key;
  17. unsigned char keyLen;
  18. Framework::Critical cs;
  19. Framework::Text err;
  20. public:
  21. // Konstruktor
  22. ChatClient(int klientId, unsigned short port, const char* ip, const char* key, unsigned char keyLen);
  23. // Destruktor
  24. ~ChatClient();
  25. // verbindet sich mit dem zugewiesenen Chat Server
  26. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  27. bool verbinde() override;
  28. // sendet eine Chat Nachricht zu einem Account
  29. // zuAccount: Id des Ziel Accounts
  30. // nachricht: Die Nachricht
  31. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  32. bool chatNachricht(int zuAccount, const char* nachricht) override;
  33. // ändert den angezeigten Account Namen
  34. // name: der neue Name
  35. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  36. bool accountNameÄndern(const char* name) override;
  37. // beendet die Freundschaft mit einem Account
  38. // accountId: Die Id des Accounts
  39. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  40. bool freundschaftBeenden(int accountId) override;
  41. // sendet eine Freundesanfragezu einem Account
  42. // accountId: Die Id des Accounts
  43. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  44. bool freundesAnfrage(int accountId) override;
  45. // beantwortet eine Freundesanfrage
  46. // accountId: Die Id des Accounts
  47. // ja: 1:=annehmen,0:=ablehnen
  48. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  49. bool freundesAnfrageBeantworten(int accountId, bool ja) override;
  50. // erstellt ein chatroom
  51. // name: Der Name des Chatrooms
  52. // Gibt bei erfolg die Id des Chatrooms zurück, 0 sonst
  53. int chatroomErstellen(const char* name) override;
  54. // Sendet eine Einladung zum Chatroom
  55. // accountId: Die Id des Accounts der eingeladen werden soll
  56. // chatroomId: Die Id des Chatrooms
  57. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  58. bool chatroomEinladung(int accountId, int chatroomId) override;
  59. // Einladung zum Chatroom wird abgelehnt
  60. // accountId: Die Id des Accounts
  61. // chatroomId: Die Id des Chatrooms
  62. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  63. bool chatroomEinladungAblehnen(int accountId, int chatroomId) override;
  64. // betritt ein chatroom
  65. // chatroomId: Die Id des Chatrooms
  66. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  67. bool chatroomBetreten(int chatroomId) override;
  68. // chatroom Nachricht senden
  69. // chatroomId: Die Id des Chatrooms
  70. // nachricht: Die Nachricht die gesendet werden soll
  71. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  72. bool chatroomNachricht(int chatroomId, const char* nachricht) override;
  73. // verlässt chatroom
  74. // chatroomId: Die Id des Chatrooms
  75. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  76. bool chatroomVerlassen(int chatroomId) override;
  77. // kickt Account aus Chatroom (nur wenn als admin des Chatrooms eingeloggt)
  78. // chatroomId: Die Id des Chatrooms
  79. // accountId: Die Id des Accounts
  80. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  81. bool chatroomKick(int chatroomId, int accountId) override;
  82. // fragt nach allen freunden
  83. // Die Liste der Freunde kann über getNextMessage empfangen werden
  84. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  85. bool freundesListeAnfragen() override;
  86. // fragt nach allen chatnachrichten, die gesendet wurden, während der Account in den der Client eingeloggt ist, offline war
  87. // Die einzelnen Nachrichten können über getNextMessage empfangen werden
  88. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  89. bool chatNachrichtAnfrage() override;
  90. // Erhält die Verbindung aufrecht
  91. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  92. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  93. bool keepAlive() override;
  94. // Trennt die Verbindung zum Server
  95. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  96. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  97. bool trenne(bool abmelden) override;
  98. // Wartet auf eine Nachricht vom Chatserver.
  99. // Gibt bei Erfolg 1 zurück, 0 sonnst
  100. // nachricht: Eine Referenz auf die Struktur, in der die Nachricht gespeichert werden soll
  101. bool getNextMessage(ChatServerNachricht& nachricht) override;
  102. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  103. bool istVerbunden() const override;
  104. // gibt den Letzten Fehlertext zuück
  105. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  106. const char* getLetzterFehler() const override;
  107. };
  108. }