FairMQ/fairmq/FairMQStateMachine.h
2013-10-25 12:42:48 +00:00

42 lines
773 B
C++

/*
* FairMQStateMachine.h
*
* Created on: Oct 25, 2012
* Author: dklein
*/
#ifndef FAIRMQSTATEMACHINE_H_
#define FAIRMQSTATEMACHINE_H_
#include <boost/thread.hpp>
class FairMQStateMachine
{
public:
enum State {
IDLE, INITIALIZING, SETTINGOUTPUT, SETTINGINPUT, WAITING, RUNNING
};
enum Event {
INIT, SETOUTPUT, SETINPUT, PAUSE, RUN, STOP, END
};
FairMQStateMachine();
void ChangeState(int event);
virtual ~FairMQStateMachine();
protected:
State fState;
Event fEvent;
virtual void Init();
virtual void Run();
virtual void Pause();
virtual void Shutdown();
virtual void InitOutput();
virtual void InitInput();
boost::thread running_state;
};
#endif /* FAIRMQSTATEMACHINE_H_ */