72 lines
1.3 KiB
C++
72 lines
1.3 KiB
C++
#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();
|
|
}
|