#include <sp_lpexecutor.h>

Classes

struct  TraceSample
 

Public Member Functions

Constructors & Destructor
 LoggingExecutor (void)
 
 LoggingExecutor (const LoggingExecutor &rOther)
 
 LoggingExecutor (const std::string &rFileName)
 
virtual ~LoggingExecutor (void)
 
Re-implemenented from ParallelExecutor
virtual void Clear (void)
 
virtual void Reset (void)
 
virtual bool Valid (void) const
 
virtual bool ExecuteTime (Time::Type duration)
 
virtual bool ExecuteEvent (Idx event)
 
Time::Type CurrentTime (void) const
 
void CurrentTime (Time::Type time)
 
int CurrentStep (void) const
 
void CurrentStep (int step)
 
bool CurrentParallelTimedState (const ParallelTimedState &ptstate)
 
const ParallelTimedStateCurrentParallelTimedState (void) const
 
- Public Member Functions inherited from faudes::ParallelExecutor
 ParallelExecutor (void)
 
 ParallelExecutor (const ParallelExecutor &rOther)
 
 ParallelExecutor (const std::string &rFileName)
 
virtual ~ParallelExecutor (void)
 
Idx Size (void) const
 
void Insert (const std::string &rFileName)
 
void Insert (const TimedGenerator &rGen)
 
const EventSetAlphabet (void) const
 
Iterator Begin (void) const
 
Iterator End (void) const
 
const ExecutorAt (int i) const
 
Idx EventIndex (const std::string &rName) const
 
std::string EventName (Idx index) const
 
Time::Type CurrentTime (void) const
 
int CurrentStep (void) const
 
bool IsDeadlocked () const
 
const ParallelTimedStateCurrentParallelTimedState (void) const
 
const ParallelStateCurrentParallelState (void) const
 
const TimeIntervalEnabledTime () const
 
const EventSetEnabledEvents () const
 
const EventSetDisabledEvents () const
 
const TimeIntervalEnabledInterval () const
 
TimeInterval EnabledEventTime (Idx event) const
 
TimeInterval EnabledGuardTime (Idx event) const
 
EventSet ActiveEventSet (const ParallelState &stateVec) const
 
bool Active (Idx ev, const ParallelState &stateVec) const
 
bool Active (Idx ev) const
 
std::string PTSStr (const ParallelTimedState &ptstate) const
 
std::string PSStr (const ParallelState &pstate) const
 
std::string TEStr (const TimedEvent &tevent) const
 
std::string CStr (Idx clock) const
 
std::string EStr (Idx event) const
 
std::string CurrentParallelTimedStateStr (void) const
 
std::string CurrentParallelStateStr (void) const
 
void ComputeEnabled (void) const
 
void ComputeEnabledNonConst (void)
 
- Public Member Functions inherited from faudes::Type
 Type (void)
 
 Type (const Type &rType)
 
virtual ~Type (void)
 
virtual TypeNew (void) const
 
virtual TypeCopy (void) const
 
virtual const TypeCast (const Type *pOther) const
 
virtual TypeAssign (const Type &rSrc)
 
Typeoperator= (const Type &rSrc)
 
virtual bool Equal (const Type &rOther) const
 
bool operator== (const Type &rOther) const
 
bool operator!= (const Type &rOther) const
 
virtual void Name (const std::string &rName)
 
virtual const std::string & Name (void) 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)
 

Protected Member Functions

virtual void Compile ()
 
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
 
void DoAssign (const LoggingExecutor &rSrc)
 
- Protected Member Functions inherited from faudes::ParallelExecutor
virtual void DoReadGenerators (TokenReader &rTr)
 
virtual void DoWriteGenerators (TokenWriter &rTw) const
 
void DoAssign (const ParallelExecutor &rSrc)
 
- Protected Member Functions inherited from faudes::Type
void DoAssign (const Type &rSrc)
 
bool DoEqual (const Type &rOther) const
 
virtual void DoXWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 
virtual void DoDWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 
virtual void DoSWrite (TokenWriter &rTw) const
 
virtual const TypeDefinitionTypeDefinitionp (void) const
 
virtual Token XBeginTag (const std::string &rLabel="", const std::string &rFallbackLabel="") const
 

Private Member Functions

void CompileConditions (void)
 
void ConditionsReset (void)
 
void ConditionsProcess (void)
 
void LogWriteStatistics (void)
 
