Files
FsmEval/AState.hpp
T
jens 251ac211bd - AState and AStateMachine have template stateId
- AStateMachine has linked list for states
- AStateMachine::reset() resets to first added state


git-svn-id: http://moon:8086/svn/software/trunk/projects/FsmEval@134 b431acfa-c32f-4a4a-93f1-934dc6c82436
2015-01-24 11:49:40 +00:00

58 lines
797 B
C++

/*
* File: AState.hpp
* Author: jens
*
* Created on 21. Januar 2015, 05:12
*/
#ifndef ASTATE_HPP
#define ASTATE_HPP
#include "IStateMachine.hpp"
template <class IdType>
class AState
{
public:
AState<IdType> *m_pNext;
AState(IdType id)
: m_pNext(0)
, m_pStateMachine(0)
, m_id(id)
{
}
virtual ~AState() {}
IdType id()
{
return m_id;
}
void registerStateMachine(IStateMachine *pStateMachine)
{
m_pStateMachine = pStateMachine;
}
virtual void onTransition()
{
printf("%s\n", __PRETTY_FUNCTION__);
}
protected:
void setState(IdType state)
{
if(m_pStateMachine)
{
m_pStateMachine->setState(state);
}
}
private:
IStateMachine *m_pStateMachine;
IdType m_id;
};
#endif /* ASTATE_HPP */