class rcFsm

State machine for the run control events

Inheritance:


Public Methods

const char* getcCurrentState()
Returns the current state as string
int getCurrentState()
Returns the current state
bool getEventTrace()
Returns the current value of the event trace
char* getFsmName()
Returns the name of the state machine
rcFsm(const char *name)
Creator with the name as argument, registers itself with the event queue
virtual void setCurrentState(int iNewState )
Sets the current state to a new state
void setEventTrace( bool bTrace )
To set the event trace which leads to printing debug information
virtual int TakeEvent( rcEvent *Event )
TakeEvent, must be implemented by the subtype!
~rcFsm()
Deregisters with the event queue

Protected Fields

bool bEventTrace
If true, print debug information about the state transition
bool bNoTimersAccepted
If true, we don't accept any timer events
int iCurrentState
Current state
const char* pcCurrentState
Name of the current state
char* pcFsmName
Name of the state machine,

Protected Methods

virtual int canthappenEvent( rcEvent *pEvent )
Routine that will be called when we encounter a can't happen event
virtual int ignoreEvent( rcEvent *pEvent )
Routine that will be called when we have an ignore event

Documentation

State machine for the run control events. This state machine handles the run control objects and works with the run control internal event mechanism. Note that this is different from the corba event notifier stuff, the reason being that most of the run control coordination is done within the run control server itself. E.g. the partition object doesn't need to send the event to the event notifier if all it want to do is to tell a process stage to start downloading its components (as the process stage object is in the same server).
The mechanism is embarrasingly simple, rcFsm registers itself with the event queue and its takeEvent gets called whenever it receives an event. The takeEvent is implemented by the subclasses as it needs to know more about the states and transitions.

See also: rcEvent, rcEventQueue

Last update Feb 5, 2000, CW

rcFsm(const char *name)
Creator with the name as argument, registers itself with the event queue

~rcFsm()
Deregisters with the event queue

char* getFsmName()
Returns the name of the state machine

int getCurrentState()
Returns the current state

const char* getcCurrentState()
Returns the current state as string

virtual void setCurrentState(int iNewState )
Sets the current state to a new state

virtual int TakeEvent( rcEvent *Event )
TakeEvent, must be implemented by the subtype!

void setEventTrace( bool bTrace )
To set the event trace which leads to printing debug information

bool getEventTrace()
Returns the current value of the event trace

virtual int ignoreEvent( rcEvent *pEvent )
Routine that will be called when we have an ignore event

virtual int canthappenEvent( rcEvent *pEvent )
Routine that will be called when we encounter a can't happen event

bool bEventTrace
If true, print debug information about the state transition

bool bNoTimersAccepted
If true, we don't accept any timer events

char* pcFsmName
Name of the state machine,

int iCurrentState
Current state

const char* pcCurrentState
Name of the current state


Direct child classes:
rcRun
rcPartition
Prst

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de