#include <sp_executor.h>

Classes

struct  TimedState
 

Public Member Functions

 Executor (void)
 
 Executor (const TimedGenerator &rGen)
 
 Executor (const std::string &rFileName)
 
void Generator (const TimedGenerator &rGen)
 
const TimedGeneratorGenerator (void) const
 
const std::string & Name (void) const
 
std::string StateName (Idx idx) const
 
std::string EventName (Idx idx) const
 
void Clear (void)
 
void Reset ()
 
const TimeIntervalEnabledTime () const
 
const EventSetEnabledEvents () const
 
const EventSetDisabledEvents () const
 
const TimeIntervalEnabledInterval () const
 
TimeInterval EnabledEventTime (Idx event) const
 
TimeInterval EnabledGuardTime (Idx event) const
 
const EventSetActiveEventSet (void) const
 
const TransSetActiveTransSet (void) const
 
bool ExecuteTime (Time::Type time)
 
bool ExecuteEvent (Idx event)
 
bool CurrentTimedState (const TimedState &tstate)
 
const TimedStateCurrentTimedState (void) const
 
bool CurrentState (Idx index)
 
Idx CurrentState (void) const
 
bool CurrentClockValue (Idx clock, Time::Type time)
 
Time::Type CurrentClockValue (Idx clock) const
 
void CurrentTime (Time::Type time)
 
Time::Type CurrentTime (void) const
 
void CurrentStep (int step)
 
int CurrentStep (void) const
 
bool IsDeadlocked () const
 
virtual bool Valid (void) const
 
std::string CurrentTimedStateStr (void) const
 
std::string TSStr (const TimedState &tstate) const
 
std::string TEStr (const TimedEvent &tevent) const
 
std::string CStr (Idx idx) const
 
std::string EStr (Idx idx) const
 
std::string SStr (Idx idx) const
 

Protected Member Functions

void DoAssign (const Executor &rSrc)
 
virtual void DoRead (TokenReader &rTr, const std::string &rLabel="", const Type *pContext=0)
 
virtual void DoWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 
- Protected Member Functions inherited from faudes::TtGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >
 TtGenerator (void)
 
 TtGenerator (const TtGenerator &rOtherGen)
 
 TtGenerator (const vGenerator &rOtherGen)
 
TtGeneratoroperator= (const TtGenerator &rOtherGen)
 
 TtGenerator (const std::string &rFileName)
 
TtGeneratorNew (void) const
 
TtGeneratorCopy (void) const
 
virtual const TypeCast (const Type *pOther) const
 
TtGenerator NewTGen (void) const
 
SymbolTableClockSymbolTablep (void) const
 
void ClockSymbolTablep (SymbolTable *pClockSymTab)
 
Idx ClocksSize (void) const
 
const ClockSetClocks (void) const
 
ClockSetClocksp (void)
 
void InjectClocks (const ClockSet &newclocks)
 
std::string ClockName (Idx index) const
 
Idx ClockIndex (const std::string &rName) const
 
bool InsClock (Idx index)
 
Idx InsClock (const std::string &rName)
 
void InsClocks (const ClockSet &rClockSet)
 
bool DelClock (Idx index)
 
bool DelClock (const std::string &rName)
 
void DelClocks (const ClockSet &rClocks)
 
bool ExistsClock (Idx index) const
 
bool ExistsClock (const std::string &rName) const
 
ClockSet::Iterator FindClock (Idx index) const
 
ClockSet::Iterator FindClock (const std::string &rName) const
 
ClockSet ActiveClocks (void) const
 
ClockSet InactiveClocks (void) const
 
void InsActiveClocks (void)
 
void DelInactiveClocks (void)
 
ClockSet::Iterator ClocksBegin (void) const
 
ClockSet::Iterator ClocksEnd (void) const
 
void ConsistentTimeConstraint (const TimeConstraint &rTimeConstr) const
 
void ConsistentClocks (const ClockSet &rClocks) const
 
const TimeConstraintInvariant (Idx idx) const
 
TimeConstraintInvariantp (Idx idx)
 
const TimeConstraintInvariant (const std::string &name) const
 
TimeConstraintInvariantp (const std::string &name)
 
void Invariant (Idx index, const TimeConstraint &rConstraints)
 
void Invariant (const std::string &name, const TimeConstraint &rConstraints)
 
void InsInvariant (const std::string &name, const TimeConstraint &rConstraints)
 
void InsInvariant (Idx index, const TimeConstraint &rConstraints)
 
void ClrInvariant (Idx idx)
 
void ClrInvariant (const std::string &name)
 
void ClearInvariants (void)
 
bool SetTransition (Idx x1, Idx ev, Idx x2)
 
bool SetTransition (const std::string &rX1, const std::string &rEv, const std::string &rX2)
 
bool SetTransition (const Transition &rTransition, const TransAttr &rAttr)
 
bool SetTransition (const Transition &rTrans, const TimeConstraint &rGuard=TimeConstraint(), const ClockSet &rResets=ClockSet())
 
bool SetTransition (Idx x1, Idx ev, Idx x2, const TimeConstraint &rguard, const ClockSet &rResetClocks=ClockSet())
 
bool SetTransition (const std::string &rX1, const std::string &rEv, const std::string &rX2, const TimeConstraint &rGuard=TimeConstraint(), const ClockSet &rResets=ClockSet())
 
void Guard (const Transition &rTrans, const TimeConstraint &rGuard)
 
void InsGuard (const Transition &rTrans, const TimeConstraint &rConstraints)
 
const TimeConstraintGuard (const Transition &rTrans) const
 
TimeConstraintGuardp (const Transition &rTrans)
 