void LogWriteState (void)
 
void LogWriteEvent (void)
 
void LogWriteTime (void)
 
void LogWritePause (void)
 
void LogWriteResume (void)
 
void TraceAddSample (void)
 
void TraceUpdateTime (void)
 
void TraceUpdateTransition (Idx event)
 

Private Attributes

SimConditionSet mConditions
 
std::vector< AttributeSimCondition * > mEnabledConditions
 
bool mBreakCondition
 
TokenWriterpLogTokenWriter
 
std::string mLogFile
 
int mLogMode
 
int mTraceMax
 
int mTraceFirstStep
 
std::deque< TraceSamplemTraceBuffer
 
std::map< Time::Type, int > mTraceTimeToStep
 

Logging to Token I/O

enum  LogMode { LogStatistics =0x01 , LogStates =0x02 , LogEvents =0x04 , LogTime =0x08 }
 
void LogOpen (TokenWriter &rTw, int mode)
 
void LogOpen (const std::string &rFileName, int logmode, std::ios::openmode openmode=std::ios::out|std::ios::trunc)
 
void LogClose (void)
 

Simulation Conditions

typedef SimConditionSet::Iterator ConditionIterator
 
const SimConditionSetConditions (void) const
 
void Conditions (const SimConditionSet &)
 
const AttributeSimConditionCondition (const std::string &rName) const
 
const AttributeSimConditionCondition (Idx cond) const
 
Idx SetCondition (const std::string &rName, const AttributeSimCondition &rCondition)
 
void SetCondition (Idx cond, const AttributeSimCondition &rCondition)
 
void ClrCondition (const std::string &rName)
 
void ClrCondition (Idx cond)
 
void ConditionsWrite (TokenWriter &rTw, const std::string &rLabel="SimConditions") const
 
void ConditionsRead (TokenReader &rTr, const std::string &rLabel="SimConditions")
 
ConditionIterator ConditionsBegin (void) const
 
ConditionIterator ConditionsEnd (void) const
 
bool BreakCondition (void) const
 

Trace to FIFO buffer

typedef std::deque< TraceSample >::const_iterator TraceIterator
 
void TraceClear (int length=-2)
 
int TraceLength (void) const
 
TraceIterator TraceBegin (void) const
 
TraceIterator TraceEnd (void) const
 
const TraceSampleTraceAtTime (Time::Type time) const
 
const TraceSampleTraceAtStep (int step) const
 
const TraceSampleTraceFirst (void) const
 
const TraceSampleTraceRecent (void) const
 
const TraceSampleTraceCurrent (void) const
 
void TraceWrite (TokenWriter &rTw, const TraceSample &sample) const
 
void TraceWrite (const TraceSample &sample) const
 
std::string TraceToString (const TraceSample &sample) const
 
void TraceWrite (void) const
 
virtual bool RevertToStep (Idx step)
 

Additional Inherited Members

- Public Types inherited from faudes::ParallelExecutor
typedef std::vector< IdxParallelState
 
typedef std::vector< std::map< Idx, Time::Type > > ParallelClock
 
typedef Executor::TimedState TimedState
 
typedef std::vector< Executor >::const_iterator Iterator
 
- Protected Attributes inherited from faudes::ParallelExecutor
Idx mRecentEvent
 

Detailed Description

Executor with logging facilities.

Logging to Token IO

Logging destination in general is a TokenWriter, which may be initialised to a file or console output. Logging can be configured to include

  • the external behaviour (timed event sequence),
  • the internal behaviour (state sequence) and/or
  • timing statistics of conditions specified by AttributeSimCondition.

Logging to Internal FIFO Buffer

The state- and event-sequence can be logged to a internal FIFO Buffer. Methods to revert to a previous state are provided. This feature is meant to facilitate user interaction in simulator applications.

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.

File IO

For token IO, the LoggingExecutor reads and writes a section with default label "Executor". It contains a ParallelExecutor section to define a vector of generators and a SimConditionSet section to define the relevant conditions. Example:

<Executor>
<Generators>
"./some_generator.gen"
"./other_generator.gen"
</Generators>
"IdleCond"
<EventCondition>
<StartEvents> "beta" "mue" </StartEvents>
<StopEvents> "alpha" </StopEvents>
</EventCondition>
"DownCond"
<StateCondition>
<StateSet> "down" </StateSet> % refers to first generator
<StateSet> "down" "repair" </StateSet> % refers to second generator
</StateCondition>
</Executor>
const SimConditionSet & Conditions(void) const
IndexSet StateSet
Definition: cfl_indexset.h:273

