rad  2.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Public Attributes | List of all members
scxml4py.executor.Executor Class Reference
Inheritance diagram for scxml4py.executor.Executor:

Public Member Functions

def __init__
 
def getStatus
 
def getModel
 
def getContext
 
def getEventHandlingPolicy
 
def isRunning
 
def isFinal
 
def isEventProcessable
 
def start
 
def stop
 
def postEvent
 
def processEvent
 
def processEvents
 
def processInternalEvents
 
def exitInterpreter
 
def selectEventlessTransitions
 
def selectTransitions
 
def microstep
 
def exitStates
 Create an empty statesToExit set. More...
 
def executeTransitionContent
 
def enterStates
 
def addStatesToEnter
 
def setModel
 
def setContext
 
def setEventHandlingPolicy
 
def addEventListener
 
def removeEventListener
 
def removeAllEventListener
 
def notifyEventListeners
 
def addStatusListener
 
def removeStatusListener
 
def removeAllStatusListener
 
def notifyStatusListeners
 
def __init__
 
def getStatus
 
def getModel
 
def getContext
 
def getEventHandlingPolicy
 
def isRunning
 
def isFinal
 
def isEventProcessable
 
def start
 
def stop
 
def postEvent
 
def processEvent
 
def processEvents
 
def processInternalEvents
 
def exitInterpreter
 
def selectEventlessTransitions
 
def selectTransitions
 
def microstep
 
def exitStates
 Create an empty statesToExit set. More...
 
def executeTransitionContent
 
def enterStates
 
def addStatesToEnter
 
def setModel
 
def setContext
 
def setEventHandlingPolicy
 
def addEventListener
 
def removeEventListener
 
def removeAllEventListener
 
def notifyEventListeners
 
def addStatusListener
 
def removeStatusListener
 
def removeAllStatusListener
 
def notifyStatusListeners
 

Public Attributes

 mStateMachine
 
 mContext
 
 mEventHandlingPolicy
 
 mEventListeners
 
 mStatusListeners
 
 mCurrentStatus
 
 mPreviousStatus
 
 mStatesToInvoke
 
 mInternalEvents
 
 mExternalEvents
 
 mContinue
 
 mFinal
 

Constructor & Destructor Documentation

def scxml4py.executor.Executor.__init__ (   self,
  theStateMachine,
  theContext,
  externalEventQueue = None,
  internalEventQueue = None 
)
def scxml4py.executor.Executor.__init__ (   self,
  theStateMachine,
  theContext,
  externalEventQueue = None,
  internalEventQueue = None 
)

Member Function Documentation

def scxml4py.executor.Executor.addEventListener (   self,
  eventListener 
)
def scxml4py.executor.Executor.addEventListener (   self,
  eventListener 
)
def scxml4py.executor.Executor.addStatesToEnter (   self,
  s,
  root,
  statesToEnter,
  statesForDefaultEntry 
)
def scxml4py.executor.Executor.addStatesToEnter (   self,
  s,
  root,
  statesToEnter,
  statesForDefaultEntry 
)
def scxml4py.executor.Executor.addStatusListener (   self,
  statusListener 
)
def scxml4py.executor.Executor.addStatusListener (   self,
  statusListener 
)
def scxml4py.executor.Executor.enterStates (   self,
  enabledTransitions 
)
def scxml4py.executor.Executor.enterStates (   self,
  enabledTransitions 
)
def scxml4py.executor.Executor.executeTransitionContent (   self,
  enabledTransitions 
)
def scxml4py.executor.Executor.executeTransitionContent (   self,
  enabledTransitions 
)
def scxml4py.executor.Executor.exitInterpreter (   self)
def scxml4py.executor.Executor.exitInterpreter (   self)
def scxml4py.executor.Executor.exitStates (   self,
  enabledTransitions 
)

Create an empty statesToExit set.

For each transition t in enabledTransitions, if t is targetLess then do nothing,
else let LCA be the least common ancestor state of the source state and target states of t.
Add to the statesToExit set all states in the configuration that are descendants of LCA.
Convert the statesToExit set to a list and sort it in exitOrder.

For each state s in the list, if s has a deep history state h, set the history value
of h to be the list of all atomic descendants of s that are members in the current
configuration, else set its value to be the list of all immediate children of s that
are members of the current configuration.

Again for each state s in the list, first execute any onExit handlers, then cancel any
ongoing invocations, and finally remove s from the current configuration.

procedure exitStates(enabledTransitions):
    statesToExit = new Set()
    for t in enabledTransitions:
       if (t.attribute('target') != null):
          LCA = findLCA([t.parent()].append(getTargetStates(t)))
          for s in configuration.toList():
             if (isDescendant(s,LCA)):
                statesToExit.add(s)
    statesToExit = statesToExit.toList().sort(exitOrder)
    for s in statesToExit:
       for h in s.history:
          f = (h.attribute('type') == "deep") ?

lambda isAtomicState(s0) && isDescendant(s0,s) : lambda s0.parent() == s historyValue[h.attribute('id')] = configuration.toList().filter(f) for s in statesToExit: for content in s.onexit: executeContent(content) for inv in s.invoke: cancelInvoke(inv) configuration.delete(s)

def scxml4py.executor.Executor.exitStates (   self,
  enabledTransitions 
)

Create an empty statesToExit set.

For each transition t in enabledTransitions, if t is targetLess then do nothing,
else let LCA be the least common ancestor state of the source state and target states of t.
Add to the statesToExit set all states in the configuration that are descendants of LCA.
Convert the statesToExit set to a list and sort it in exitOrder.

