CHSM  4.4.1
Classes | Macros | Functions
chsm.h File Reference

Provides classes for implementing the run-time of the Concurrent Hierarchical State Machine Language System for C++. More...

#include <list>
#include <pthread.h>

Go to the source code of this file.

Classes

class  CHSM::cluster
 A cluster is-a CHSM::parent that can have at most one child-state active at any given time. More...
 
class  CHSM::parent::const_iterator
 This is an iterator in "STL style" to iterate over the child states of a parent state. More...
 
class  CHSM::machine::const_iterator
 This is an iterator in "STL style" to iterate over the (direct child) states a machine has. More...
 
class  CHSM::event
 The occurrence of an event ("broadcast") is that which causes transitions in a machine. More...
 
class  CHSM::parent::iterator
 This is an iterator in "STL style" to iterate over the child states of a parent state. More...
 
class  CHSM::machine
 A machine contains an entire Concurrent, Hierarchical, Finite State machine. More...
 
class  CHSM::parent
 A parent is-an abstract state that has child states. More...
 
class  CHSM::set
 A set is-a CHSM::parent that has either all or no child-states active. More...
 
class  CHSM::state
 A state is the simplest kind of state in a machine: it has no child states. More...
 
struct  CHSM::transition
 A transition is a simple struct containing information for a transition from one state to another in a machine. More...
 

Macros

#define CHSM_CLUSTER_ARGS
 Defines the constructor arguments for the CHSM::cluster class. More...
 
#define CHSM_CLUSTER_INIT
 Defines the base-class constructor argument mem-initializers for the CHSM::cluster class. More...
 
#define CHSM_EVENT_ARGS
 Defines the constructor arguments for the CHSM::event class. More...
 
#define CHSM_EVENT_INIT
 Defines the base-class constructor argument mem-initializers for the CHSM::event class. More...
 
#define CHSM_MACHINE_ARGS
 Defines the constructor arguments for the CHSM::machine class. More...
 
#define CHSM_MACHINE_INIT
 Defines the base-class constructor argument mem-initializers for the CHSM::machine class. More...
 
#define CHSM_NS   Concurrent_Hierarchical_State_Machine
 Define the long CHSM namespace name. More...
 
#define CHSM_NS_ALIAS   CHSM
 If, for whatever reason, you don't want the long namespace name aliased to a shorter one, define CHSM_NO_ALIAS_NS. More...
 
#define CHSM_PARENT_ARGS
 Defines the constructor arguments for the CHSM::parent class. More...
 
#define CHSM_PARENT_INIT
 Defines the base-class constructor argument mem-initializers for the CHSM::parent class. More...
 
#define CHSM_SET_ARGS
 Defines the constructor arguments for the CHSM::set class. More...
 
#define CHSM_SET_INIT
 Defines the base-class constructor argument mem-initializers for the CHSM::set class. More...
 
#define CHSM_STATE_ARGS
 Defines the constructor arguments for the CHSM::state class. More...
 
#define CHSM_STATE_INIT
 Defines the base-class constructor argument mem-initializers for the CHSM::state class. More...
 

Functions

bool CHSM::operator!= (event const &a, event const &b)
 Compare two events for inequality. More...
 
bool CHSM::operator== (event const &a, event const &b)
 Compare two events for equality. More...
 

Detailed Description

Provides classes for implementing the run-time of the Concurrent Hierarchical State Machine Language System for C++.

Authors
Paul J. Lucas and Fabio Riccardi

Macro Definition Documentation

#define CHSM_CLUSTER_ARGS

Defines the constructor arguments for the CHSM::cluster class.

#define CHSM_CLUSTER_INIT

Defines the base-class constructor argument mem-initializers for the CHSM::cluster class.

#define CHSM_EVENT_ARGS

Defines the constructor arguments for the CHSM::event class.

#define CHSM_EVENT_INIT

Defines the base-class constructor argument mem-initializers for the CHSM::event class.

#define CHSM_MACHINE_ARGS

Defines the constructor arguments for the CHSM::machine class.

#define CHSM_MACHINE_INIT

Defines the base-class constructor argument mem-initializers for the CHSM::machine class.

#define CHSM_NS   Concurrent_Hierarchical_State_Machine

Define the long CHSM namespace name.

This shouldn't ever conflict with anything. See the end of this file for more on namespaces.

#define CHSM_NS_ALIAS   CHSM

If, for whatever reason, you don't want the long namespace name aliased to a shorter one, define CHSM_NO_ALIAS_NS.

If you want the short namespace alias name to be something other than "CHSM", define CHSM_NS_ALIAS to be what you want.

#define CHSM_PARENT_ARGS

Defines the constructor arguments for the CHSM::parent class.

#define CHSM_PARENT_INIT

Defines the base-class constructor argument mem-initializers for the CHSM::parent class.

#define CHSM_SET_ARGS

Defines the constructor arguments for the CHSM::set class.

#define CHSM_SET_INIT

Defines the base-class constructor argument mem-initializers for the CHSM::set class.

#define CHSM_STATE_ARGS

Defines the constructor arguments for the CHSM::state class.

#define CHSM_STATE_INIT

Defines the base-class constructor argument mem-initializers for the CHSM::state class.