Definition at line 85 of file sp_lpexecutor.h.

Member Typedef Documentation

◆ ConditionIterator

typedef SimConditionSet::Iterator faudes::LoggingExecutor::ConditionIterator

Condition iterator: typedef

Definition at line 292 of file sp_lpexecutor.h.

◆ TraceIterator

typedef std::deque<TraceSample>::const_iterator faudes::LoggingExecutor::TraceIterator

Access buffer: iterator

Definition at line 356 of file sp_lpexecutor.h.

Member Enumeration Documentation

◆ LogMode

doxygen group Logging mode flags, to specify what data to log

Enumerator
LogStatistics 
LogStates 
LogEvents 
LogTime 

Definition at line 314 of file sp_lpexecutor.h.

Constructor & Destructor Documentation

◆ LoggingExecutor() [1/3]

faudes::LoggingExecutor::LoggingExecutor ( void  )

doxygen group Construct an emtpy LoggingExecuter

Definition at line 22 of file sp_lpexecutor.cpp.

◆ LoggingExecutor() [2/3]

faudes::LoggingExecutor::LoggingExecutor ( const LoggingExecutor rOther)

Copy constructor

Definition at line 30 of file sp_lpexecutor.cpp.

◆ LoggingExecutor() [3/3]

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

Construct from file.

See ParallelExecutor::Insert(const std::string& rFileName) for details.

Parameters
rFileNameFilename
Exceptions
Exception
  • Non-deteministic generator (id 501)
  • IO errors (id 1)
  • token mismatch (id see TimedGenerator)

Definition at line 39 of file sp_lpexecutor.cpp.

◆ ~LoggingExecutor()

faudes::LoggingExecutor::~LoggingExecutor ( void  )
virtual

Explicit destructor.

Definition at line 48 of file sp_lpexecutor.cpp.

Member Function Documentation

◆ BreakCondition()

bool faudes::LoggingExecutor::BreakCondition ( void  ) const
inline

Simulation state: true if some break condition is currently satisfied

Definition at line 301 of file sp_lpexecutor.h.

◆ Clear()

void faudes::LoggingExecutor::Clear ( void  )
virtual

doxygen group 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::ProposingExecutor, and faudes::DeviceExecutor.

Definition at line 89 of file sp_lpexecutor.cpp.

◆ ClrCondition() [1/2]

void faudes::LoggingExecutor::ClrCondition ( const std::string &  rName)

Remove a condition by name

Definition at line 260 of file sp_lpexecutor.cpp.

◆ ClrCondition() [2/2]

void faudes::LoggingExecutor::ClrCondition ( Idx  cond)

Remove a condition by index

Definition at line 266 of file sp_lpexecutor.cpp.

◆ Compile()

void faudes::LoggingExecutor::Compile ( void  )
protectedvirtual

Compile internal data (all)

Reimplemented from faudes::ParallelExecutor.

Definition at line 63 of file sp_lpexecutor.cpp.

◆ CompileConditions()

void faudes::LoggingExecutor::CompileConditions ( void  )
private

Compile condition internal data

Definition at line 294 of file sp_lpexecutor.cpp.

◆ Condition() [1/2]

const AttributeSimCondition & faudes::LoggingExecutor::Condition ( const std::string &  rName) const

Read-only access to a simulation condition by name

Definition at line 223 of file sp_lpexecutor.cpp.

◆ Condition() [2/2]

const AttributeSimCondition & faudes::LoggingExecutor::Condition ( Idx  cond) const

Read-only access to a simulation condition by index

Definition at line 228 of file sp_lpexecutor.cpp.

◆ Conditions() [1/2]

void faudes::LoggingExecutor::Conditions ( const SimConditionSet rConditions)

Set all simulation conditions

Definition at line 214 of file sp_lpexecutor.cpp.

◆ Conditions() [2/2]

const SimConditionSet & faudes::LoggingExecutor::Conditions ( void  ) const

doxygen group Read-only access to simulation conditions

Definition at line 209 of file sp_lpexecutor.cpp.

◆ ConditionsBegin()

LoggingExecutor::ConditionIterator faudes::LoggingExecutor::ConditionsBegin ( void  ) const

Condition iterator: begin

Definition at line 284 of file sp_lpexecutor.cpp.

