
#include "AgsmSessionMgr.h"
// class AgsmSessionMgr Implemetation
AgsmSessionMgr::AgsmSessionMgr()
{
InitializeCriticalSection(&m_csSTQ);
InitializeCriticalSection(&m_csNTS);
InitializeCriticalSection(&m_csATQ);
}
AgsmSessionMgr::~AgsmSessionMgr()
{
DeleteCriticalSection(&m_csSTQ);
DeleteCriticalSection(&m_csNTS);
DeleteCriticalSection(&m_csATQ);
}
void AgsmSessionMgr::NewSessionToQi(unsigned session, AgsmLoginQueueInfo* lqi)
{
Lock lock(m_csSTQ);
m_stq[session] = lqi;
}
void AgsmSessionMgr::NewNidToSession(unsigned nid, CSessionPtr* csp)
{
Lock lock(m_csNTS);
m_nts[nid] = csp;
}
void AgsmSessionMgr::NewAccountToQi(char* account, AgsmLoginQueueInfo* lqi)
{
Lock lock(m_csATQ);
m_atq[account] = lqi;
}
// nid肺 CSessionPtr阑 掘磊
CSessionPtr* AgsmSessionMgr::GetSessionByNid(unsigned nid)
{
Lock lock(m_csNTS);
NidToSession::iterator iter = m_nts.find(nid);
return (iter == m_nts.end()) ? 0 : iter->second;
}
// sid肺 QueueInfo*甫 掘磊