PatchServer.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. #ifndef PatchServer_H
  2. #define PatchServer_H
  3. #include <Server.h>
  4. #include <Thread.h>
  5. #include <Datei.h>
  6. #include <Text.h>
  7. #include <InitDatei.h>
  8. #include "Datenbank.h"
  9. using namespace Framework;
  10. using namespace Network;
  11. class PSKlient;
  12. class PatchServer : public Thread
  13. {
  14. private:
  15. Server *server;
  16. SSLServer *aServer;
  17. InitDatei *ini;
  18. PSDatenbank *db;
  19. CRITICAL_SECTION cs;
  20. RCArray< PSKlient > *klients;
  21. Text *fehler;
  22. int klientAnzahl;
  23. int id;
  24. bool nichtPausiert;
  25. int empfangen;
  26. int gesendet;
  27. int updateAnzahl;
  28. Array< int > *updateGruppe;
  29. bool end;
  30. public:
  31. // Konstruktor
  32. PatchServer( InitDatei *zIni );
  33. // Destruktor
  34. virtual ~PatchServer();
  35. // nicht constant
  36. void runn();
  37. void thread();
  38. void close();
  39. bool serverStarten();
  40. bool serverPause();
  41. bool serverFortsetzen();
  42. bool serverBeenden();
  43. bool setMaxKlients( int mc );
  44. bool absturzKlient( int klientId );
  45. bool removeKlient( PSKlient *zKlient );
  46. void addGesendet( int bytes );
  47. void addEmpfangen( int bytes );
  48. bool beginnUpdate( int gruppe );
  49. void endUpdate( int gruppe );
  50. void updateAbbruch( int gruppe );
  51. // conatant
  52. bool istAn() const;
  53. Server *zServer() const;
  54. PSDatenbank *zDB() const;
  55. bool hatClients() const;
  56. int getId() const;
  57. char *getLetzterFehler() const;
  58. bool proveVersion( int gruppe ) const;
  59. bool proveVersion() const;
  60. };
  61. class PSAKlient : public Thread
  62. {
  63. private:
  64. SSLSKlient *klient;
  65. Text *name;
  66. Text *passwort;
  67. int adminId;
  68. PatchServer *ps;
  69. int updateGruppe;
  70. Text *gruppeN;
  71. InitDatei *ini;
  72. public:
  73. // Konstruktor
  74. PSAKlient( SSLSKlient *klient, PatchServer *ps, InitDatei *ini );
  75. // Destruktor
  76. virtual ~PSAKlient();
  77. // nicht constant
  78. void thread();
  79. void errorZuKlient( const char *nachricht ) const; // sendet eine Fehlernachricht zum AKlient
  80. };
  81. class PSKlient : public Thread
  82. {
  83. private:
  84. SKlient *klient;
  85. unsigned int klientNummer;
  86. char system;
  87. PatchServer *ps;
  88. InitDatei *ini;
  89. bool encrypted;
  90. public:
  91. // Konstruktor
  92. PSKlient( SKlient *klient, PatchServer *ps, InitDatei *ini );
  93. // Destruktor
  94. virtual ~PSKlient();
  95. // nicht constant
  96. void absturz();
  97. void thread();
  98. // constant
  99. bool errorZuKlient( const char *nachricht ) const; // sendet eine Fehlernachricht zum Klient
  100. int getKlientNummer() const; // gibt die KlientId zurück
  101. };
  102. #endif