◆ ConditionsEnd()

LoggingExecutor::ConditionIterator faudes::LoggingExecutor::ConditionsEnd ( void  ) const

Condition iterator: end

Definition at line 289 of file sp_lpexecutor.cpp.

◆ ConditionsProcess()

void faudes::LoggingExecutor::ConditionsProcess ( void  )
private

Process condition hook

Definition at line 327 of file sp_lpexecutor.cpp.

◆ ConditionsRead()

void faudes::LoggingExecutor::ConditionsRead ( TokenReader rTr,
const std::string &  rLabel = "SimConditions" 
)

Read conditions from labled section

Definition at line 277 of file sp_lpexecutor.cpp.

◆ ConditionsReset()

void faudes::LoggingExecutor::ConditionsReset ( void  )
private

Reset condition simulation state

Definition at line 320 of file sp_lpexecutor.cpp.

◆ ConditionsWrite()

void faudes::LoggingExecutor::ConditionsWrite ( TokenWriter rTw,
const std::string &  rLabel = "SimConditions" 
) const

Write conditions so labled section

Definition at line 272 of file sp_lpexecutor.cpp.

◆ CurrentParallelTimedState() [1/2]

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.

Returns
True for success

Reimplemented from faudes::ParallelExecutor.

Definition at line 196 of file sp_lpexecutor.cpp.

◆ CurrentParallelTimedState() [2/2]

const ParallelTimedState& faudes::LoggingExecutor::CurrentParallelTimedState ( void  ) const
inline

Get current state of the ParallelExecutor.

Returns
Discrete state vector and clock value maps

Definition at line 248 of file sp_lpexecutor.h.

◆ CurrentStep() [1/2]

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.

Parameters
stepNew logical time

Reimplemented from faudes::ParallelExecutor.

Definition at line 176 of file sp_lpexecutor.cpp.

◆ CurrentStep() [2/2]

int faudes::LoggingExecutor::CurrentStep ( void  ) const
inline

Get logical time, ie number of transitions so far,

Definition at line 213 of file sp_lpexecutor.h.

◆ CurrentTime() [1/2]