void ClrGuard (const Transition &rTrans)
 
void Resets (const Transition &rTrans, const ClockSet &rResets)
 
void InsResets (const Transition &rTrans, const ClockSet &rMoreResets)
 
const ClockSetResets (const Transition &rTrans) const
 
ClockSetResetsp (const Transition &rTrans)
 
void ClrResets (const Transition &rTrans)
 
std::string CStr (Idx index) const
 
virtual bool UpdateAttributes (void)
 
- Protected Member Functions inherited from faudes::TcGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >
 TcGenerator (void)
 
 TcGenerator (const vGenerator &rOtherGen)
 
 TcGenerator (const TcGenerator &rOtherGen)
 
 TcGenerator (const std::string &rFileName)
 
TcGenerator NewCGen (void) const
 
TcGeneratoroperator= (const TcGenerator &rOtherGen)
 
virtual TcGeneratorAssign (const Type &rSource)
 
void InsControllableEvent (Idx index)
 
Idx InsControllableEvent (const std::string &rName)
 
void InsUncontrollableEvent (Idx index)
 
Idx InsUncontrollableEvent (const std::string &rName)
 
void SetControllable (Idx index)
 
void SetControllable (const std::string &rName)
 
void SetControllable (const EventSet &rEvents)
 
void ClrControllable (Idx index)
 
void ClrControllable (const std::string &rName)
 
void ClrControllable (const EventSet &rEvents)
 
bool Controllable (Idx index) const
 
bool Controllable (const std::string &rName) const
 
EventSet ControllableEvents (void) const
 
EventSet UncontrollableEvents (void) const
 
void InsObservableEvent (Idx index)
 
Idx InsObservableEvent (const std::string &rName)
 
void InsUnobservableEvent (Idx index)
 
Idx InsUnobservableEvent (const std::string &rName)
 
void SetObservable (Idx index)
 
void SetObservable (const std::string &rName)
 
void SetObservable (const EventSet &rEvents)
 
void ClrObservable (Idx index)
 
void ClrObservable (const std::string &rName)
 
void ClrObservable (const EventSet &rEvents)
 
bool Observable (Idx index) const
 
bool Observable (const std::string &rName) const
 
EventSet ObservableEvents (void) const
 
EventSet UnobservableEvents (void) const
 
void InsForcibleEvent (Idx index)
 
Idx InsForcibleEvent (const std::string &rName)
 
void InsUnforcibleEvent (Idx index)
 
Idx InsUnforcibleEvent (const std::string &rName)
 
void SetForcible (Idx index)
 
void SetForcible (const std::string &rName)
 
void SetForcible (const EventSet &rEvents)
 
void ClrForcible (Idx index)
 
void ClrForcible (const std::string &rName)
 
void ClrForcible (const EventSet &rEvents)
 
bool Forcible (Idx index) const
 
bool Forcible (const std::string &rName) const
 
EventSet ForcibleEvents (void) const
 
EventSet UnforcibleEvents (void) const
 
void InsHighlevelEvent (Idx index)
 
Idx InsHighlevelEvent (const std::string &rName)
 
void InsLowlevelEvent (Idx index)
 
Idx InsLowlevelEvent (const std::string &rName)
 
void SetHighlevel (Idx index)
 
void SetHighlevel (const std::string &rName)
 
void SetHighlevel (const EventSet &rEvents)
 
void SetLowlevel (Idx index)
 
void SetLowlevel (const std::string &rName)
 
void SetLowlevel (const EventSet &rEvents)
 
bool Highlevel (Idx index) const
 
bool Highlevel (const std::string &rName) const
 
bool Lowlevel (Idx index) const
 
bool Lowlevel (const std::string &rName) const
 
EventSet HighlevelEvents (void) const
 
EventSet LowlevelEvents (void) const
 
- Protected Member Functions inherited from faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >
virtual void NewCore (void)
 
virtual void UpdateCore (void)
 
void DoAssign (const TaGenerator &rGen)
 
 TaGenerator (void)
 
 TaGenerator (const TaGenerator &rOtherGen)
 
 TaGenerator (const vGenerator &rOtherGen)
 
 TaGenerator (const std::string &rFileName)
 
virtual TaGenerator NewAGen (void) const
 
virtual ~TaGenerator (void)
 
TaGeneratoroperator= (const TaGenerator &rOtherGen)
 
virtual void Move (TaGenerator &rGen)
 
virtual void Move (Generator &rGen)
 
const TaEventSet< EventAttr > & Alphabet (void) const
 
const TaStateSet< StateAttr > & States (void) const
 
const ATransSetTransRel (void) const
 
void TransRel (TransSetX1EvX2 &res) const
 
void TransRel (TransSetEvX1X2 &res) const
 
void TransRel (TransSetEvX2X1 &res) const
 
void TransRel (TransSetX2EvX1 &res) const
 
void TransRel (TransSetX2X1Ev &res) const
 
void TransRel (TransSetX1X2Ev &res) const
 
bool InsEvent (Idx index)
 
Idx InsEvent (const std::string &rName)
 
bool InsEvent (Idx index, const EventAttr &rAttr)
 
Idx InsEvent (const std::string &rName, const EventAttr &rAttr)
 
void InjectAlphabet (const EventSet &rNewalphabet)
 
void InjectAlphabet (const TaEventSet< EventAttr > &rNewalphabet)
 
Idx InsState (void)
 
Idx InsState (const StateAttr &attr)
 
bool InsState (Idx index)
 
Idx InsState (const std::string &rName)
 
Idx InsState (const std::string &rName, const StateAttr &attr)
 
bool InsState (Idx index, const StateAttr &attr)
 
void InjectStates (const StateSet &rNewStates)
 
