Module StateMachine

This module contains the STATEMACHINE class.

This development is based on a state machine implementation made by Conroy Kyle.
The state machine can be found here: https://github.com/kyleconroy/lua-state-machine

I've taken the development and enhanced it to make the state machine hierarchical... It is a fantastic development, this module.


1) Workflow#STATEMACHINE class, extends Base#BASE

1.1) Add or remove objects from the STATEMACHINE

Global(s)

STATEMACHINE
STATEMACHINE_PROCESS
STATEMACHINE_TASK

Type STATEMACHINE

STATEMACHINE.ClassName
STATEMACHINE:New(options)

Creates a new STATEMACHINE object.

STATEMACHINE:_add_to_map(map, event)
STATEMACHINE:_call_handler(handler, params)
STATEMACHINE:_create_transition(name)
STATEMACHINE:_gosub(parentstate, parentevent)
STATEMACHINE:_isendstate(state)
STATEMACHINE:_submap(subs, sub, name)
STATEMACHINE:can(e)
STATEMACHINE:cannot(e)
STATEMACHINE:is(state)
STATEMACHINE:todot(filename)

Type STATEMACHINE_PROCESS

STATEMACHINE_PROCESS.ClassName
STATEMACHINE_PROCESS:New(Process, options)

Creates a new STATEMACHINE_PROCESS object.

STATEMACHINE_PROCESS.Process
STATEMACHINE_PROCESS:_call_handler(handler, params)

Type STATEMACHINE_TASK

STATEMACHINE_TASK.ClassName
STATEMACHINE_TASK:New(Task, options)

Creates a new STATEMACHINE_TASK object.

STATEMACHINE_TASK.Task
STATEMACHINE_TASK:_call_handler(handler, params)

Global(s)

#STATEMACHINE STATEMACHINE
#STATEMACHINE_PROCESS STATEMACHINE_PROCESS
#STATEMACHINE_TASK STATEMACHINE_TASK

Type StateMachine

Type STATEMACHINE

STATEMACHINE class

Field(s)

#string STATEMACHINE.ClassName
STATEMACHINE:New(options)

Creates a new STATEMACHINE object.

Parameter

  • options :

Return value

#STATEMACHINE:

STATEMACHINE:_add_to_map(map, event)

Parameters

  • map :

  • event :

STATEMACHINE:_call_handler(handler, params)

Parameters

  • handler :

  • params :

STATEMACHINE:_create_transition(name)

Parameter

  • name :

STATEMACHINE:_gosub(parentstate, parentevent)

Parameters

  • parentstate :

  • parentevent :

STATEMACHINE:_isendstate(state)

Parameter

  • state :

STATEMACHINE:_submap(subs, sub, name)

Parameters

  • subs :

  • sub :

  • name :

STATEMACHINE:can(e)

Parameter

  • e :

STATEMACHINE:cannot(e)

Parameter

  • e :

STATEMACHINE:is(state)

Parameter

  • state :

STATEMACHINE:todot(filename)

Parameter

  • filename :

Type STATEMACHINE_PROCESS

STATEMACHINE_PROCESS class

Field(s)

#string STATEMACHINE_PROCESS.ClassName
STATEMACHINE_PROCESS:New(Process, options)

Creates a new STATEMACHINE_PROCESS object.

Parameters

  • Process :

  • options :

Return value

#STATEMACHINE_PROCESS:

Process#PROCESS STATEMACHINE_PROCESS.Process
STATEMACHINE_PROCESS:_call_handler(handler, params)

Parameters

  • handler :

  • params :

Type STATEMACHINE_TASK

STATEMACHINE_TASK class

Field(s)

#string STATEMACHINE_TASK.ClassName
STATEMACHINE_TASK:New(Task, options)

Creates a new STATEMACHINE_TASK object.

Parameters

  • Task :

  • options :

Return value

#STATEMACHINE_TASK:

Task#TASK_BASE STATEMACHINE_TASK.Task
STATEMACHINE_TASK:_call_handler(handler, params)

Parameters

  • handler :

  • params :