RegisterServer.h 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. #pragma once
  2. #include "../Include/KSGNetwork.h"
  3. #include <Critical.h>
  4. namespace KSGClient
  5. {
  6. // Wird benutzt, um Accounts zu erstellen zu ändern oder zu löschen
  7. class RegisterClient : public RegisterServerClient
  8. {
  9. private:
  10. int ref;
  11. Framework::Text ip;
  12. unsigned short port;
  13. int cId;
  14. Network::Klient *k;
  15. char *key;
  16. unsigned char keyLen;
  17. Framework::Critical cs;
  18. Framework::Text err;
  19. public:
  20. // Konstruktor
  21. RegisterClient( int klientId, unsigned short port, char *ip, char *key, unsigned char keyLen );
  22. // Destruktor
  23. ~RegisterClient();
  24. // verbindet ich mit dem Register Server
  25. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  26. bool verbinde() override;
  27. // Sendet eine Anfrage auf Erstellung eines neuen Accounts. Ein neuer Account kann erst verwendet werden, wenn ein Link in der Bestätigungsemail angeklickt wurde.
  28. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  29. // name: Der Login Name des Accounts
  30. // pass: Das Login Passwort des Accounts
  31. // geheim: Das Geheimnis des Accounts
  32. // eMail: Die EMail Adresse an die die bestätigungs EMail gesendet werden soll
  33. // jahr: Das Jahr des Geburtsdatums
  34. // monat: Der Monat des Geburtstages
  35. // tag: Der Tag des Geburtstages
  36. bool accountErstellen( const char *name, const char *pass, const char *geheim, const char *eMail, unsigned short jahr, char monat, char tag ) override;
  37. // Sendet eine Anfrage auf Löschung eines neuen Accounts. Ein neuer Account kann erst gelöscht werden, wenn ein Link in der Bestätigungsemail angeklickt wurde.
  38. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  39. // name: Der Login Name des Accounts
  40. // pass: Das Login Passwort des Accounts
  41. // geheim: Das Geheimnis des Accounts
  42. bool accountLöschen( const char *name, const char *pass, const char *geheim ) override;
  43. // Ändert das Passwort eines Accounts
  44. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  45. // name: Der Login Name des Accounts
  46. // pass: Das Login Passwort des Accounts
  47. // geheim: Das Geheimnis des Accounts
  48. // nPass: Das neue Passwort des Accounts
  49. bool passwortÄndern( const char *name, const char *pass, const char *geheim, const char *nPass ) override;
  50. // Ändert die EMail Adresse eines Accounts
  51. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  52. // name: Der Login Name des Accounts
  53. // pass: Das Login Passwort des Accounts
  54. // geheim: Das Geheimnis des Accounts
  55. // nEMail: Die neue EMail Adresse
  56. bool eMailÄndern( const char *name, const char *pass, const char *geheim, const char *nEMail ) override;
  57. // Ändert das Geheimnis eines Accounts
  58. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  59. // name: Der Login Name des Accounts
  60. // pass: Das Login Passwort des Accounts
  61. // geheim: Das Geheimnis des Accounts
  62. // nGeheim: Das neue Geheimnis
  63. bool geheimnisÄndern( const char *name, const char *pass, const char *geheim, const char *nGeheim ) override;
  64. // Sendet eine Anfrage auf Name Vergessen. Der Name wird an die angegebene EMail Adresse gesendet
  65. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  66. // pass: Das Login Passwort des Accounts
  67. // geheim: Das Geheimnis des Accounts
  68. bool nameVergessen( const char *pass, const char *geheim ) override;
  69. // Sendet eine Anfrage auf Passwort Vergessen. Es wird ein Link an die angegebene Email Adresse gesendet, über den ein neues Passwort vergeben werden kann
  70. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  71. // name: Der Login Name des Accounts
  72. // geheim: Das Geheimnis des Accounts
  73. bool passwortVergessen( const char *name, const char *geheim ) override;
  74. // Sendet eine Anfrage auf Geheimnis Vergessen. Das Geheimnis wird an die angegebene EMail Adresse gesendet
  75. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  76. // name: Der Login Name des Accounts
  77. // pass: Das Login Passwort des Accounts
  78. bool geheimnisVergessen( const char *name, const char *pass ) override;
  79. // Sendet eine Anfrage auf EMail Vergessen. Die EMail Adresse wird direkt vom Server zurückgegeben
  80. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  81. // name: Der Login Name des Accounts
  82. // pass: Das Login Passwort des Accounts
  83. // geheim: Das Geheimnis des Accounts
  84. // eMail: Ein Zeiger auf eine Zeichenkette. Diese wird bei einem Erfolgreichen Aufruf auf die EMail Adresse gesetzt und muss manuell mit delete[] gelöscht werden
  85. bool eMailVergessen( const char *name, const char *pass, const char *geheim, char **eMail ) override;
  86. // Erhält die Verbindung aufrecht
  87. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  88. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  89. bool keepAlive() override;
  90. // Trennt die Verbindung zum Server
  91. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  92. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  93. bool trenne( bool abmelden ) override;
  94. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  95. bool istVerbunden() const override;
  96. // gibt den Letzten Fehlertext zuück
  97. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  98. char *getLetzterFehler() const override;
  99. // Erhöht den Reference Counter um 1 un gibt this zurück
  100. RegisterServerClient *getThis() override;
  101. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  102. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  103. RegisterServerClient *release() override;
  104. };
  105. }