void InjectStates (const TaStateSet< StateAttr > &rNewStates)
 
bool SetTransition (Idx x1, Idx ev, Idx x2)
 
bool SetTransition (const std::string &rX1, const std::string &rEv, const std::string &rX2)
 
bool SetTransition (const Transition &rTransition)
 
bool SetTransition (const Transition &rTransition, const TransAttr &rAttr)
 
void InjectTransRel (const TransSet &rNewtransrel)
 
void InjectTransRel (const ATransSet &rNewtransrel)
 
void EventAttribute (Idx index, const EventAttr &rAttr)
 
void EventAttribute (Idx index, const Type &rAttr)
 
const EventAttr & EventAttribute (Idx index) const
 
const EventAttr & EventAttribute (const std::string &rName) const
 
EventAttr * EventAttributep (Idx index)
 
EventAttr * EventAttributep (const std::string &rName)
 
void StateAttribute (Idx index, const StateAttr &rAttr)
 
void StateAttribute (Idx index, const Type &rAttr)
 
const StateAttr & StateAttribute (Idx index) const
 
StateAttr * StateAttributep (Idx index)
 
void TransAttribute (const Transition &rTrans, const TransAttr &rAttr)
 
void TransAttribute (const Transition &rTrans, const Type &rAttr)
 
const TransAttr & TransAttribute (const Transition &rTrans) const
 
TransAttr * TransAttributep (const Transition &rTrans)
 
void GlobalAttribute (const GlobalAttr &rAttr)
 
void GlobalAttribute (const Type &rAttr)
 
const GlobalAttr & GlobalAttribute (void) const
 
GlobalAttr * GlobalAttributep (void)
 
- Protected Member Functions inherited from faudes::vGenerator
virtual void DeleteCore (void)
 
void ConfigureAttributeTypes (const AttributeVoid *pNewGlobalPrototype, const StateSet *pNewStatesPrototype, const EventSet *pNewAlphabetPrototype, const TransSet *pNewTransRelPrototype)
 
void DoAssign (const vGenerator &rSrc)
 
virtual void DoDWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 
virtual void DoSWrite (TokenWriter &rTw) const
 
virtual void DoXWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 
void ReadAlphabet (TokenReader &rTr)
 
void WriteStates (TokenWriter &rTw) const
 
void ReadStates (TokenReader &rTr)
 
void XReadStateSet (TokenReader &rTr, StateSet &rStateSet, const std::string &rLabel="") const
 
void ReadTransRel (const std::string &rFileName)
 
void ReadTransRel (TokenReader &rTr)
 
void XReadTransRel (TokenReader &rTr)
 
void XWriteStateSet (TokenWriter &rTw, const StateSet &rStateSet, const std::string &rLabel="") const
 
void XWriteTransRel (TokenWriter &rTw) const
 
 vGenerator (void)
 
 vGenerator (const vGenerator &rOtherGen)
 
 vGenerator (const std::string &rFileName)
 
virtual ~vGenerator (void)
 
virtual vGeneratorAssignWithoutAttributes (const vGenerator &rGen)
 
vGeneratoroperator= (const vGenerator &rOtherGen)
 
virtual void Version (const std::string &rVersion, vGenerator &rResGen) const
 
virtual void Version (Idx version, vGenerator &rResGen) const
 
virtual void Version (const std::string &rPattern, const std::string &rReplacement, vGenerator &rResGen) const
 
void Name (const std::string &rName)
 
void ClearStates (void)
 
Idx AlphabetSize (void) const
 
Idx Size (void) const
 
Idx TransRelSize (void) const
 
Idx InitStatesSize (void) const
 
Idx MarkedStatesSize (void) const
 
bool Empty (void) const
 
bool AlphabetEmpty (void) const
 
bool TransRelEmpty (void) const
 
bool InitStatesEmpty (void) const
 
bool MarkedStatesEmpty (void) const
 
SymbolTableEventSymbolTablep (void) const
 
virtual void EventSymbolTablep (SymbolTable *pSymTab)
 
virtual void EventSymbolTablep (const vGenerator &rOtherGen)
 
EventSet NewEventSet (void) const
 
EventSetNewEventSetp (void) const
 
Idx EventIndex (const std::string &rName) const
 
std::string EventName (Idx index) const
 
void EventName (Idx index, const std::string &rName)
 
std::string UniqueEventName (const std::string &rName) const
 
bool EventRename (Idx event, const std::string &rNewName)
 
bool EventRename (const std::string &rOldName, const std::string &rNewName)
 
const SymbolTableStateSymbolTable (void) const
 
void StateSymbolTable (const SymbolTable &rSymTab)
 
Idx StateIndex (const std::string &rName) const
 
std::string StateName (Idx index) const
 
void StateName (Idx index, const std::string &rName)
 
void ClearStateNames (void)
 
void ClrStateName (Idx index)
 
void ClrStateName (const std::string &rName)
 
bool StateNamesEnabled (void) const
 
void StateNamesEnabled (bool flag)
 
void SetDefaultStateNames (void)
 
void EnforceStateNames (const std::string &rTemplate)
 
std::string UniqueStateName (const std::string &rName) const
 
EventSet::Iterator AlphabetBegin (void) const
 
EventSet::Iterator AlphabetEnd (void) const
 
bool ExistsEvent (Idx index) const
 
bool ExistsEvent (const std::string &rName) const
 
EventSet::Iterator FindEvent (Idx index) const
 
EventSet::Iterator FindEvent (const std::string &rName) const
 
const EventSetAlphabet (void) const
 
StateSet::Iterator StatesBegin (void) const
 
StateSet::Iterator StatesEnd (void) const
 
