📄 stateobject.cpp
字号:
#include "stdafx.h"
#include "StateObject.h"
// Constructor for State
CStateObject::CStateObject(string strName)
{
m_strName = strName;
m_pEntity = NULL;
m_strNextStateName = "";
m_bIsFinalState = false;
}
// Constructor for Process
CStateObject::CStateObject(string strName, string strNextState)
{
m_strName = strName;
m_pEntity = NULL;
m_strNextStateName = strNextState;
m_bIsFinalState = false;
}
CStateObject::~CStateObject(void)
{
for( LIST_TRANSRULE::iterator it = m_listTransRules.begin(); it != m_listTransRules.end(); ++it )
{
CTransRule* pTransRule = *it;
delete pTransRule;
}
m_listTransRules.clear();
}
void CStateObject::Init(ENTITY_PTR* pEntity)
{
m_pEntity = pEntity;
}
string CStateObject::CheckTransition()
{
for( LIST_TRANSRULE::iterator it = m_listTransRules.begin(); it != m_listTransRules.end(); ++it )
{
CTransRule* pTransRule = *it;
if( pTransRule->Check() )
{
return pTransRule->GetTargetStateName();
}
}
// In the case of a Process, this will return the next state
return m_strNextStateName;
}
void CStateObject::AddPredicateHandlerFcn(string strHandlerName, void* pfcnHandler)
{
for( LIST_TRANSRULE::iterator it = m_listTransRules.begin(); it != m_listTransRules.end(); ++it )
{
CTransRule* pTransRule = *it;
pTransRule->AddPredicateHandlerFcn(strHandlerName, pfcnHandler);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -