ClientSessionManagerF.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. //---------------------------------------------------------------------------
  2. #ifndef ClientSessionManagerFH
  3. #define ClientSessionManagerFH
  4. //---------------------------------------------------------------------------
  5. #include <map>
  6. #include "ITSLibF.h"
  7. #include "ClientSessionF.h"
  8. //---------------------------------------------------------------------------
  9. #define USE_POOL 1
  10. //---------------------------------------------------------------------------
  11. class TClientSessionManager
  12. {
  13. public:
  14. TClientSessionManager();
  15. ~TClientSessionManager();
  16. private:
  17. typedef std::map<SOCKET, TClientSession*> TClientSessionList;
  18. TItsMap<int, TClientSession*> FLists;
  19. TClientSessionList FClientSessionList;
  20. DWORD FLastTick;
  21. public:
  22. void CollectGarbageSessions();
  23. void CheckCommandTimeoutSessions();
  24. TClientSession* CreateClientSession(SOCKET ASock, SOCKADDR_IN* ASockAddr);
  25. TClientSession* FindClientSession(SOCKET ASock);
  26. void OnPeriodWork() ;
  27. void SendFlushAllClient();
  28. void Init(int APoolSize);
  29. void CloseAll();
  30. };
  31. //---------------------------------------------------------------------------
  32. extern PACKAGE TClientSessionManager *ClientSessionManager;
  33. //---------------------------------------------------------------------------
  34. #endif