76 lines
1.3 KiB
C++
76 lines
1.3 KiB
C++
#include "WebUser.h"
|
|
#include "WebServer.h"
|
|
#include "base/HGInfo.h"
|
|
|
|
#if defined(HG_CMP_MSC)
|
|
WebUser::WebUser(WebServer* server, HGUInt id, const std::string& ip, uint16_t port, SOCKET sockConn)
|
|
#else
|
|
WebUser::WebUser(WebServer* server, HGUInt id, const std::string& ip, uint16_t port, int sockConn)
|
|
#endif
|
|
{
|
|
m_server = server;
|
|
HGBase_CreateLock(&m_cs);
|
|
m_id = id;
|
|
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;
|
|
m_ip.clear();
|
|
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;
|
|
}
|
|
|
|
void WebUser::PostDisConnectMsg()
|
|
{
|
|
DisConnectParam* param = new DisConnectParam;
|
|
param->svr = m_server;
|
|
param->usrId = m_id;
|
|
|
|
HGMsg msg;
|
|
msg.id = MSGID_DISCONNECT;
|
|
msg.data = param;
|
|
if (HGBASE_ERR_OK != HGBase_PostPumpMessage(m_server->GetMsgPump(), &msg))
|
|
{
|
|
delete param;
|
|
}
|
|
}
|
|
|
|
void WebUser::ThreadFunc()
|
|
{
|
|
HGBase_WriteInfo(HGBASE_INFOTYPE_DESC, "WebUser::ThreadFunc");
|
|
}
|
|
|
|
void WebUser::ThreadFunc(HGThread thread, HGPointer param)
|
|
{
|
|
WebUser* p = (WebUser*)param;
|
|
p->ThreadFunc();
|
|
}
|