void faudes::LoggingExecutor::CurrentTime ( Time::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.

Parameters
timeNew clock time

Reimplemented from faudes::ParallelExecutor.

Definition at line 186 of file sp_lpexecutor.cpp.

◆ CurrentTime() [2/2]

Time::Type faudes::LoggingExecutor::CurrentTime ( void  ) const
inline

Get clock time.

Definition at line 196 of file sp_lpexecutor.h.

◆ DoAssign()

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

Assignment method

Parameters
rSrcSource to assign from

Definition at line 54 of file sp_lpexecutor.cpp.

◆ DoRead()

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

Reads logging executor from TokenReader, see also public wrappers in faudes::Type.

Parameters
rTrTokenReader to read from
rLabelSection to read, defaults to "Executor"
pContextRead context to provide contextual information (ignored)
Exceptions
Exception
  • non-deterministic generator(s) (id 501)
  • token mismatch (id 502)
  • IO error (id 1)

Reimplemented from faudes::ParallelExecutor.

Reimplemented in faudes::ProposingExecutor.

Definition at line 112 of file sp_lpexecutor.cpp.

◆ DoWrite()

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

Write to TokenWriter, see also public wrappers in faudes::Type.

Parameters
rTwReference to TokenWriter
rLabelLabel of section to write, defaults to "Executor"
pContextWrite context to provide contextual information (ignored)
Exceptions
Exception
  • IO errors (id 2)

Reimplemented from faudes::ParallelExecutor.

Reimplemented in faudes::ProposingExecutor.

Definition at line 101 of file sp_lpexecutor.cpp.

◆ ExecuteEvent()

bool faudes::LoggingExecutor::ExecuteEvent ( Idx  event)
virtual

Execute transition.

Returns false if the transition cannot be executed at the current time.

Parameters
eventIndicate transition to execute
Returns
True on success

Reimplemented from faudes::ParallelExecutor.

Reimplemented in faudes::ProposingExecutor, and faudes::DeviceExecutor.

Definition at line 158 of file sp_lpexecutor.cpp.

◆ ExecuteTime()

bool faudes::LoggingExecutor::ExecuteTime ( Time::Type  duration)
virtual

Let time pass without executing a transition. Return false if the specified duration
cannot elapse without an event being executed.

Parameters
durationAmount of time that shall elapse.
Returns
True for success

Reimplemented from faudes::ParallelExecutor.

Reimplemented in faudes::ProposingExecutor.

Definition at line 146 of file sp_lpexecutor.cpp.

◆ LogClose()

void faudes::LoggingExecutor::LogClose ( void  )

Stop logging

Definition at line 417 of file sp_lpexecutor.cpp.

◆ LogOpen() [1/2]

void faudes::LoggingExecutor::LogOpen ( const std::string &  rFileName,
int  logmode,
std::ios::openmode  openmode = std::ios::out|std::ios::trunc 
)

Start logging to file

Definition at line 408 of file sp_lpexecutor.cpp.

◆ LogOpen() [2/2]

void faudes::LoggingExecutor::LogOpen ( TokenWriter rTw,
int  mode 
)

Start logging to TokenWriter

Definition at line 391 of file sp_lpexecutor.cpp.

◆ LogWriteEvent()

void faudes::LoggingExecutor::LogWriteEvent ( void  )
private

Logging hook: dump recent event

Definition at line 467 of file sp_lpexecutor.cpp.

◆ LogWritePause()

void faudes::LoggingExecutor::LogWritePause ( void  )
private

Logging hook: halt simulation

Definition at line 493 of file sp_lpexecutor.cpp.

◆ LogWriteResume()

void faudes::LoggingExecutor::LogWriteResume ( void  )
private

Logging hook: continue simulation

Definition at line 505 of file sp_lpexecutor.cpp.

◆ LogWriteState()

void faudes::LoggingExecutor::LogWriteState ( void  )
private

Logging hook: dump current state

Definition at line 457 of file sp_lpexecutor.cpp.

◆ LogWriteStatistics()

void faudes::LoggingExecutor::LogWriteStatistics ( void  )
private

Logging hook: dump statistics

Definition at line 436 of file sp_lpexecutor.cpp.

◆ LogWriteTime()

void faudes::LoggingExecutor::LogWriteTime ( void  )
private

Logging hook: dump current time

Definition at line 480 of file sp_lpexecutor.cpp.

◆ Reset()

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.

Reimplemented in faudes::ProposingExecutor.

Definition at line 73 of file sp_lpexecutor.cpp.

◆ RevertToStep()

bool faudes::LoggingExecutor::RevertToStep ( Idx  step)
virtual

Revert executors state to past step from buffer

Reimplemented in faudes::ProposingExecutor.

Definition at line 656 of file sp_lpexecutor.cpp.

◆ SetCondition() [1/2]

Idx faudes::LoggingExecutor::SetCondition ( const std::string &  rName,
const AttributeSimCondition rCondition 
)

Set (or add) a condition by name

Definition at line 247 of file sp_lpexecutor.cpp.

◆ SetCondition() [2/2]

void faudes::LoggingExecutor::SetCondition ( Idx  cond,
const AttributeSimCondition rCondition 
)

Set a condition by index

Definition at line 254 of file sp_lpexecutor.cpp.

◆ TraceAddSample()

void faudes::LoggingExecutor::TraceAddSample ( void  )
private

Trace: helper, append one void sample

Definition at line 579 of file sp_lpexecutor.cpp.

◆ TraceAtStep()

const LoggingExecutor::TraceSample * faudes::LoggingExecutor::TraceAtStep ( int  step) const

Access buffer: sample by step

Definition at line 539 of file sp_lpexecutor.cpp.

◆ TraceAtTime()

const LoggingExecutor::TraceSample * faudes::LoggingExecutor::TraceAtTime ( Time::Type  time) const

Access buffer: sample by faudes time (returns first sample)

Definition at line 547 of file sp_lpexecutor.cpp.

◆ TraceBegin()

LoggingExecutor::TraceIterator faudes::LoggingExecutor::TraceBegin ( void  ) const

Condition iterator: begin

Definition at line 529 of file sp_lpexecutor.cpp.

◆ TraceClear()

void faudes::LoggingExecutor::TraceClear ( int  length = -2)

doxygen group Clear buffer and set max buffer

Parameters
lengthMax length of buffer, or: -2 <> keep length, -1<>infinite, 0<> no buffer

Definition at line 513 of file sp_lpexecutor.cpp.

◆ TraceCurrent()

const LoggingExecutor::TraceSample * faudes::LoggingExecutor::TraceCurrent ( void  ) const

Access buffer: current sample

Definition at line 556 of file sp_lpexecutor.cpp.

◆ TraceEnd()

LoggingExecutor::TraceIterator faudes::LoggingExecutor::TraceEnd ( void  ) const

Condition iterator: end

Definition at line 534 of file sp_lpexecutor.cpp.

◆ TraceFirst()

const LoggingExecutor::TraceSample * faudes::LoggingExecutor::TraceFirst ( void  ) const

Access buffer: first sample

Definition at line 568 of file sp_lpexecutor.cpp.

◆ TraceLength()

int faudes::LoggingExecutor::TraceLength ( void  ) const

Access buffer: current length

Definition at line 574 of file sp_lpexecutor.cpp.

◆ TraceRecent()

const LoggingExecutor::TraceSample * faudes::LoggingExecutor::TraceRecent ( void  ) const

Access buffer: recent sample

Definition at line 562 of file sp_lpexecutor.cpp.

◆ TraceToString()

std::string faudes::LoggingExecutor::TraceToString ( const TraceSample sample) const

Access buffer: convert to string

Definition at line 649 of file sp_lpexecutor.cpp.

◆ TraceUpdateTime()

void faudes::LoggingExecutor::TraceUpdateTime ( void  )
private

Trace: append sample (if necessary) and update to current time

Definition at line 612 of file sp_lpexecutor.cpp.

◆ TraceUpdateTransition()

void faudes::LoggingExecutor::TraceUpdateTransition ( Idx  event)
private

Trace: append sample (if necessary) and update to current state via given event

Definition at line 600 of file sp_lpexecutor.cpp.

◆ TraceWrite() [1/3]

void faudes::LoggingExecutor::TraceWrite ( const TraceSample sample) const

Access buffer: console output

Definition at line 636 of file sp_lpexecutor.cpp.

◆ TraceWrite() [2/3]

void faudes::LoggingExecutor::TraceWrite ( TokenWriter rTw,
const TraceSample sample 
) const

Access buffer: tokenwriter output

Definition at line 623 of file sp_lpexecutor.cpp.

◆ TraceWrite() [3/3]

void faudes::LoggingExecutor::TraceWrite ( void  ) const

Access buffer: console output (list all)

Definition at line 642 of file sp_lpexecutor.cpp.

◆ Valid()

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

Check validity of executors.

This is currently not implemented. It should include tests on the state based conditions.

Returns
True on success

Reimplemented from faudes::ParallelExecutor.

Definition at line 164 of file sp_lpexecutor.h.

Member Data Documentation

◆ mBreakCondition

bool faudes::LoggingExecutor::mBreakCondition
private

Indicate break

Definition at line 453 of file sp_lpexecutor.h.

◆ mConditions

SimConditionSet faudes::LoggingExecutor::mConditions
private

Simulation conditions

Definition at line 447 of file sp_lpexecutor.h.

◆ mEnabledConditions

std::vector<AttributeSimCondition*> faudes::LoggingExecutor::mEnabledConditions
private

Enabled simulation conditions

Definition at line 450 of file sp_lpexecutor.h.

◆ mLogFile

std::string faudes::LoggingExecutor::mLogFile
private

Logging: file name

Definition at line 468 of file sp_lpexecutor.h.

◆ mLogMode

int faudes::LoggingExecutor::mLogMode
private

Logging: mode

Definition at line 471 of file sp_lpexecutor.h.

◆ mTraceBuffer

std::deque<TraceSample> faudes::LoggingExecutor::mTraceBuffer
private

Trace data: fifo buffer

Definition at line 498 of file sp_lpexecutor.h.

◆ mTraceFirstStep

int faudes::LoggingExecutor::mTraceFirstStep
private

Trace data: step no of first sample

Definition at line 495 of file sp_lpexecutor.h.

◆ mTraceMax

int faudes::LoggingExecutor::mTraceMax
private

Trace data: max fifo length

Definition at line 492 of file sp_lpexecutor.h.

◆ mTraceTimeToStep

std::map<Time::Type,int> faudes::LoggingExecutor::mTraceTimeToStep
private

Trace data: time to step mapping (first step)

Definition at line 501 of file sp_lpexecutor.h.

◆ pLogTokenWriter

TokenWriter* faudes::LoggingExecutor::pLogTokenWriter
private

Logging: tokenwriter ref

Definition at line 465 of file sp_lpexecutor.h.


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

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