User Tools

Site Tools


fsm:use_fsm

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
fsm:use_fsm [2007/04/29 14:15] fgmfsm:use_fsm [2010/11/11 09:39] fgm
Line 14: Line 14:
  
 ===== Controlling the FSM operation ===== ===== Controlling the FSM operation =====
- 
- 
- 
- 
- 
 ==== Directed work with the "idle" event ==== ==== Directed work with the "idle" event ====
  
Line 29: Line 24:
 ==== Filtering events ==== ==== Filtering events ====
  
-The OSInet FSM has three event processing modes, controlled by the "$event" property:+The OSInet FSM has three event processing modes, controlled by the {get|set}_event_mode methods:
  
   * fsm::EVENT_NORMAL : receives events, processes them, and fires exit events if applicable. This is the default mode.   * fsm::EVENT_NORMAL : receives events, processes them, and fires exit events if applicable. This is the default mode.
Line 36: Line 31:
   * fsm::EVENT_SINK : receives events but throws them away.   * fsm::EVENT_SINK : receives events but throws them away.
     * Switching from fsm::EVENT_QUEUE to fsm::EVENT_SINK empties the event queue accumulated while under fsm::MODE_QUEUE     * Switching from fsm::EVENT_QUEUE to fsm::EVENT_SINK empties the event queue accumulated while under fsm::MODE_QUEUE
- 
- 
  
 ==== Disabling post-events actions ==== ==== Disabling post-events actions ====
  
-Firing of post-event actions is enabled by default, but can be disabled by setting the $action property to false. +Firing of post-event actions is enabled by default, but can be disabled by setting the $allow_actions property to false. 
  
 In that case, applications can still decide to fire the event themselves by reading the fsm_action field in the fsm_result returns by fsm::apply_event(). In that case, applications can still decide to fire the event themselves by reading the fsm_action field in the fsm_result returns by fsm::apply_event().
Line 49: Line 42:
 For a very basic FSM going just from initial to final randomly, building the table and transitions can look like: For a very basic FSM going just from initial to final randomly, building the table and transitions can look like:
  
-<php>+<code php>
 class foo extends fsm class foo extends fsm
   {   {
Line 76: Line 69:
     }     }
   }   }
-</php>+</code> 
 + 
  
 Application code not involved in the FSM operation can use the FSM apply_event method($event_name) to submit an event to the FSM. Only allowed events for the given state the FSM is in are allowed: submitting other events throws an exception.  Application code not involved in the FSM operation can use the FSM apply_event method($event_name) to submit an event to the FSM. Only allowed events for the given state the FSM is in are allowed: submitting other events throws an exception. 
fsm/use_fsm.txt · Last modified: 2020/11/23 17:23 by 127.0.0.1