bool ExistsState (Idx index) const
 
bool ExistsState (const std::string &name) const
 
StateSet::Iterator FindState (Idx index) const
 
StateSet::Iterator FindState (const std::string &rName) const
 
const StateSetStates (void) const
 
Idx InitState (void) const
 
StateSet::Iterator InitStatesBegin (void) const
 
StateSet::Iterator InitStatesEnd (void) const
 
bool ExistsInitState (Idx index) const
 
StateSet::Iterator FindInitState (Idx index) const
 
const StateSetInitStates (void) const
 
StateSet::Iterator MarkedStatesBegin (void) const
 
StateSet::Iterator MarkedStatesEnd (void) const
 
bool ExistsMarkedState (Idx index) const
 
StateSet::Iterator FindMarkedState (Idx index) const
 
const StateSetMarkedStates (void) const
 
TransSet::Iterator TransRelBegin (void) const
 
TransSet::Iterator TransRelEnd (void) const
 
TransSet::Iterator TransRelBegin (Idx x1) const
 
TransSet::Iterator TransRelEnd (Idx x1) const
 
TransSet::Iterator TransRelBegin (Idx x1, Idx ev) const
 
TransSet::Iterator TransRelEnd (Idx x1, Idx ev) const
 
TransSet::Iterator FindTransition (const std::string &rX1, const std::string &rEv, const std::string &rX2) const
 
TransSet::Iterator FindTransition (Idx x1, Idx ev, Idx x2) const
 
TransSet::Iterator FindTransition (const Transition &rTrans) const
 
bool ExistsTransition (const std::string &rX1, const std::string &rEv, const std::string &rX2) const
 
bool ExistsTransition (Idx x1, Idx ev, Idx x2) const
 
bool ExistsTransition (const Transition &rTrans) const
 
bool ExistsTransition (Idx x1, Idx ev) const
 
bool ExistsTransition (Idx x1) const
 
const TransSetTransRel (void) const
 
void TransRel (TransSetX1EvX2 &res) const
 
void TransRel (TransSetEvX1X2 &res) const
 
void TransRel (TransSetEvX2X1 &res) const
 
void TransRel (TransSetX2EvX1 &res) const
 
void TransRel (TransSetX2X1Ev &res) const
 
void TransRel (TransSetX1X2Ev &res) const
 
Transition TransitionByNames (const std::string &rX1, const std::string &rEv, const std::string &rX2) const
 
bool InsEvent (Idx index)
 
Idx InsEvent (const std::string &rName)
 
void InsEvents (const EventSet &events)
 
bool DelEvent (Idx index)
 
bool DelEvent (const std::string &rName)
 
void DelEvents (const EventSet &rEvents)
 
bool DelEventFromAlphabet (Idx index)
 
void InjectAlphabet (const EventSet &rNewalphabet)
 
void RestrictAlphabet (const EventSet &rNewalphabet)
 
Idx InsState (void)
 
bool InsState (Idx index)
 
Idx InsState (const std::string &rName)
 
void InsStates (const StateSet &rStates)
 
bool DelState (Idx index)
 
bool DelState (const std::string &rName)
 
void DelStates (const StateSet &rDelStates)
 
bool DelStateFromStates (Idx index)
 
StateSet::Iterator DelStateFromStates (StateSet::Iterator pos)
 
void RestrictStates (const StateSet &rStates)
 
void InjectState (Idx index)
 
void InjectStates (const StateSet &rNewStates)
 
Idx InsInitState (void)
 
bool InsInitState (Idx index)
 
Idx InsInitState (const std::string &rName)
 
void InsInitStates (const StateSet &rStates)
 
Idx InsMarkedState (void)
 
bool InsMarkedState (Idx index)
 
Idx InsMarkedState (const std::string &rName)
 
void InsMarkedStates (const StateSet &rStates)
 
void SetInitState (Idx index)
 
void SetInitState (const std::string &rName)
 
void InjectInitStates (const StateSet &rNewInitStates)
 
void ClrInitState (Idx index)
 
void ClrInitState (const std::string &rName)
 
StateSet::Iterator ClrInitState (StateSet::Iterator pos)
 
void ClearInitStates (void)
 
void SetMarkedState (Idx index)
 
void SetMarkedState (const std::string &rName)
 
void ClrMarkedState (Idx index)
 
void ClrMarkedState (const std::string &rName)
 
StateSet::Iterator ClrMarkedState (StateSet::Iterator pos)
 
void ClearMarkedStates (void)
 
void InjectMarkedStates (const StateSet &rNewMarkedStates)
 
bool SetTransition (Idx x1, Idx ev, Idx x2)
 
bool SetTransition (const std::string &rX1, const std::string &rEv, const std::string &rX2)
 
bool SetTransition (const Transition &rTransition)
 
void ClrTransition (Idx x1, Idx ev, Idx x2)
 
void ClrTransition (const Transition &rTrans)
 
TransSet::Iterator ClrTransition (TransSet::Iterator it)
 
void ClrTransitions (Idx x1, Idx ev)
 
void ClrTransitions (Idx x1)
 
void ClearTransRel (void)
 
void InjectTransition (const Transition &rTrans)
 
void InjectTransRel (const TransSet &rNewtransrel)
 
virtual void ClearAttributes (void)
 
virtual void ClearEventAttributes (void)
 
virtual void ClrEventAttribute (Idx index)
 
virtual void EventAttributes (const EventSet &rEventSet)
 
virtual void ClearStateAttributes (void)
 
virtual void ClrStateAttribute (Idx index)
 
virtual void ClearTransAttributes (void)
 
virtual void ClrTransAttribute (const Transition &rTrans)
 
virtual void ClearGlobalAttribute (void)
 
virtual void GlobalAttributeTry (const Type &rAttr)
 
StateSet AccessibleSet (void) const
 
bool Accessible (void)
 
bool IsAccessible (void) const
 
StateSet CoaccessibleSet (void) const
 
bool Coaccessible (void)
 
bool IsCoaccessible (void) const
 
StateSet BlockingStates (void) const
 
StateSet TerminalStates (void) const
 
StateSet TerminalStates (const StateSet &rStates) const
 
bool IsComplete (void) const
 
bool IsComplete (const StateSet &rStates) const
 
bool IsComplete (const EventSet &rSigmaO) const
 
bool Complete (void)
 
bool Complete (const EventSet &rSigmaO)
 
StateSet TrimSet (void) const
 
bool Trim (void)
 
bool IsTrim (void) const
 
bool OmegaTrim (void)
 
bool IsOmegaTrim (void) const
 
EventSet UsedEvents (void) const
 
EventSet UnusedEvents (void) const
 
void MinimizeAlphabet (void)
 
EventSet ActiveEventSet (Idx x1) const
 
TransSet ActiveTransSet (Idx x1) const
 
StateSet TransRelStates (void) const
 
Idx SuccessorState (Idx x1, Idx ev) const
 
StateSet SuccessorStates (Idx x1) const
 
StateSet SuccessorStates (Idx x1, Idx ev) const
 
bool IsDeterministic (void) const
 
void SetMinStateIndexMap (void) const
 
void ClearMinStateIndexMap (void) const
 
Idx MinStateIndex (Idx index) const
 
void MinStateIndex (void)
 
Idx MaxStateIndex (void) const
 
const std::map< Idx, Idx > & MinStateIndexMap (void) const
 
std::string EStr (Idx index) const
 
std::string SStr (Idx index) const
 
std::string TStr (const Transition &rTrans) const
 
void GraphWrite (const std::string &rFileName, const std::string &rOutFormat="", const std::string &rDotExec="dot") const
 
bool operator< (const vGenerator &rOtherGen) const
 
void WriteAlphabet (void) const
 
std::string AlphabetToString (void) const
 
void WriteAlphabet (TokenWriter &rTw) const
 
void WriteStateSet (const StateSet &rStateSet) const
 
std::string StateSetToString (const StateSet &rStateSet) const
 
std::string StateSetToText (const StateSet &rStateSet) const
 
void WriteStateSet (TokenWriter &rTw, const StateSet &rStateSet) const
 
void DWriteStateSet (TokenWriter &rTw, const StateSet &rStateSet) const
 
std::string StatesToString (void) const
 
std::string StatesToText (void) const
 
std::string MarkedStatesToString (void) const
 
std::string InitStatesToString (void) const
 
void WriteTransRel (void) const
 
std::string TransRelToString (void) const
 
std::string TransRelToText (void) const
 
void WriteTransRel (TokenWriter &rTw) const
 
void DWriteTransRel (TokenWriter &rTw) const
 
virtual void DotWrite (const std::string &rFileName) const
 
virtual void DDotWrite (const std::string &rFileName) const
 
virtual void XDotWrite (const std::string &rFileName) const
 
void ReadStateSet (TokenReader &rTr, const std::string &rLabel, StateSet &rStateSet) const
 
bool ReindexOnWrite (void) const
 
void ReindexOnWrite (bool flag)
 
- Protected Member Functions inherited from faudes::Type
void DoAssign (const Type &rSrc)
 
bool DoEqual (const Type &rOther) const
 
virtual const TypeDefinitionTypeDefinitionp (void) const
 
virtual Token XBeginTag (const std::string &rLabel="", const std::string &rFallbackLabel="") const
 
 Type (void)
 
 Type (const Type &rType)
 
virtual ~Type (void)
 
Typeoperator= (const Type &rSrc)
 
virtual bool Equal (const Type &rOther) const
 
bool operator== (const Type &rOther) const
 
bool operator!= (const Type &rOther) const
 
virtual const std::string & TypeName (void) const
 
void Write (const Type *pContext=0) const
 
void Write (const std::string &pFileName, const std::string &rLabel="", const Type *pContext=0, std::ios::openmode openmode=std::ios::out|std::ios::trunc) const
 
void Write (const std::string &pFileName, std::ios::openmode openmode) const
 
