| |
libFAUDES
Sections
Index
|
faudes::Executor Class Reference |
Public Member Functions | |
Executor (void) | |
Creates an emtpy Executer. | |
Executor (const tGenerator &rGen) | |
Construct from tgenerator. | |
Executor (const std::string &rFileName) | |
Construct from tGenerator file. | |
void | Read (const std::string &rFileName) |
Read tGenerator file. | |
void | Read (TokenReader &rTr) |
Read form tokenreader. | |
void | Write (TokenWriter &rTw) const |
Write to tokenwriter. | |
void | Write (const std::string &rFileName, std::ios::openmode openmode=std::ios::out|std::ios::trunc) |
Write to file. | |
void | Generator (const tGenerator &rGen) |
Initialise from tGenerator. | |
const tGenerator & | Generator (void) const |
Reference to the internal generator for inspection. | |
std::string | Name (void) const |
Generator name (for convenience). | |
std::string | StateName (Idx idx) const |
State name (for convenience). | |
std::string | EventName (Idx idx) const |
Event name (for convenience). | |
void | Clear (void) |
Clear all data incl tGenerator. | |
void | Reset () |
Reset all clocks and assign initial state. | |
const TimeInterval & | EnabledTime () const |
Get maximal interval of time that can pass without executing an event. | |
const EventSet & | EnabledEvents () const |
Get set of events that are enabled at current (timed) state. | |
const EventSet & | DisabledEvents () const |
Get set of events that are disabled at current (timed) state. | |
const TimeInterval & | EnabledInterval () const |
Get maximal interval on which set of enabled events is constant. | |
TimeInterval | EnabledEventTime (Idx event) const |
Get interval on which an active event is enabled. | |
TimeInterval | EnabledGuardTime (Idx event) const |
Get interval on which an active event satisfies its guard. | |
const EventSet & | ActiveEventSet (void) const |
Get set of events that are active at current (untimed) state. | |
const TransSet & | ActiveTransSet (void) const |
Get set of transitions that are active at current (untimed) state. | |
bool | ExecuteTime (tpTime::Type time) |
Let time pass. | |
bool | ExecuteEvent (Idx event) |
Execute transition. | |
bool | CurrentTimedState (const TimedState &tstate) |
Set timed state. | |
const TimedState & | CurrentTimedState (void) const |
Get timed state. | |
bool | CurrentState (Idx index) |
Set discrete state. | |
Idx | CurrentState (void) const |
Get discrete state. | |
bool | CurrentClockValue (Idx clock, tpTime::Type time) |
Set value of clock variable. | |
tpTime::Type | CurrentClockValue (Idx clock) const |
Get value of clock. | |
void | CurrentTime (tpTime::Type time) |
Set current time. | |
tpTime::Type | CurrentTime (void) const |
Get current time. | |
void | CurrentStep (int step) |
Set logic time (# of steps). | |
int | CurrentStep (void) const |
Get logic time ie numer of transitions so far. | |
bool | IsDeadlocked () const |
Returns true if timed generator is in a deadlocked state. | |
virtual bool | Valid (void) const |
Check if Executor is valid. | |
std::string | CurrentTimedStateStr (void) const |
Pretty printable string of current state. | |
std::string | TSStr (const TimedState &tstate) const |
Pretty printable string of timed state. | |
std::string | TEStr (const TimedEvent &tevent) const |
Pretty printable string of timed event. | |
std::string | CStr (Idx idx) const |
Pretty printable string of clock name. | |
std::string | EStr (Idx idx) const |
Pretty printable string of event. | |
std::string | SStr (Idx idx) const |
Pretty printable string of state. | |
Private Member Functions | |
void | Compile (void) |
Prepare internal data structurs from generator. | |
void | ComputeEnabled (void) const |
Compute enabled events and enabled interval (fake const). | |
void | ComputeEnabledNonConst (void) |
Compute enabled core routine (non const). | |
Private Attributes | |
TimedState | mCurrentTimedState |
Current state incl clock values. | |
tpTime::Type | mCurrentTime |
Current clock time. | |
int | mCurrentStep |
Current logic time. | |
TimeInterval | mETime |
Record enabled time. | |
EventSet | mEEvents |
Record enabled events. | |
TimeInterval | mEInterval |
Record rime on shich mEEvents is constant. | |
std::map< Idx, TimeInterval > | mEGuardInterval |
Record interval in which each guard is enabled. | |
EventSet | mDEvents |
Record disabled events. | |
EventSet | mAEvents |
Record active events (ie regardles time). | |
TransSet | mATrans |
Record active transitions (regardles time). | |
bool | mEValid |
Validity flag for the above data. | |
std::map< Transition, std::map < Idx, TimeInterval > > | mTransClockIntervalMap |
Compiled generator data: map transition to clock to interval constraint. | |
std::map< Idx, std::map< Idx, TimeInterval > > | mStateClockIntervalMap |
Compiled generator data: map state to clock to interval constraint. | |
Classes | |
struct | TimedState |
Typedef for timed state. More... |
faudes::Executor::Executor | ( | void | ) |
Creates an emtpy Executer.
faudes::Executor::Executor | ( | const tGenerator & | rGen | ) |
Construct from tgenerator.
Construction from a tGenerator will copy all given tGenerator data and complie it to some additional Executor specific data. Thus, if the original tGenerator changes the Executor will not reflect these changes.
rGen | Input generator |
Exception |
|
faudes::Executor::Executor | ( | const std::string & | rFileName | ) |
Construct from tGenerator file.
rFileName | File to read |
Exception |
|
void faudes::Executor::Read | ( | const std::string & | rFileName | ) |
Read tGenerator file.
rFileName | File to read |
Exception |
|
void faudes::Executor::Read | ( | TokenReader & | rTr | ) |
Read form tokenreader.
rTr | tokenreader |
Exception |
|
void faudes::Executor::Write | ( | TokenWriter & | rTw | ) | const [inline] |
void faudes::Executor::Write | ( | const std::string & | rFileName, | |
std::ios::openmode | openmode = std::ios::out|std::ios::trunc | |||
) | [inline] |
Write to file.
rFileName | File to write | |
openmode | ios::openmode |
Exception |
|
void faudes::Executor::Generator | ( | const tGenerator & | rGen | ) |
Initialise from tGenerator.
rGen | Input generator |
const tGenerator & faudes::Executor::Generator | ( | void | ) | const |
Reference to the internal generator for inspection.
std::string faudes::Executor::Name | ( | void | ) | const [inline] |
std::string faudes::Executor::StateName | ( | Idx | idx | ) | const [inline] |
std::string faudes::Executor::EventName | ( | Idx | idx | ) | const [inline] |
void faudes::Executor::Clear | ( | void | ) | [virtual] |
Clear all data incl tGenerator.
Reimplemented from faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >.
void faudes::Executor::Reset | ( | void | ) |
Reset all clocks and assign initial state.
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.
const EventSet & faudes::Executor::EnabledEvents | ( | void | ) | const |
Get set of events that are enabled at current (timed) state.
const EventSet & faudes::Executor::DisabledEvents | ( | void | ) | const |
Get set of events that are disabled at current (timed) state.
const TimeInterval & faudes::Executor::EnabledInterval | ( | void | ) | const |
TimeInterval faudes::Executor::EnabledEventTime | ( | Idx | event | ) | const |
Get interval on which an active event is enabled.
event | Active event |
TimeInterval faudes::Executor::EnabledGuardTime | ( | Idx | event | ) | const |
Get interval on which an active event satisfies its guard.
event | Active event |
const EventSet & faudes::Executor::ActiveEventSet | ( | void | ) | const |
Get set of events that are active at current (untimed) state.
const TransSet & faudes::Executor::ActiveTransSet | ( | void | ) | const |
Get set of transitions that are active at current (untimed) state.
bool faudes::Executor::ExecuteTime | ( | tpTime::Type | time | ) |
Let time pass.
Returns false if the specified amount of time cannot elapse without an event being executed
time | Amount of time that shall elapse. |
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
event | Indicate transition to execute |
bool faudes::Executor::CurrentTimedState | ( | const TimedState & | tstate | ) |
Set timed state.
Returns false if state or clock values are invalid.
tstate | State to set. |
const Executor::TimedState & faudes::Executor::CurrentTimedState | ( | void | ) | const |
Get timed state.
bool faudes::Executor::CurrentState | ( | Idx | index | ) |
Set discrete state.
Returns false if state is not in state set.
index | State index |
Idx faudes::Executor::CurrentState | ( | void | ) | const |
Get discrete state.
bool faudes::Executor::CurrentClockValue | ( | Idx | clock, | |
tpTime::Type | time | |||
) |
Set value of clock variable.
Returns false if clock not in clockset.
clock | Index of clock variable to set | |
time | Time to set |
tpTime::Type faudes::Executor::CurrentClockValue | ( | Idx | clock | ) | const |
Get value of clock.
clock | Index of clock variable |
void faudes::Executor::CurrentTime | ( | tpTime::Type | time | ) |
Set current time.
time | New current time |
tpTime::Type faudes::Executor::CurrentTime | ( | void | ) | const |
Get current time.
void faudes::Executor::CurrentStep | ( | int | step | ) |
Set logic time (# of steps).
step | New logic time |
int faudes::Executor::CurrentStep | ( | void | ) | const |
Get logic time ie numer of transitions so far.
bool faudes::Executor::IsDeadlocked | ( | void | ) | const |
Returns true if timed generator is in a deadlocked state.
virtual bool faudes::Executor::Valid | ( | void | ) | const [inline, virtual] |
Check if Executor is valid.
Not implemented, should check for determinism and consitency of current state and clock values.
std::string faudes::Executor::CurrentTimedStateStr | ( | void | ) | const |
Pretty printable string of current state.
std::string faudes::Executor::TSStr | ( | const TimedState & | tstate | ) | const |
Pretty printable string of timed state.
std::string faudes::Executor::TEStr | ( | const TimedEvent & | tevent | ) | const |
Pretty printable string of timed event.
std::string faudes::Executor::CStr | ( | Idx | idx | ) | const |
Pretty printable string of clock name.
Reimplemented from faudes::TtGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >.
std::string faudes::Executor::EStr | ( | Idx | idx | ) | const |
std::string faudes::Executor::SStr | ( | Idx | idx | ) | const |
void faudes::Executor::Compile | ( | void | ) | [private] |
Prepare internal data structurs from generator.
void faudes::Executor::ComputeEnabled | ( | void | ) | const [private] |
Compute enabled events and enabled interval (fake const).
void faudes::Executor::ComputeEnabledNonConst | ( | void | ) | [private] |
Compute enabled core routine (non const).
Current state incl clock values.
tpTime::Type faudes::Executor::mCurrentTime [private] |
Current clock time.
int faudes::Executor::mCurrentStep [private] |
Current logic time.
TimeInterval faudes::Executor::mETime [private] |
Record enabled time.
EventSet faudes::Executor::mEEvents [private] |
Record enabled events.
TimeInterval faudes::Executor::mEInterval [private] |
Record rime on shich mEEvents is constant.
std::map<Idx,TimeInterval> faudes::Executor::mEGuardInterval [private] |
Record interval in which each guard is enabled.
EventSet faudes::Executor::mDEvents [private] |
Record disabled events.
EventSet faudes::Executor::mAEvents [private] |
Record active events (ie regardles time).
TransSet faudes::Executor::mATrans [private] |
Record active transitions (regardles time).
bool faudes::Executor::mEValid [private] |
Validity flag for the above data.
std::map<Transition, std::map<Idx,TimeInterval> > faudes::Executor::mTransClockIntervalMap [private] |
Compiled generator data: map transition to clock to interval constraint.
std::map<Idx, std::map<Idx,TimeInterval> > faudes::Executor::mStateClockIntervalMap [private] |
Compiled generator data: map state to clock to interval constraint.
libFAUDES 2.13a c++ source docu by doxygen 1.5.6