For each state s in the list, if s has a deep history state h, set the history value
of h to be the list of all atomic descendants of s that are members in the current
configuration, else set its value to be the list of all immediate children of s that
are members of the current configuration.

Again for each state s in the list, first execute any onExit handlers, then cancel any
ongoing invocations, and finally remove s from the current configuration.

procedure exitStates(enabledTransitions):
    statesToExit = new Set()
    for t in enabledTransitions:
       if (t.attribute('target') != null):
          LCA = findLCA([t.parent()].append(getTargetStates(t)))
          for s in configuration.toList():
             if (isDescendant(s,LCA)):
                statesToExit.add(s)
    statesToExit = statesToExit.toList().sort(exitOrder)
    for s in statesToExit:
       for h in s.history:
          f = (h.attribute('type') == "deep") ?

lambda isAtomicState(s0) && isDescendant(s0,s) : lambda s0.parent() == s historyValue[h.attribute('id')] = configuration.toList().filter(f) for s in statesToExit: for content in s.onexit: executeContent(content) for inv in s.invoke: cancelInvoke(inv) configuration.delete(s)

def scxml4py.executor.Executor.getContext (   self)
def scxml4py.executor.Executor.getContext (   self)
def scxml4py.executor.Executor.getEventHandlingPolicy (   self)
def scxml4py.executor.Executor.getEventHandlingPolicy (   self)
def scxml4py.executor.Executor.getModel (   self)
def scxml4py.executor.Executor.getModel (   self)
def scxml4py.executor.Executor.getStatus (   self)
def scxml4py.executor.Executor.getStatus (   self)
def scxml4py.executor.Executor.isEventProcessable (   self,
  e 
)
def scxml4py.executor.Executor.isEventProcessable (   self,
  e 
)
def scxml4py.executor.Executor.isFinal (   self)
def scxml4py.executor.Executor.isFinal (   self)
def scxml4py.executor.Executor.isRunning (   self)
def scxml4py.executor.Executor.isRunning (   self)
def scxml4py.executor.Executor.microstep (   self,
  enabledTransitions 
)
def scxml4py.executor.Executor.microstep (   self,
  enabledTransitions 
)
def scxml4py.executor.Executor.notifyEventListeners (   self,
  theEvent 
)
def scxml4py.executor.Executor.notifyEventListeners (   self,
  theEvent 
)
def scxml4py.executor.Executor.notifyStatusListeners (   self,
  theStatus 
)
def scxml4py.executor.Executor.notifyStatusListeners (   self,
  theStatus 
)
def scxml4py.executor.Executor.postEvent (   self,
  theEvent 
)
def scxml4py.executor.Executor.postEvent (   self,
  theEvent 
)
def scxml4py.executor.Executor.processEvent (   self,
  theEvent 
)
def scxml4py.executor.Executor.processEvent (   self,
  theEvent 
)
def scxml4py.executor.Executor.processEvents (   self)
def scxml4py.executor.Executor.processEvents (   self)
def scxml4py.executor.Executor.processInternalEvents (   self)
def scxml4py.executor.Executor.processInternalEvents (   self)
def scxml4py.executor.Executor.removeAllEventListener (   self)
def scxml4py.executor.Executor.removeAllEventListener (   self)
def scxml4py.executor.Executor.removeAllStatusListener (   self)
def scxml4py.executor.Executor.removeAllStatusListener (   self)
def scxml4py.executor.Executor.removeEventListener (   self,
  eventListener 
)
def scxml4py.executor.Executor.removeEventListener (   self,
  eventListener 
)
def scxml4py.executor.Executor.removeStatusListener (   self,
  statusListener 
)
def scxml4py.executor.Executor.removeStatusListener (   self,
  statusListener 
)
def scxml4py.executor.Executor.selectEventlessTransitions (   self)
def scxml4py.executor.Executor.selectEventlessTransitions (   self)
def scxml4py.executor.Executor.selectTransitions (   self,
  e 
)
def scxml4py.executor.Executor.selectTransitions (   self,
  e 
)
def scxml4py.executor.Executor.setContext (   self,
  theContext 
)
def scxml4py.executor.Executor.setContext (   self,
  theContext 
)
def scxml4py.executor.Executor.setEventHandlingPolicy (   self,
  policy 
)
def scxml4py.executor.Executor.setEventHandlingPolicy (   self,
  policy 
)
def scxml4py.executor.Executor.setModel (   self,
  theStateMachine 
)
def scxml4py.executor.Executor.setModel (   self,
  theStateMachine 
)
def scxml4py.executor.Executor.start (   self)
def scxml4py.executor.Executor.start (   self)
def scxml4py.executor.Executor.stop (   self)
def scxml4py.executor.Executor.stop (   self)

Member Data Documentation

scxml4py.executor.Executor.mContext
scxml4py.executor.Executor.mContinue
scxml4py.executor.Executor.mCurrentStatus
scxml4py.executor.Executor.mEventHandlingPolicy
scxml4py.executor.Executor.mEventListeners
scxml4py.executor.Executor.mExternalEvents
scxml4py.executor.Executor.mFinal
scxml4py.executor.Executor.mInternalEvents
scxml4py.executor.Executor.mPreviousStatus
scxml4py.executor.Executor.mStateMachine
scxml4py.executor.Executor.mStatesToInvoke
scxml4py.executor.Executor.mStatusListeners

The documentation for this class was generated from the following files: