DragonNest/Server/ServiceManager/GsmCmdProcess.cpp
Cussrro 47f7895977 Revert "修复编码问题"
This reverts commit 9e69c01767.
2024-12-21 10:04:04 +08:00

65 lines
No EOL
1.1 KiB
C++

#include "Stdafx.h"
#include "Log.h"
#include "GsmCmdProcess.h"
CGsmCmdProcess::CGsmCmdProcess()
{
}
CGsmCmdProcess::~CGsmCmdProcess()
{
}
CGsmCmdProcess * CGsmCmdProcess::GetInstance()
{
static CGsmCmdProcess s;
return &s;
}
void CGsmCmdProcess::AddCmdProcess(const char * pCmd, const char * pRespectCmd, void * pf)
{
if (pCmd == NULL || pRespectCmd == NULL || pf == NULL)
return;
if (IsExistCmd(pCmd))
{
return;
}
TGSMCmd cmd;
cmd.strCmd = pCmd;
cmd.strRespectCmd = pRespectCmd;
cmd.nCmdTick = timeGetTime();
cmd.pfCall = (GSM_PROC)pf;
ScopeLock <CSyncLock> lock(m_Sync);
m_CmdList.push_back(cmd);
}
void CGsmCmdProcess::ParseCmdProcess(const char * pCmd)
{
ScopeLock <CSyncLock> lock(m_Sync);
for (std::list <TGSMCmd>::iterator ii = m_CmdList.begin(); ii != m_CmdList.end(); ii++)
{
if ((*ii).strRespectCmd == pCmd)
{
if ((*ii).pfCall)
(*ii).pfCall();
return;
}
}
}
bool CGsmCmdProcess::IsExistCmd(const char * pCmd)
{
ScopeLock <CSyncLock> lock(m_Sync);
for (std::list <TGSMCmd>::iterator ii = m_CmdList.begin(); ii != m_CmdList.end(); ii++)
{
if ((*ii).strCmd == pCmd)
return true;
}
return false;
}