| |
libFAUDES
Sections
Index
|
faudes::LoggingExecutor Class Reference |
Logging to Token I/O | |
enum | LogMode { Statistics = 0x01, States = 0x02, Events = 0x04, Time = 0x08 } |
Logging mode flags, to specify what data to log. More... | |
void | LogOpen (TokenWriter &rTw, int mode) |
Start logging to TokenWriter. | |
void | LogOpen (const std::string &rFileName, int logmode, std::ios::openmode openmode=std::ios::out|std::ios::trunc) |
Start logging to file. | |
void | LogClose (void) |
Stop logging. | |
Simulation Conditions | |
typedef SimConditionSet::Iterator | ConditionIterator |
Condition iterator: typedef. | |
const SimConditionSet & | Conditions (void) const |
Read-only access to simulation conditions. | |
void | Conditions (const SimConditionSet &) |
Set all simulation conditions. | |
const SimConditionAttribute & | Condition (const std::string &rName) const |
Read-only access to a simulation condition by name. | |
const SimConditionAttribute & | Condition (Idx cond) const |
Read-only access to a simulation condition by index. | |
Idx | SetCondition (const std::string &rName, const SimConditionAttribute &rCondition) |
Set (or add) a condition by name. | |
void | SetCondition (Idx cond, const SimConditionAttribute &rCondition) |
Set a condition by index. | |
void | ClrCondition (const std::string &rName) |
Remove a condition by name. | |
void | ClrCondition (Idx cond) |
Remove a condition by index. | |
void | ConditionsWrite (TokenWriter &rTw, const std::string &rLabel="SimConditions") const |
Write conditions so labled section. | |
void | ConditionsRead (TokenReader &rTr, const std::string &rLabel="SimConditions") |
Read conditions from labled section. | |
ConditionIterator | ConditionsBegin (void) const |
Condition iterator: begin. | |
ConditionIterator | ConditionsEnd (void) const |
Condition iterator: end. | |
bool | BreakCondition (void) const |
Simulation state: true if some break condition is currently satisfied. | |
Trace to FIFO buffer | |
typedef std::deque < TraceSample > ::const_iterator | TraceIterator |
Access buffer: iterator. | |
void | TraceClear (int length=-2) |
Clear buffer and set max buffer. | |
int | TraceLength (void) const |
Access buffer: current length. | |
TraceIterator | TraceBegin (void) const |
Condition iterator: begin. | |
TraceIterator | TraceEnd (void) const |
Condition iterator: end. | |
const TraceSample * | TraceAtTime (tpTime::Type time) const |
Access buffer: sample by faudes time (returns first sample). | |
const TraceSample * | TraceAtStep (int step) const |
Access buffer: sample by step. | |
const TraceSample * | TraceRecent (void) const |
Access buffer: recent sample. | |
const TraceSample * | TraceCurrent (void) const |
Access buffer: current sample. | |
void | TraceWrite (TokenWriter &rTw, const TraceSample &sample) const |
Access buffer: tokenwriter output. | |
void | TraceWrite (const TraceSample &sample) const |
Access buffer: console output. | |
std::string | TraceToString (const TraceSample &sample) const |
Access buffer: convert to string. | |
void | TraceWrite (void) const |
Access buffer: console output (list all). | |
virtual bool | RevertToStep (Idx step) |
Revert executors state to past step from buffer. | |
Public Member Functions | |
Constructors & Destructor | |
LoggingExecutor (void) | |
Construct an emtpy LoggingExecuter. | |
LoggingExecutor (const std::string &rFileName) | |
Construct from file. | |
virtual | ~LoggingExecutor (void) |
Explicit destructor. | |
Re-implemenented from ParallelExecutor | |
virtual void | Clear (void) |
Clear all data. | |
virtual void | Reset (void) |
Goto initial state. | |
virtual bool | Valid (void) const |
Check validity of executors. | |
virtual bool | ExecuteTime (tpTime::Type duration) |
Let time pass without executing a transition. | |
virtual bool | ExecuteEvent (Idx event) |
Execute transition. | |
tpTime::Type | CurrentTime (void) const |
Get clock time. | |
void | CurrentTime (tpTime::Type time) |
Set clock time. | |
int | CurrentStep (void) const |
Get logical time, ie number of transitions so far,. | |
void | CurrentStep (int step) |
Set logical time (# of steps). | |
bool | CurrentParallelTimedState (const ParallelTimedState &ptstate) |
Set current state of the ParallelExecutor. | |
const ParallelTimedState & | CurrentParallelTimedState (void) const |
Get current state of the ParallelExecutor. | |
Protected Member Functions | |
virtual void | Compile () |
Compile internal data (all). | |
Private Member Functions | |
void | CompileConditions (void) |
Compile condition internal data. | |
void | ConditionsReset (void) |
Reset condition simulation state. | |
void | ConditionsProcess (void) |
Process condition hook. | |
void | LogWriteStatistics (void) |
Logging hook: dump statistics. | |
void | LogWriteState (void) |
Logging hook: dump current state. | |
void | LogWriteEvent (void) |
Logging hook: dump recent event. | |
void | LogWriteTime (void) |
Logging hook: dump current time. | |
void | LogWritePause (void) |
Logging hook: halt simulation. | |
void | LogWriteResume (void) |
Logging hook: continue simulation. | |
void | TraceAddSample (void) |
Trace: helper, append one void sample. | |
void | TraceUpdateTime (void) |
Trace: append sample (if necessary) and update to current time. | |
void | TraceUpdateTransition (Idx event) |
Trace: append sample (if necessary) and update to current state via given event. | |
virtual void | DoRead (TokenReader &rTr, const std::string &rLabel="", const Type *pContext=0) |
Reads logging executor from TokenReader, see also public wrappers in faudes::Type. | |
virtual void | DoWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const |
Write to TokenWriter, see also public wrappers in faudes::Type. | |
Private Attributes | |
SimConditionSet | mConditions |
Simulation conditions. | |
std::vector < SimConditionAttribute * > | mEnabledConditions |
Enabled simulation conditions. | |
bool | mBreakCondition |
Indicate break. | |
TokenWriter * | pLogTokenWriter |
Logging: tokenwriter ref. | |
std::string | mLogFile |
Logging: file name. | |
int | mLogMode |
Logging: mode. | |
int | mTraceMax |
Trace data: max fifo length. | |
int | mTraceFirstStep |
Trace data: step no of first sample. | |
std::deque< TraceSample > | mTraceBuffer |
Trace data: fifo buffer. | |
std::map< tpTime::Type, int > | mTraceTimeToStep |
Trace data: time to step mapping (first step). | |
Classes | |
struct | TraceSample |
Buffer data entry. More... |
Condition iterator: typedef.
typedef std::deque<TraceSample>::const_iterator faudes::LoggingExecutor::TraceIterator |
Access buffer: iterator.
faudes::LoggingExecutor::LoggingExecutor | ( | void | ) |
Construct an emtpy LoggingExecuter.
doxygen group
faudes::LoggingExecutor::LoggingExecutor | ( | const std::string & | rFileName | ) |
Construct from file.
See ParallelExecutor::Insert(const std::string& rFileName) for details.
rFileName | Filename |
Exception |
|
faudes::LoggingExecutor::~LoggingExecutor | ( | void | ) | [virtual] |
Explicit destructor.
void faudes::LoggingExecutor::Clear | ( | void | ) | [virtual] |
Clear all data.
doxygen group Removes all generators/executors, all conditions, and resets the current state to a void value.
Reimplemented from faudes::ParallelExecutor.
Reimplemented in faudes::DeviceExecutor, and faudes::ProposingExecutor.
void faudes::LoggingExecutor::Reset | ( | void | ) | [virtual] |
Goto initial state.
Reset all clock values to zero, assign initial states to each executor, reset condition states to not-satisfied, invalidate timing samples.
Reimplemented from faudes::ParallelExecutor.
virtual bool faudes::LoggingExecutor::Valid | ( | void | ) | const [inline, virtual] |
Check validity of executors.
This is currently not implemented. It should include tests on the state based conditions.
Reimplemented from faudes::ParallelExecutor.
bool faudes::LoggingExecutor::ExecuteTime | ( | tpTime::Type | duration | ) | [virtual] |
Let time pass without executing a transition.
Return false if the specified duration cannot elapse without an event being executed.
duration | Amount of time that shall elapse. |
Reimplemented from faudes::ParallelExecutor.
Reimplemented in faudes::ProposingExecutor.
bool faudes::LoggingExecutor::ExecuteEvent | ( | Idx | event | ) | [virtual] |
Execute transition.
Returns false if the transition cannot be executed at the current time.
event | Indicate transition to execute |
Reimplemented from faudes::ParallelExecutor.
Reimplemented in faudes::DeviceExecutor, and faudes::ProposingExecutor.
tpTime::Type faudes::LoggingExecutor::CurrentTime | ( | void | ) | const [inline] |
void faudes::LoggingExecutor::CurrentTime | ( | tpTime::Type | time | ) | [virtual] |
Set clock time.
This does not affect clocks and, hence, is purely cosmetic. The trace buffer is cleared. You should pause/resume logging befor/after interfering with the executors state.
time | New clock time |
Reimplemented from faudes::ParallelExecutor.
int faudes::LoggingExecutor::CurrentStep | ( | void | ) | const [inline] |
void faudes::LoggingExecutor::CurrentStep | ( | int | step | ) | [virtual] |
Set logical time (# of steps).
This does not affect clocks and, hence, is purely cosmetic. Note that, in contrast to clock time, the individual generators do not agree in logical time. The trace buffer is cleared. You should pause/resume logging befor/after interfering with the executors state.
step | New logical time |
Reimplemented from faudes::ParallelExecutor.
bool faudes::LoggingExecutor::CurrentParallelTimedState | ( | const ParallelTimedState & | ptstate | ) | [virtual] |
Set current state of the ParallelExecutor.
This resets the parallel executor to the given state, incl clock values. The trace buffer is cleared. You should pause/resume logging befor/after interfering with the executors state.
Reimplemented from faudes::ParallelExecutor.
const ParallelTimedState& faudes::LoggingExecutor::CurrentParallelTimedState | ( | void | ) | const [inline] |
Get current state of the ParallelExecutor.
Reimplemented from faudes::ParallelExecutor.
const SimConditionSet & faudes::LoggingExecutor::Conditions | ( | void | ) | const |
Read-only access to simulation conditions.
doxygen group
void faudes::LoggingExecutor::Conditions | ( | const SimConditionSet & | rConditions | ) |
Set all simulation conditions.
const SimConditionAttribute & faudes::LoggingExecutor::Condition | ( | const std::string & | rName | ) | const |
Read-only access to a simulation condition by name.
const SimConditionAttribute & faudes::LoggingExecutor::Condition | ( | Idx | cond | ) | const |
Read-only access to a simulation condition by index.
Idx faudes::LoggingExecutor::SetCondition | ( | const std::string & | rName, | |
const SimConditionAttribute & | rCondition | |||
) |
Set (or add) a condition by name.
void faudes::LoggingExecutor::SetCondition | ( | Idx | cond, | |
const SimConditionAttribute & | rCondition | |||
) |
Set a condition by index.
void faudes::LoggingExecutor::ClrCondition | ( | const std::string & | rName | ) |
Remove a condition by name.
void faudes::LoggingExecutor::ClrCondition | ( | Idx | cond | ) |
Remove a condition by index.
void faudes::LoggingExecutor::ConditionsWrite | ( | TokenWriter & | rTw, | |
const std::string & | rLabel = "SimConditions" | |||
) | const |
Write conditions so labled section.
void faudes::LoggingExecutor::ConditionsRead | ( | TokenReader & | rTr, | |
const std::string & | rLabel = "SimConditions" | |||
) |
Read conditions from labled section.
LoggingExecutor::ConditionIterator faudes::LoggingExecutor::ConditionsBegin | ( | void | ) | const |
Condition iterator: begin.
LoggingExecutor::ConditionIterator faudes::LoggingExecutor::ConditionsEnd | ( | void | ) | const |
Condition iterator: end.
bool faudes::LoggingExecutor::BreakCondition | ( | void | ) | const [inline] |
Simulation state: true if some break condition is currently satisfied.
void faudes::LoggingExecutor::LogOpen | ( | TokenWriter & | rTw, | |
int | mode | |||
) |
Start logging to TokenWriter.
void faudes::LoggingExecutor::LogOpen | ( | const std::string & | rFileName, | |
int | logmode, | |||
std::ios::openmode | openmode = std::ios::out|std::ios::trunc | |||
) |
Start logging to file.
void faudes::LoggingExecutor::LogClose | ( | void | ) |
Stop logging.
void faudes::LoggingExecutor::TraceClear | ( | int | length = -2 |
) |
Clear buffer and set max buffer.
doxygen group
length | Max length of buffet, or: -2 <> keep length, -1<>infinite, 0<> no buffer |
int faudes::LoggingExecutor::TraceLength | ( | void | ) | const |
Access buffer: current length.
LoggingExecutor::TraceIterator faudes::LoggingExecutor::TraceBegin | ( | void | ) | const |
Condition iterator: begin.
LoggingExecutor::TraceIterator faudes::LoggingExecutor::TraceEnd | ( | void | ) | const |
Condition iterator: end.
const LoggingExecutor::TraceSample * faudes::LoggingExecutor::TraceAtTime | ( | tpTime::Type | time | ) | const |
Access buffer: sample by faudes time (returns first sample).
const LoggingExecutor::TraceSample * faudes::LoggingExecutor::TraceAtStep | ( | int | step | ) | const |
Access buffer: sample by step.
const LoggingExecutor::TraceSample * faudes::LoggingExecutor::TraceRecent | ( | void | ) | const |
Access buffer: recent sample.
const LoggingExecutor::TraceSample * faudes::LoggingExecutor::TraceCurrent | ( | void | ) | const |
Access buffer: current sample.
void faudes::LoggingExecutor::TraceWrite | ( | TokenWriter & | rTw, | |
const TraceSample & | sample | |||
) | const |
Access buffer: tokenwriter output.
void faudes::LoggingExecutor::TraceWrite | ( | const TraceSample & | sample | ) | const |
Access buffer: console output.
std::string faudes::LoggingExecutor::TraceToString | ( | const TraceSample & | sample | ) | const |
Access buffer: convert to string.
void faudes::LoggingExecutor::TraceWrite | ( | void | ) | const |
Access buffer: console output (list all).
bool faudes::LoggingExecutor::RevertToStep | ( | Idx | step | ) | [virtual] |
void faudes::LoggingExecutor::Compile | ( | void | ) | [protected, virtual] |
void faudes::LoggingExecutor::CompileConditions | ( | void | ) | [private] |
Compile condition internal data.
void faudes::LoggingExecutor::ConditionsReset | ( | void | ) | [private] |
Reset condition simulation state.
void faudes::LoggingExecutor::ConditionsProcess | ( | void | ) | [private] |
Process condition hook.
void faudes::LoggingExecutor::LogWriteStatistics | ( | void | ) | [private] |
Logging hook: dump statistics.
void faudes::LoggingExecutor::LogWriteState | ( | void | ) | [private] |
Logging hook: dump current state.
void faudes::LoggingExecutor::LogWriteEvent | ( | void | ) | [private] |
Logging hook: dump recent event.
void faudes::LoggingExecutor::LogWriteTime | ( | void | ) | [private] |
Logging hook: dump current time.
void faudes::LoggingExecutor::LogWritePause | ( | void | ) | [private] |
Logging hook: halt simulation.
void faudes::LoggingExecutor::LogWriteResume | ( | void | ) | [private] |
Logging hook: continue simulation.
void faudes::LoggingExecutor::TraceAddSample | ( | void | ) | [private] |
Trace: helper, append one void sample.
void faudes::LoggingExecutor::TraceUpdateTime | ( | void | ) | [private] |
Trace: append sample (if necessary) and update to current time.
void faudes::LoggingExecutor::TraceUpdateTransition | ( | Idx | event | ) | [private] |
Trace: append sample (if necessary) and update to current state via given event.
void faudes::LoggingExecutor::DoRead | ( | TokenReader & | rTr, | |
const std::string & | rLabel = "" , |
|||
const Type * | pContext = 0 | |||
) | [private, virtual] |
Reads logging executor from TokenReader, see also public wrappers in faudes::Type.
rTr | TokenReader to read from | |
rLabel | Section to read, defaults to "Executor" | |
pContext | Read context to provide contextual information (ignored) |
Exception |
|
Reimplemented from faudes::ParallelExecutor.
Reimplemented in faudes::ProposingExecutor.
void faudes::LoggingExecutor::DoWrite | ( | TokenWriter & | rTw, | |
const std::string & | rLabel = "" , |
|||
const Type * | pContext = 0 | |||
) | const [private, virtual] |
Write to TokenWriter, see also public wrappers in faudes::Type.
rTw | Reference to TokenWriter | |
rLabel | Label of section to write, defaults to "Executor" | |
pContext | Write context to provide contextual information (ignored) |
Exception |
|
Reimplemented from faudes::ParallelExecutor.
Reimplemented in faudes::ProposingExecutor.
Simulation conditions.
std::vector<SimConditionAttribute*> faudes::LoggingExecutor::mEnabledConditions [private] |
Enabled simulation conditions.
bool faudes::LoggingExecutor::mBreakCondition [private] |
Indicate break.
Logging: tokenwriter ref.
std::string faudes::LoggingExecutor::mLogFile [private] |
Logging: file name.
int faudes::LoggingExecutor::mLogMode [private] |
Logging: mode.
int faudes::LoggingExecutor::mTraceMax [private] |
Trace data: max fifo length.
int faudes::LoggingExecutor::mTraceFirstStep [private] |
Trace data: step no of first sample.
std::deque<TraceSample> faudes::LoggingExecutor::mTraceBuffer [private] |
Trace data: fifo buffer.
std::map<tpTime::Type,int> faudes::LoggingExecutor::mTraceTimeToStep [private] |
Trace data: time to step mapping (first step).
libFAUDES 2.13a c++ source docu by doxygen 1.5.6