#include "WebUser.h" #include "WebServer.h" #include "MsgLoop.h" #include "../../base/HGInfo.h" #if defined(HG_CMP_MSC) WebUser::WebUser(class WebServer* server, HGUInt id, const char* ip, uint16_t port, SOCKET sockConn) #else WebUser::WebUser(class WebServer* server, HGUInt id, const char* ip, uint16_t port, int sockConn) #endif { m_server = server; HGBase_CreateLock(&m_cs); m_id = id; strcpy(m_ip, ip); m_port = port; m_sockConn = sockConn; m_thread = NULL; } WebUser::~WebUser() { #if defined(HG_CMP_MSC) closesocket(m_sockConn); m_sockConn = INVALID_SOCKET; #else close(m_sockConn); m_sockConn = -1; #endif HGBase_CloseThread(m_thread); m_thread = NULL; m_port = 0; memset(m_ip, 0, sizeof(m_ip)); m_id = 0; HGBase_DestroyLock(m_cs); m_server = NULL; } void WebUser::Open() { HGBase_OpenThread(ThreadFunc, this, &m_thread); assert(NULL != m_thread); } HGUInt WebUser::GetId() { return m_id; } class MsgLoop* WebUser::GetLoop() { return m_server->GetLoop(); } class Manager* WebUser::GetManager() { return m_server->GetLoop()->GetManager(); } void WebUser::ThreadFunc() { HGBase_WriteInfo(HGBASE_INFOTYPE_DESC, "WebUser::ThreadFunc"); } void WebUser::ThreadFunc(HGThread thread, HGPointer param) { WebUser* p = (WebUser*)param; p->ThreadFunc(); }