#include <sp_lpexecutor.h>
Inheritance diagram for faudes::LoggingExecutor:
Technical detail: since the trace buffer only covers the dynamic state of the parallel executor, the RevertToStep method cannot recover the condition status. Including stochastic states with the trace buffer is considered to expensive.
<Executor> <Generators> "./some_generator.gen" "./other_generator.gen" </Generators> <Conditions> ... ... </Conditions> </Executor>
Definition at line 71 of file sp_lpexecutor.h.
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. | |
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. | |
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 physical time. | |
void | CurrentTime (tpTime::Type time) |
Set physical 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.
Definition at line 270 of file sp_lpexecutor.h. |
|
Access buffer: iterator.
Definition at line 335 of file sp_lpexecutor.h. |
|
Logging mode flags, to specify what data to log.
Definition at line 293 of file sp_lpexecutor.h. |
|
Construct an emtpy LoggingExecuter.
Definition at line 19 of file sp_lpexecutor.cpp. |
|
Construct from file. See ParallelExecutor::Insert(const std::string& rFileName) for details.
Definition at line 27 of file sp_lpexecutor.cpp. |
|
Explicit destructor.
Definition at line 35 of file sp_lpexecutor.cpp. |
|
Simulation state: true if some break condition is currently satisfied.
Definition at line 279 of file sp_lpexecutor.h. |
|
Clear all data. 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. Definition at line 67 of file sp_lpexecutor.cpp. |
|
Remove a condition by index.
Definition at line 241 of file sp_lpexecutor.cpp. |
|
Remove a condition by name.
Definition at line 235 of file sp_lpexecutor.cpp. |
|
Compile internal data (all).
Reimplemented from faudes::ParallelExecutor. Definition at line 41 of file sp_lpexecutor.cpp. |
|
Compile condition internal data.
Definition at line 269 of file sp_lpexecutor.cpp. |
|
Read-only access to a simulation condition by index.
Definition at line 203 of file sp_lpexecutor.cpp. |
|
Read-only access to a simulation condition by name.
Definition at line 198 of file sp_lpexecutor.cpp. |
|
Set all simulation conditions.
Definition at line 192 of file sp_lpexecutor.cpp. |
|
Read-only access to simulation conditions.
Definition at line 187 of file sp_lpexecutor.cpp. |
|
Condition iterator: begin.
Definition at line 259 of file sp_lpexecutor.cpp. |
|
Condition iterator: end.
Definition at line 264 of file sp_lpexecutor.cpp. |
|
Process condition hook.
Definition at line 297 of file sp_lpexecutor.cpp. |
|
Read conditions from labled section.
Definition at line 252 of file sp_lpexecutor.cpp. |
|
Reset condition simulation state.
Definition at line 290 of file sp_lpexecutor.cpp. |
|
Write conditions so labled section.
Definition at line 247 of file sp_lpexecutor.cpp. |
|
Get current state of the ParallelExecutor.
Reimplemented from faudes::ParallelExecutor. Definition at line 226 of file sp_lpexecutor.h. |
|
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.
Definition at line 174 of file sp_lpexecutor.cpp. |
|
Set logical time (# of steps). This does not affect clocks and, hence, is purely cosmetic. Note that, in contrast to physical 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.
Reimplemented from faudes::ParallelExecutor. Definition at line 154 of file sp_lpexecutor.cpp. |
|
Get logical time, ie number of transitions so far,.
Reimplemented from faudes::ParallelExecutor. Definition at line 191 of file sp_lpexecutor.h. |
|
Set physical 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.
Reimplemented from faudes::ParallelExecutor. Definition at line 164 of file sp_lpexecutor.cpp. |
|
Get physical time.
Reimplemented from faudes::ParallelExecutor. Definition at line 174 of file sp_lpexecutor.h. |
|
Reads logging executor from TokenReader, see also public wrappers in faudes::Type.
Reimplemented from faudes::ParallelExecutor. Reimplemented in faudes::ProposingExecutor. Definition at line 90 of file sp_lpexecutor.cpp. |
|
Write to TokenWriter, see also public wrappers in faudes::Type.
Reimplemented from faudes::ParallelExecutor. Reimplemented in faudes::ProposingExecutor. Definition at line 79 of file sp_lpexecutor.cpp. |
|
Execute transition. Returns false if the transition cannot be executed at the current time.
Reimplemented from faudes::ParallelExecutor. Reimplemented in faudes::DeviceExecutor, and faudes::ProposingExecutor. Definition at line 136 of file sp_lpexecutor.cpp. |
|
Let time pass without executing a transition. Return false if the specified duration cannot elapse without an event being executed.
Reimplemented from faudes::ParallelExecutor. Reimplemented in faudes::ProposingExecutor. Definition at line 124 of file sp_lpexecutor.cpp. |
|
Stop logging.
Definition at line 395 of file sp_lpexecutor.cpp. |
|
Start logging to file.
Definition at line 386 of file sp_lpexecutor.cpp. |
|
Start logging to TokenWriter.
Definition at line 369 of file sp_lpexecutor.cpp. |
|
Logging hook: dump recent event.
Definition at line 445 of file sp_lpexecutor.cpp. |
|
Logging hook: halt simulation.
Definition at line 471 of file sp_lpexecutor.cpp. |
|
Logging hook: continue simulation.
Definition at line 483 of file sp_lpexecutor.cpp. |
|
Logging hook: dump current state.
Definition at line 435 of file sp_lpexecutor.cpp. |
|
Logging hook: dump statistics.
Definition at line 414 of file sp_lpexecutor.cpp. |
|
Logging hook: dump current time.
Definition at line 458 of file sp_lpexecutor.cpp. |
|
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. Definition at line 51 of file sp_lpexecutor.cpp. |
|
Revert executors state to past step from buffer.
Reimplemented in faudes::ProposingExecutor. Definition at line 623 of file sp_lpexecutor.cpp. |
|
Set a condition by index.
Definition at line 229 of file sp_lpexecutor.cpp. |
|
Set (or add) a condition by name.
Definition at line 222 of file sp_lpexecutor.cpp. |
|
Trace: helper, append one void sample.
Definition at line 546 of file sp_lpexecutor.cpp. |
|
Access buffer: sample by step.
Definition at line 517 of file sp_lpexecutor.cpp. |
|
Access buffer: sample by faudes time (returns first sample).
Definition at line 525 of file sp_lpexecutor.cpp. |
|
Condition iterator: begin.
Definition at line 507 of file sp_lpexecutor.cpp. |
|
Clear buffer and set max buffer.
Definition at line 491 of file sp_lpexecutor.cpp. |
|
Access buffer: current sample.
Definition at line 534 of file sp_lpexecutor.cpp. |
|
Condition iterator: end.
Definition at line 512 of file sp_lpexecutor.cpp. |
|
Access buffer: current length.
|
|
Access buffer: recent sample.
Definition at line 540 of file sp_lpexecutor.cpp. |
|
Access buffer: convert to string.
Definition at line 616 of file sp_lpexecutor.cpp. |
|
Trace: append sample (if necessary) and update to current time.
Definition at line 579 of file sp_lpexecutor.cpp. |
|
Trace: append sample (if necessary) and update to current state via given event.
Definition at line 567 of file sp_lpexecutor.cpp. |
|
Access buffer: console output (list all).
Definition at line 609 of file sp_lpexecutor.cpp. |
|
Access buffer: console output.
Definition at line 603 of file sp_lpexecutor.cpp. |
|
Access buffer: tokenwriter output.
Definition at line 590 of file sp_lpexecutor.cpp. |
|
Check validity of executors. This is currently not implemented. It should include tests on the state based conditions.
Reimplemented from faudes::ParallelExecutor. Definition at line 142 of file sp_lpexecutor.h. |
|
Indicate break.
Definition at line 388 of file sp_lpexecutor.h. |
|
Simulation conditions.
Definition at line 382 of file sp_lpexecutor.h. |
|
Enabled simulation conditions.
Definition at line 385 of file sp_lpexecutor.h. |
|
Logging: file name.
Definition at line 403 of file sp_lpexecutor.h. |
|
Logging: mode.
Definition at line 406 of file sp_lpexecutor.h. |
|
Trace data: fifo buffer.
Definition at line 433 of file sp_lpexecutor.h. |
|
Trace data: step no of first sample.
Definition at line 430 of file sp_lpexecutor.h. |
|
Trace data: max fifo length.
Definition at line 427 of file sp_lpexecutor.h. |
|
Trace data: time to step mapping (first step).
Definition at line 436 of file sp_lpexecutor.h. |
|
Logging: tokenwriter ref.
Definition at line 400 of file sp_lpexecutor.h. |