void Write (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 
virtual void XWrite (const std::string &pFileName, const std::string &rLabel="", const Type *pContext=0) const
 
void XWrite (const Type *pContext=0) const
 
void XWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 
std::string ToString (const std::string &rLabel="", const Type *pContext=0) const
 
std::string ToText (const std::string &rLabel="", const Type *pContext=0) const
 
void DWrite (const Type *pContext=0) const
 
void DWrite (const std::string &pFileName, const std::string &rLabel="", const Type *pContext=0, std::ios::openmode openmode=std::ios::out|std::ios::trunc) const
 
void DWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 
void SWrite (TokenWriter &rTw) const
 
void SWrite (void) const
 
std::string ToSText (void) const
 
void Read (const std::string &rFileName, const std::string &rLabel="", const Type *pContext=0)
 
void FromString (const std::string &rString, const std::string &rLabel="", const Type *pContext=0)
 
void Read (TokenReader &rTr, const std::string &rLabel="", const Type *pContext=0)
 

Private Member Functions

void Compile (void)
 
void ComputeEnabled (void) const
 
void ComputeEnabledNonConst (void)
 

Private Attributes

TimedState mCurrentTimedState
 
Time::Type mCurrentTime
 
int mCurrentStep
 
TimeInterval mETime
 
EventSet mEEvents
 
TimeInterval mEInterval
 
std::map< Idx, TimeIntervalmEGuardInterval
 
EventSet mDEvents
 
EventSet mAEvents
 
TransSet mATrans
 
bool mEValid
 
std::map< Transition, std::map< Idx, TimeInterval > > mTransClockIntervalMap
 
std::map< Idx, std::map< Idx, TimeInterval > > mStateClockIntervalMap
 

Additional Inherited Members

- Protected Types inherited from faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >
typedef TaTransSet< TransAttr > ATransSet
 
- Static Protected Member Functions inherited from faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >
static const TaNameSet< EventAttr > & AlphabetTaGen (void)
 
static const TaIndexSet< StateAttr > & StatesTaGen (void)
 
static const ATransSetTransRelTaGen (void)
 
static const GlobalAttr & GlobalTaGen (void)
 
- Static Protected Member Functions inherited from faudes::vGenerator
static const EventSetAlphabetVoid (void)
 
static const StateSetStatesVoid (void)
 
static const TransSetTransRelVoid (void)
 
static const AttributeVoidGlobalVoid (void)
 
static SymbolTableGlobalEventSymbolTablep (void)
 
static void StateNamesEnabledDefault (bool flag)
 
static void ReindexOnWriteDefault (bool flag)
 
static bool ReindexOnWriteDefault (void)
 
- Protected Attributes inherited from faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >
TaNameSet< EventAttr > * pAlphabet
 
TaIndexSet< StateAttr > * pStates
 
ATransSetpTransRel
 
GlobalAttr * pGlobalAttribute
 
- Protected Attributes inherited from faudes::vGenerator
std::string mMyName
 
Idx mId
 
SymbolTable mStateSymbolTable
 
SymbolTablempStateSymbolTable
 
SymbolTablempEventSymbolTable
 
bool mStateNamesEnabled
 
bool mReindexOnWrite
 
EventSetmpAlphabet
 
StateSetmpStates
 
TransSetmpTransRel
 
AttributeVoidmpGlobalAttribute
 
const EventSetpAlphabetPrototype
 
const StateSetpStatesPrototype
 
const TransSetpTransRelPrototype
 
const AttributeVoidpGlobalPrototype
 
StateSet mInitStates
 
StateSet mMarkedStates
 
std::map< Idx, IdxmMinStateIndexMap
 
- Static Protected Attributes inherited from faudes::vGenerator
static Idx msObjectCount = 0
 
static bool msStateNamesEnabledDefault = true
 
static bool msReindexOnWriteDefault = false
 

Detailed Description

An Executor is a timed generator that maintains a current state.

The Executor is the lowest level building block for the libFAUDES simulator plugin. It maintains a current state that consists of

  • the discrete state;
  • a value map that assigns values to clock variables;
  • the current step aka logical time;
  • the current global clock aka clock time; as with faudes timed automata, clock time is in faudes-time units which may be mapped to physical time by a fixed conversion factor; see also DeviceExecutor. The state can be retrieved by the method Executor::CurrentState(void), and it is updated whenever time or transitions are executed via Executor::ExecuteTime(Time::Type) or Executor::ExecuteEvent(Idx). If you plan to execute multiple generators with synchronized shared events, you will find the class ParallelExecutor with a very similar interface more appropriate.

The Executor provides Methods that indicate which transitions currently are enabled, referring to the current state, the current clock values and the guard and invariant data from the TimedGenerator. In contrast to enabled events, there is also the notion of active events, which refers to the discrete state only, ignoring guards and invariants.

Technically, the Executor class is derived from the TimedGenerator, however inheritence is private. The common way to initialise an Executor object is to construct it from a const ref to a TimedGenerator, which sets up additional internal data structures. Read-only access to the underlying generator is given by the faudes::Executor::Generator() method.

Note: a prequisit of the current implementation is that the underlying generator is deterministic ie the current discrete state is uniquely determind by the external sequence of discrete events.

Definition at line 93 of file sp_executor.h.

Constructor & Destructor Documentation

◆ Executor() [1/3]

faudes::Executor::Executor ( void  )

Creates an emtpy Executer

Definition at line 22 of file sp_executor.cpp.

◆ Executor() [2/3]

faudes::Executor::Executor ( const TimedGenerator rGen)

Construct from tgenerator.

Construction from a TimedGenerator will copy all given TimedGenerator data and complie it to some additional Executor specific data. Thus, if the original TimedGenerator changes the Executor will not reflect these changes.

Parameters
rGenInput generator
Exceptions
Exception
  • Nondetrministic input generator (id 501)

Definition at line 29 of file sp_executor.cpp.

◆ Executor() [3/3]

faudes::Executor::Executor ( const std::string &  rFileName)

Construct from TimedGenerator file.

Parameters
rFileNameFile to read
Exceptions
Exception
  • IO errors (id 1)
  • token mismatch (id 50, 51, 52, 80, 85)
  • nondetrministic generator (id 501)

Definition at line 35 of file sp_executor.cpp.

Member Function Documentation

◆ ActiveEventSet()

const EventSet & faudes::Executor::ActiveEventSet ( void  ) const

Get set of events that are active at current (untimed) state.

Returns
Set of active events

Definition at line 273 of file sp_executor.cpp.

◆ ActiveTransSet()

const TransSet & faudes::Executor::ActiveTransSet ( void  ) const

Get set of transitions that are active at current (untimed) state

Returns
Set of active trans

Definition at line 279 of file sp_executor.cpp.

◆ Clear()

void faudes::Executor::Clear ( void  )
virtual

Clear all data incl TimedGenerator

Reimplemented from faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >.

Definition at line 91 of file sp_executor.cpp.

◆ Compile()

void faudes::Executor::Compile ( void  )
private

Prepare internal data structurs from generator

Definition at line 53 of file sp_executor.cpp.

◆ ComputeEnabled()

void faudes::Executor::ComputeEnabled ( void  ) const
private

Compute enabled events and enabled interval (fake const)

Definition at line 138 of file sp_executor.cpp.

◆ ComputeEnabledNonConst()

void faudes::Executor::ComputeEnabledNonConst ( void  )
private

Compute enabled core routine (non const)

Definition at line 144 of file sp_executor.cpp.

◆ CStr()

std::string faudes::Executor::CStr ( Idx  idx) const

Pretty printable string of clock name

Definition at line 496 of file sp_executor.cpp.

◆ CurrentClockValue() [1/2]

Time::Type faudes::Executor::CurrentClockValue ( Idx  clock) const

Get value of clock

Parameters
clockIndex of clock variable
Returns
time Value of clock variable

Definition at line 422 of file sp_executor.cpp.

◆ CurrentClockValue() [2/2]

bool faudes::Executor::CurrentClockValue ( Idx  clock,
Time::Type  time 
)

Set value of clock variable. Returns false if clock not in clockset.

Parameters
clockIndex of clock variable to set
timeTime to set
Returns
True/false – success

Definition at line 414 of file sp_executor.cpp.

◆ CurrentState() [1/2]

bool faudes::Executor::CurrentState ( Idx  index)

Set discrete state. Returns false if state is not in state set.

Parameters
indexState index
Returns
True/false – success

Definition at line 401 of file sp_executor.cpp.

◆ CurrentState() [2/2]

Idx faudes::Executor::CurrentState ( void  ) const

Get discrete state.

Returns
Discret state by index

Definition at line 409 of file sp_executor.cpp.

◆ CurrentStep() [1/2]

void faudes::Executor::CurrentStep ( int  step)

Set logic time (# of steps)

Parameters
stepNew logic time

Definition at line 441 of file sp_executor.cpp.

◆ CurrentStep() [2/2]

int faudes::Executor::CurrentStep ( void  ) const

Get logic time ie numer of transitions so far.

Definition at line 447 of file sp_executor.cpp.

◆ CurrentTime() [1/2]

void faudes::Executor::CurrentTime ( Time::Type  time)

Set current time.

Parameters
timeNew current time

Definition at line 430 of file sp_executor.cpp.

◆ CurrentTime() [2/2]

Time::Type faudes::Executor::CurrentTime ( void  ) const

Get current time

Returns
time Current time

Definition at line 436 of file sp_executor.cpp.

◆ CurrentTimedState() [1/2]

bool faudes::Executor::CurrentTimedState ( const TimedState tstate)

Set timed state. Returns false if state or clock values are invalid.

Parameters
tstateState to set.
Returns
True/false – success

Definition at line 382 of file sp_executor.cpp.

◆ CurrentTimedState() [2/2]

const Executor::TimedState & faudes::Executor::CurrentTimedState ( void  ) const

Get timed state.

Returns
Current discrete state and clock values.

Definition at line 396 of file sp_executor.cpp.

◆ CurrentTimedStateStr()

std::string faudes::Executor::CurrentTimedStateStr ( void  ) const

Pretty printable string of current state

Definition at line 479 of file sp_executor.cpp.

◆ DisabledEvents()

const EventSet & faudes::Executor::DisabledEvents ( void  ) const

Get set of events that are disabled at current (timed) state

Returns
Set of disabled events

Definition at line 261 of file sp_executor.cpp.

◆ DoAssign()

void faudes::Executor::DoAssign ( const Executor rSrc)
protected

Assignment method.

Parameters
rSrcSource to assign from

Definition at line 128 of file sp_executor.cpp.

◆ DoRead()

void faudes::Executor::DoRead ( TokenReader rTr,
const std::string &  rLabel = "",
const Type pContext = 0 
)
protectedvirtual

Reads configuration from TokenReader, see Typefor public wrappers.

Parameters
rTrTokenReader to read from
rLabelSection to read
pContextRead context to provide contextual information
Exceptions
Exception
  • IO error (id 1)

Reimplemented from faudes::vGenerator.

Definition at line 115 of file sp_executor.cpp.

◆ DoWrite()

void faudes::Executor::DoWrite ( TokenWriter rTw,
const std::string &  rLabel = "",
const Type pContext = 0 
) const
protectedvirtual

Writes configuration to TokenWriter, see Type for public wrappers.

Parameters
rTwTokenWriter to write to
rLabelSection to write
pContextWrite context to provide contextual information
Exceptions
Exception
  • IO error (id 2)

Reimplemented from faudes::vGenerator.

Definition at line 122 of file sp_executor.cpp.

◆ EnabledEvents()

const EventSet & faudes::Executor::EnabledEvents ( void  ) const

Get set of events that are enabled at current (timed) state

Returns
Set of enabled events

Definition at line 255 of file sp_executor.cpp.

◆ EnabledEventTime()

TimeInterval faudes::Executor::EnabledEventTime ( Idx  event) const

Get interval on which an active event is enabled.

Parameters
eventActive event
Returns
TimeInterval (empty if event not active or active with guard violated)

Definition at line 285 of file sp_executor.cpp.

◆ EnabledGuardTime()

TimeInterval faudes::Executor::EnabledGuardTime ( Idx  event) const

Get interval on which an active event satisfies its guard.

Parameters
eventActive event
Returns
TimeInterval (empty if event not active or active with guard violated)

Definition at line 304 of file sp_executor.cpp.

◆ EnabledInterval()

const TimeInterval & faudes::Executor::EnabledInterval ( void  ) const

Get maximal interval on which set of enabled events is constant

Returns
TimeInterval

Definition at line 267 of file sp_executor.cpp.

◆ EnabledTime()

const TimeInterval & faudes::Executor::EnabledTime ( void  ) const

Get maximal interval of time that can pass without executing an event. This corresponds to the inveriant of the current timed state.

Returns
TimeInterval

Definition at line 249 of file sp_executor.cpp.

◆ EStr()

std::string faudes::Executor::EStr ( Idx  idx) const

Pretty printable string of event

Definition at line 491 of file sp_executor.cpp.

◆ EventName()

std::string faudes::Executor::EventName ( Idx  idx) const
inline

Event name (for convenience)

Definition at line 174 of file sp_executor.h.

◆ ExecuteEvent()

bool faudes::Executor::ExecuteEvent ( Idx  event)

Execute transition. Returns false if the transition is not enabled and hence cannot be executed at the current time

Parameters
eventIndicate transition to execute
Returns
True/false – success

Definition at line 354 of file sp_executor.cpp.

◆ ExecuteTime()

bool faudes::Executor::ExecuteTime ( Time::Type  time)

Let time pass. Returns false if the specified amount of time cannot elapse without an event being executed

Parameters
timeAmount of time that shall elapse.
Returns
True/false – success

Definition at line 317 of file sp_executor.cpp.

◆ Generator() [1/2]

void faudes::Executor::Generator ( const TimedGenerator rGen)

Initialise from TimedGenerator.

Parameters
rGenInput generator

Definition at line 46 of file sp_executor.cpp.

◆ Generator() [2/2]

const TimedGenerator & faudes::Executor::Generator ( void  ) const

Reference to the internal generator for inspection

Returns
const reference of mTGen

Definition at line 41 of file sp_executor.cpp.

◆ IsDeadlocked()

bool faudes::Executor::IsDeadlocked ( void  ) const

Returns true if timed generator is in a deadlocked state.

Returns
true/false

Definition at line 452 of file sp_executor.cpp.

◆ Name()

const std::string& faudes::Executor::Name ( void  ) const
inlinevirtual

Generator name (for convenience)

Reimplemented from faudes::vGenerator.

Definition at line 161 of file sp_executor.h.

◆ Reset()

void faudes::Executor::Reset ( void  )

Reset all clocks and assign initial state.

Definition at line 102 of file sp_executor.cpp.

◆ SStr()

std::string faudes::Executor::SStr ( Idx  idx) const

Pretty printable string of state

Definition at line 501 of file sp_executor.cpp.

◆ StateName()

std::string faudes::Executor::StateName ( Idx  idx) const
inline

State name (for convenience)

Definition at line 167 of file sp_executor.h.

◆ TEStr()

std::string faudes::Executor::TEStr ( const TimedEvent tevent) const

Pretty printable string of timed event

Definition at line 484 of file sp_executor.cpp.

◆ TSStr()

std::string faudes::Executor::TSStr ( const TimedState tstate) const

Pretty printable string of timed state

Definition at line 460 of file sp_executor.cpp.

◆ Valid()

virtual bool faudes::Executor::Valid ( void  ) const
inlinevirtual

Check if Executor is valid. Not implemented, should check for determinism and consitency of current state and clock values.

Returns
Success

Reimplemented from faudes::TtGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >.

Definition at line 395 of file sp_executor.h.

Member Data Documentation

◆ mAEvents

EventSet faudes::Executor::mAEvents
private

Record active events (ie regardles time)

Definition at line 511 of file sp_executor.h.

◆ mATrans

TransSet faudes::Executor::mATrans
private

Record active transitions (regardles time)

Definition at line 514 of file sp_executor.h.

◆ mCurrentStep

int faudes::Executor::mCurrentStep
private

Current logic time

Definition at line 484 of file sp_executor.h.

◆ mCurrentTime

Time::Type faudes::Executor::mCurrentTime
private

Current clock time

Definition at line 481 of file sp_executor.h.

◆ mCurrentTimedState

TimedState faudes::Executor::mCurrentTimedState
private

Current state incl clock values

Definition at line 478 of file sp_executor.h.

◆ mDEvents

EventSet faudes::Executor::mDEvents
private

Record disabled events

Definition at line 508 of file sp_executor.h.

◆ mEEvents

EventSet faudes::Executor::mEEvents
private

Record enabled events

Definition at line 499 of file sp_executor.h.

◆ mEGuardInterval

std::map<Idx,TimeInterval> faudes::Executor::mEGuardInterval
private

Record interval in which each guard is enabled

Definition at line 505 of file sp_executor.h.

◆ mEInterval

TimeInterval faudes::Executor::mEInterval
private

Record rime on shich mEEvents is constant

Definition at line 502 of file sp_executor.h.

◆ mETime

TimeInterval faudes::Executor::mETime
private

Record enabled time

Definition at line 496 of file sp_executor.h.

◆ mEValid

bool faudes::Executor::mEValid
private

Validity flag for the above data

Definition at line 517 of file sp_executor.h.

◆ mStateClockIntervalMap

std::map<Idx, std::map<Idx,TimeInterval> > faudes::Executor::mStateClockIntervalMap
private

Compiled generator data: map state to clock to interval constraint

Definition at line 523 of file sp_executor.h.

◆ mTransClockIntervalMap

std::map<Transition, std::map<Idx,TimeInterval> > faudes::Executor::mTransClockIntervalMap
private

Compiled generator data: map transition to clock to interval constraint

Definition at line 520 of file sp_executor.h.


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

libFAUDES 2.33c --- 2025.05.15 --- c++ api documentaion by doxygen