OSDN Git Service

add dist
[rec10/rec10-git.git] / dist / trunk / b25-remote / CasServer.h
diff --git a/dist/trunk/b25-remote/CasServer.h b/dist/trunk/b25-remote/CasServer.h
new file mode 100755 (executable)
index 0000000..35d7732
--- /dev/null
@@ -0,0 +1,56 @@
+// CasServer.h: CCasServer \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X\r
+//\r
+//////////////////////////////////////////////////////////////////////\r
+\r
+#pragma once\r
+\r
+\r
+#include <map>\r
+#include "CasClient.h"\r
+#include "TsUtilClass.h"\r
+#include "SmartSock.h"\r
+\r
+\r
+using std::map;\r
+\r
+\r
+class CCasServer : protected CCasClient::ICasClientHandler\r
+{\r
+public:\r
+       class ICasServerHandler\r
+       {\r
+       public:\r
+               virtual void OnCasServerEvent(CCasServer *pCasServer, const WORD wEventID) = 0;\r
+       };\r
+\r
+       enum\r
+       {\r
+               CSEI_CONNECTED,         // \83N\83\89\83C\83A\83\93\83g\90Ú\91±\r
+               CSEI_DISCONNECTED,      // \83N\83\89\83C\83A\83\93\83g\90Ø\92f\r
+       };\r
+\r
+       CCasServer(void);\r
+       CCasServer(ICasServerHandler *pEventHandler);\r
+       ~CCasServer(void);\r
+\r
+       const BOOL OpenServer(const WORD wServerPort);\r
+       void CloseServer(void);\r
+       \r
+       const DWORD GetClientNum(void) const;\r
+\r
+protected:\r
+       virtual void OnCasClientEvent(CCasClient *pClient, const DWORD dwEventID, PVOID pParam);\r
+\r
+       void ServerThread(void);\r
+       static void* ServerThreadRaw(LPVOID pParam);\r
+\r
+       ICasServerHandler *m_pEventHandler;\r
+\r
+       CSmartSock m_pSocket;\r
+       pthread_t m_hServerThread;
+\r
+       typedef map<CCasClient *, CCasClient *> ClientList;\r
+       ClientList m_ClientList;\r
+       \r
+       CCriticalLock m_Lock;\r
+};\r