📄 statemap.cpp
字号:
#include "StdAfx.h"
#include "StateMap.h"
CStateMap::CStateMap(void)
{
}
CStateMap::~CStateMap(void)
{
RemoveAll();
}
void CStateMap::RemoveAll()
{
for( T_MAP_STATE::iterator it = m_mapStates.begin(); it != m_mapStates.end(); ++it )
{
CStateObject* pStateObject = (*it).second;
if (pStateObject)
{
delete pStateObject;
}
}
m_mapStates.clear();
}
CStateObject* CStateMap::GetStart()
{
CStateObject* pStateObject = NULL;
if (!m_mapStates.empty())
{
m_Iterator = m_mapStates.begin();
pStateObject = (*m_Iterator).second;
if (!pStateObject)
{
CDoctrineLog::Instance().WriteLog(LOG_ERROR, "CStateMap", "GetStart", "pStateObject");
}
}
return pStateObject;
}
CStateObject* CStateMap::GetNext()
{
CStateObject* pStateObject = NULL;
++m_Iterator;
if (m_Iterator != m_mapStates.end())
{
pStateObject = (*m_Iterator).second;
if (!pStateObject)
{
CDoctrineLog::Instance().WriteLog(LOG_ERROR, "CStateMap", "GetNext", "pStateObject");
}
}
return pStateObject;
}
void CStateMap::Add(CStateObject* pStateObject)
{
if ( !pStateObject )
{
CDoctrineLog::Instance().WriteLog(LOG_WARNING, "CStateMap", "Add", "pStateObject");
return;
}
T_MAP_STATE::iterator it = m_mapStates.find(pStateObject->GetName());
if (m_mapStates.end() == it)
{
m_mapStates.insert(T_MAP_STATE::value_type(pStateObject->GetName(), pStateObject));
}
else
{
CDoctrineLog::Instance().WriteLog(LOG_WARNING, "CStateMap", "Add", "Already added a state with this name: " + pStateObject->GetName());
}
}
CStateObject* CStateMap::LookUp(string strName)
{
CStateObject* pStateObject = NULL;
T_MAP_STATE::iterator it = m_mapStates.find(strName);
if (it != m_mapStates.end())
{
pStateObject = (*it).second;
}
else
{
CDoctrineLog::Instance().WriteLog(LOG_WARNING, "CStateMap", "LookUp", "State name not mapped: " + strName);
}
if (!pStateObject)
{
CDoctrineLog::Instance().WriteLog(LOG_ERROR, "CStateMap", "LookUp", "pStateObject");
}
return pStateObject;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -