#pragma once #include "base/HGDef.h" #include "base/HGInc.h" #include "base/HGThread.h" #include "base/HGMsgPump.h" #include "Msg.h" #include class WebServer { public: WebServer(HGMsgPump msgPump); ~WebServer(); bool Open(HGUShort port); bool Close(); void Connect(const ConnectParam* param); void DisConnect(const DisConnectParam* param); void CloseDev(const CloseDevParam* param); void ScanFinish(const ScanFinishParam* param); void Command(const WSCmdParam* param); void Event(const WSEvtParam* param); private: #if defined(HG_CMP_MSC) void PostConnectMsg(const std::string &ip, uint16_t port, SOCKET sockConn); #else void PostConnectMsg(const std::string &ip, uint16_t port, int sockConn); #endif int GetUserIndex(HGUInt id); static void HGAPI ThreadFunc(HGThread thread, HGPointer param); private: HGMsgPump m_msgPump; HGUInt m_currUserId; #if defined(HG_CMP_MSC) SOCKET m_sockServer; #else int m_sockServer; #endif HGThread m_listenThread; std::vector m_vectorUser; };