FairMQ  1.2.0
C++ Message Passing Framework
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
fair::mq::fsm::FairMQFSM Struct Reference
Inheritance diagram for fair::mq::fsm::FairMQFSM:
Inheritance graph
[legend]
Collaboration diagram for fair::mq::fsm::FairMQFSM:
Collaboration graph
[legend]

Classes

struct  DEVICE_READY_FSM
 
struct  DeviceReadyFct
 
struct  ERROR_FSM
 
struct  ErrorFoundFct
 
struct  EXITING_FSM
 
struct  ExitingFct
 
struct  IDLE_FSM
 
struct  IdleFct
 
struct  InitDeviceFct
 
struct  INITIALIZING_DEVICE_FSM
 
struct  INITIALIZING_TASK_FSM
 
struct  InitTaskFct
 
struct  InternalStopFct
 
struct  OK_FSM
 
struct  PAUSED_FSM
 
struct  PauseFct
 
struct  READY_FSM
 
struct  ReadyFct
 
struct  ResetDeviceFct
 
struct  ResetTaskFct
 
struct  RESETTING_DEVICE_FSM
 
struct  RESETTING_TASK_FSM
 
struct  ResumeFct
 
struct  RunFct
 
struct  RUNNING_FSM
 
struct  StopFct
 
struct  transition_table
 

Public Types

enum  State {
  OK, Error, IDLE, INITIALIZING_DEVICE,
  DEVICE_READY, INITIALIZING_TASK, READY, RUNNING,
  PAUSED, RESETTING_TASK, RESETTING_DEVICE, EXITING
}
 
using initial_state = boost::mpl::vector< IDLE_FSM, OK_FSM >
 

Public Member Functions

template<typename Event , typename FSM >
void on_entry (Event const &, FSM &fsm)
 
template<typename Event , typename FSM >
void on_exit (Event const &, FSM &)
 
template<typename FSM , typename Event >
void no_transition (Event const &e, FSM &, int state)
 
std::string GetCurrentStateName () const
 
int GetCurrentState () const
 
bool CheckCurrentState (int state) const
 
bool CheckCurrentState (std::string state) const
 
virtual void InitWrapper ()
 
virtual void InitTaskWrapper ()
 
virtual void RunWrapper ()
 
virtual void PauseWrapper ()
 
virtual void ResetWrapper ()
 
virtual void ResetTaskWrapper ()
 
virtual void Exit ()
 
virtual void Unblock ()
 
bool Terminated ()
 

Static Public Member Functions

static std::string GetStateName (const int state)
 

Protected Member Functions

void CallStateChangeCallbacks (const State state) const
 

Protected Attributes

std::atomic< State > fState
 
std::mutex fChangeStateMutex
 
std::function< void(void)> fWork
 
std::condition_variable fWorkAvailableCondition
 
std::condition_variable fWorkDoneCondition
 
std::mutex fWorkMutex
 
bool fWorkerTerminated
 
bool fWorkActive
 
bool fWorkAvailable
 
boost::signals2::signal< void(const State)> fStateChangeSignal
 
std::unordered_map< std::string, boost::signals2::connection > fStateChangeSignalsMap
 
std::atomic< bool > fTerminationRequested
 

The documentation for this struct was generated from the following file: