mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-13 00:31:14 +00:00
40 lines
777 B
C++
40 lines
777 B
C++
/**
|
|
* FairMQStateMachine.h
|
|
*
|
|
* @since 2012-10-25
|
|
* @author D. Klein, A. Rybalchenko
|
|
*/
|
|
|
|
#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_ */
|