84 lines
1.5 KiB
C++
84 lines
1.5 KiB
C++
|
#include "WebUser.h"
|
|||
|
#include "WebServer.h"
|
|||
|
#include "base/HGInfo.h"
|
|||
|
|
|||
|
namespace ver_1
|
|||
|
{
|
|||
|
#if defined(HG_CMP_MSC)
|
|||
|
WebUser::WebUser(WebServer* server, HGUInt id, const char* ip, uint16_t port, SOCKET sockConn)
|
|||
|
#else
|
|||
|
WebUser::WebUser(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;
|
|||
|
}
|
|||
|
|
|||
|
Manager* WebUser::GetManager()
|
|||
|
{
|
|||
|
return m_server->GetManager();
|
|||
|
}
|
|||
|
|
|||
|
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();
|
|||
|
}
|
|||
|
}
|