#include <sp_simconditionset.h>

Public Types

typedef std::vector< StateSet >::iterator Iterator
 
typedef std::vector< StateSet >::const_iterator CIterator
 

Public Member Functions

 AttributeSimCondition (void)
 
 AttributeSimCondition (const AttributeSimCondition &rOther)
 
virtual bool IsDefault (void) const
 
bool IsStateCondition (void) const
 
bool IsEventCondition (void) const
 
bool Breakpoint (void) const
 
bool Enabled (void) const
 
void StateCondition (const SimStateCondition &rStateConditionAttribute)
 
void EventCondition (const SimEventCondition &rEventConditionAttribute)
 
void Breakpoint (bool on)
 
void Enabled (bool on)
 
const SimEventConditionEventCondition (void) const
 
const SimStateConditionStateCondition (void) const
 
void Reset (void)
 
bool Satisfied (void) const
 
void Satisfied (bool on, Time::Type now)
 
- Public Member Functions inherited from faudes::AttributeFlags
 AttributeFlags (void)
 
 AttributeFlags (const AttributeFlags &rOther)
 
virtual ~AttributeFlags (void)
 
bool Test (fType mask) const
 
bool TestAll (fType mask) const
 
bool TestSome (fType mask) const
 
bool TestNone (fType mask) const
 
void Set (fType mask)
 
void Clr (fType mask)
 
Typeoperator= (const Type &rSrc)
 
bool operator== (const Type &rOther) const
 
bool operator!= (const Type &rOther) const
 
- Public Member Functions inherited from faudes::AttributeVoid
 AttributeVoid (void)
 
 AttributeVoid (const AttributeVoid &rSrcAttr)
 
virtual ~AttributeVoid (void)
 
virtual void SetDefault (void)
 
virtual void Clear (void)
 
Typeoperator= (const Type &rSrc)
 
bool operator== (const Type &rOther) const
 
bool operator!= (const Type &rOther) const
 
- 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)
 

Public Attributes

SampledDensityFunction mSamplesPeriod
 
SampledDensityFunction mSamplesDuration
 
- Public Attributes inherited from faudes::AttributeFlags
fType mFlags
 

Static Public Attributes

static const fType mEnabledFlag =0x01
 
static const fType mBreakpointFlag =0x02
 
- Static Public Attributes inherited from faudes::AttributeFlags
static const fType mDefFlags =0x0
 

Protected Member Functions

void DoAssign (const AttributeSimCondition &rSrcAttr)
 
bool DoEqual (const AttributeSimCondition &rAttr) const
 
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::AttributeFlags
void DoAssign (const AttributeFlags &rSrcAttr)
 
bool DoEqual (const AttributeFlags &rOther) const
 
virtual void DoXWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 
- Protected Member Functions inherited from faudes::AttributeVoid
void DoAssign (const AttributeVoid &rSrcAttr)
 
bool DoEqual (const AttributeVoid &rOther) const
 
virtual void DoDWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 
- Protected Member Functions inherited from faudes::Type
void DoAssign (const Type &rSrc)
 
bool DoEqual (const Type &rOther) const
 
virtual void DoSWrite (TokenWriter &rTw) const
 
virtual const TypeDefinitionTypeDefinitionp (void) const
 
virtual Token XBeginTag (const std::string &rLabel="", const std::string &rFallbackLabel="") const
 

Protected Attributes

bool mEventCondition
 
bool mStateCondition
 
SimEventCondition mEventConditionAttribute
 
SimStateCondition mStateConditionAttribute
 
bool mSatisfied
 
Time::Type mActivationTime
 

Static Private Attributes

static const fType mDefSCFlags =0x01
 
static const fType mAllSCFlags =0x03
 

Additional Inherited Members

- Static Public Member Functions inherited from faudes::AttributeVoid
static void Skip (TokenReader &rTr)
 

Detailed Description

Attribute for a simulation condition

In order to extract statistical data from a simulation by a LoggingExecutor or some derived class, so called simulation conditions are defined. At any instance of time, a condition is satisfied or dissatisfied. Statistical data can then be requested regarding the period and duration of each condition. Currently, two types of conditions are available:

A Condition may be flagged as a break condition to halt simulation when satisfied. A condition may be enabled for tracking or not.

The class AttributeSimCondition summarizes all data to represent faudes simulation conditions. It also holds some state of the condition wrt execution and provides an interface for sampling. The latter may be seperated to a different class in a future revision. The class AttributeSimCondition does, however, not implement any test whether or not a condition is satisfied. This is done by the LoggingExecutor.

As a faudes attribute, conditions can be referenced by names via the std faudes container TaNameSet. For token io, a ParallelExecutor should be provided as context to access symbolic state names. The file format of a set of events equipped with condition attributes is illustrated by the below example to monitor some performance aspects of one simple machine:

<Conditions>
% monitor when the machine is idle
"IdleCond"
<StateSet> "idle" </StateSet>
% halt simulation when the machine is down
% however, the condition is disabled
"DownCond"
+Break+
+Disabled+
<StateSet> "down" </StateSet>
% monitor how long the prozessing one work piece takes
"OperationCond"
<StartEvents> "alpha" </StartEvents>
<StopEvents> "beta" </StopEvents>
</Conditions>
const SimEventCondition & EventCondition(void) const
const SimStateCondition & StateCondition(void) const
IndexSet StateSet
Definition: cfl_indexset.h:273

Definition at line 134 of file sp_simconditionset.h.

Member Typedef Documentation

◆ CIterator

typedef std::vector<StateSet>::const_iterator faudes::AttributeSimCondition::CIterator

Definition at line 142 of file sp_simconditionset.h.

◆ Iterator

typedef std::vector<StateSet>::iterator faudes::AttributeSimCondition::Iterator

Convenience typedef

Definition at line 141 of file sp_simconditionset.h.

Constructor & Destructor Documentation

◆ AttributeSimCondition() [1/2]

faudes::AttributeSimCondition::AttributeSimCondition ( void  )

Default constructor. Constructs a AttributeSimCondition of with no type ie neither state condition nor event condition.

Definition at line 34 of file sp_simconditionset.cpp.

◆ AttributeSimCondition() [2/2]

faudes::AttributeSimCondition::AttributeSimCondition ( const AttributeSimCondition rOther)

Copy constructor. with no type ie neither state condition nor event condition.

Definition at line 45 of file sp_simconditionset.cpp.

Member Function Documentation

◆ Breakpoint() [1/2]

void faudes::AttributeSimCondition::Breakpoint ( bool  on)
inline

Set break flag.

Parameters
onTrue, to indicate that this condition halts simulation.

Definition at line 227 of file sp_simconditionset.h.

◆ Breakpoint() [2/2]

bool faudes::AttributeSimCondition::Breakpoint ( void  ) const
inline

Test for break condition.

Returns
True, if this condition halts simulation.

Definition at line 188 of file sp_simconditionset.h.

◆ DoAssign()

void faudes::AttributeSimCondition::DoAssign ( const AttributeSimCondition rSrcAttr)
protected

Assignment method.

Parameters
rSrcAttrSource to assign from

Definition at line 55 of file sp_simconditionset.cpp.

◆ DoEqual()

bool faudes::AttributeSimCondition::DoEqual ( const AttributeSimCondition rAttr) const
protected

Equality method.

Parameters
rAttrSource to compare with

Definition at line 72 of file sp_simconditionset.cpp.

◆ DoRead()

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

Reads the attribute from TokenReader, see AttributeVoid for public wrappers.

If the current token indicates a condition section, the method reads the
condition data from that section. Else it does nothing. Exceptions may only be thrown on invalid data within the condition section. The label argiment is ignored, we use hardcoded labled "EventCondition" and "StateCondition" to figure the type of condition. When a ParallelExecutor is provided as context, it is used to interpret symbolc state names of a state condition.

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

Reimplemented from faudes::AttributeFlags.

Definition at line 134 of file sp_simconditionset.cpp.

◆ DoWrite()

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

Writes the attribute to TokenWriter, see AttributeVoid for public wrappers.

Writes a condition section to include data on state- or event-condition. The label argument is ignored, we use hardcoded keywords "EventCondition" and StateCondition". When a ParallelExecutor is provided as context, it state conditions are written with symbolic state names.

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

Reimplemented from faudes::AttributeFlags.

Definition at line 86 of file sp_simconditionset.cpp.

◆ Enabled() [1/2]

void faudes::AttributeSimCondition::Enabled ( bool  on)
inline

Set enabled flag.

Parameters
onTrue, to indicate that this condition is to be monitored during simulation.

Definition at line 235 of file sp_simconditionset.h.

◆ Enabled() [2/2]

bool faudes::AttributeSimCondition::Enabled ( void  ) const
inline

Test whether condition is enabled.

Returns
True, if this condition is monitored during simulation.

Definition at line 196 of file sp_simconditionset.h.

◆ EventCondition() [1/2]

void faudes::AttributeSimCondition::EventCondition ( const SimEventCondition rEventConditionAttribute)
inline

Set event condition attribute. Define this attribute to represent the specified event condition.

Parameters
rEventConditionAttributeDefine event condition

Definition at line 218 of file sp_simconditionset.h.

◆ EventCondition() [2/2]

const SimEventCondition& faudes::AttributeSimCondition::EventCondition ( void  ) const
inline

Get event condition. Note that the attribute can only return meaningful data if it actually is an event condition.

Returns
Defining data of this attribute's event condition.

Definition at line 245 of file sp_simconditionset.h.

◆ IsDefault()

virtual bool faudes::AttributeSimCondition::IsDefault ( void  ) const
inlinevirtual

Test for default value

Returns
True, if this attribute has its default value

Reimplemented from faudes::AttributeFlags.

Definition at line 162 of file sp_simconditionset.h.

◆ IsEventCondition()

bool faudes::AttributeSimCondition::IsEventCondition ( void  ) const
inline

Test for event condition.

Returns
True, if this attribute defines an event condition

Definition at line 180 of file sp_simconditionset.h.

◆ IsStateCondition()

bool faudes::AttributeSimCondition::IsStateCondition ( void  ) const
inline

Test for state condition.

Returns
True, if this attribute defines a state condition

Definition at line 172 of file sp_simconditionset.h.

◆ Reset()

void faudes::AttributeSimCondition::Reset ( void  )
inline

Reset conditions execution state. The execution state of a condition consists of all data accumulated during simulation eg statistical data and whether or not the condition is currently satisfied. The execution state resides in the attribute for pragmatic reasons only.

Definition at line 263 of file sp_simconditionset.h.

◆ Satisfied() [1/2]

void faudes::AttributeSimCondition::Satisfied ( bool  on,
Time::Type  now 
)

Set the condition to be satisfied. This is part of the condition execution state. Since it is the executor that determines whether a condition is satisfied, and since the condition state resides in the attribute, the executor is meant to notify state changes.

Parameters
onTrue, if the conditions is considered satisfied
nowTime at which the state change occures

Definition at line 251 of file sp_simconditionset.cpp.

◆ Satisfied() [2/2]

bool faudes::AttributeSimCondition::Satisfied ( void  ) const
inline

Test whether the condition is currently satisfied. This is part of the condition execution state.

Returns
True, if the conditions is considered satisfied

Definition at line 273 of file sp_simconditionset.h.

◆ StateCondition() [1/2]

void faudes::AttributeSimCondition::StateCondition ( const SimStateCondition rStateConditionAttribute)
inline

Set state condition attribute. Define this attribute to represent the specified state condition.

Parameters
rStateConditionAttributeDefine state condition

Definition at line 205 of file sp_simconditionset.h.

◆ StateCondition() [2/2]

const SimStateCondition& faudes::AttributeSimCondition::StateCondition ( void  ) const
inline

Get state condition. Note that the attribute can only return meaningful data if it actually is an state condition.

Returns
Defining data of this attribute's state condition.

Definition at line 255 of file sp_simconditionset.h.

Member Data Documentation

◆ mActivationTime

Time::Type faudes::AttributeSimCondition::mActivationTime
protected

Condition state: when last satisfied became true

Definition at line 321 of file sp_simconditionset.h.

◆ mAllSCFlags

const fType faudes::AttributeSimCondition::mAllSCFlags =0x03
staticprivate

All flags used by CFlags

Definition at line 390 of file sp_simconditionset.h.

◆ mBreakpointFlag

const fType faudes::AttributeSimCondition::mBreakpointFlag =0x02
static

Definition at line 301 of file sp_simconditionset.h.

◆ mDefSCFlags

const fType faudes::AttributeSimCondition::mDefSCFlags =0x01
staticprivate

Overall default value

Definition at line 387 of file sp_simconditionset.h.

◆ mEnabledFlag

const fType faudes::AttributeSimCondition::mEnabledFlag =0x01
static

Definition at line 300 of file sp_simconditionset.h.

◆ mEventCondition

bool faudes::AttributeSimCondition::mEventCondition
protected

Indicate precense of a event condition

Definition at line 306 of file sp_simconditionset.h.

◆ mEventConditionAttribute

SimEventCondition faudes::AttributeSimCondition::mEventConditionAttribute
protected

Event based condition data

Definition at line 312 of file sp_simconditionset.h.

◆ mSamplesDuration

SampledDensityFunction faudes::AttributeSimCondition::mSamplesDuration

Sampled durations, for which this condition remains satisfied.

Definition at line 297 of file sp_simconditionset.h.

◆ mSamplesPeriod

SampledDensityFunction faudes::AttributeSimCondition::mSamplesPeriod

Sampled period, at which this condition becomes satisfied.

Definition at line 292 of file sp_simconditionset.h.

◆ mSatisfied

bool faudes::AttributeSimCondition::mSatisfied
protected

Condotion state: recorded as satisfied

Definition at line 318 of file sp_simconditionset.h.

◆ mStateCondition

bool faudes::AttributeSimCondition::mStateCondition
protected

Indicate precense of a state condition

Definition at line 309 of file sp_simconditionset.h.

◆ mStateConditionAttribute

SimStateCondition faudes::AttributeSimCondition::mStateConditionAttribute
protected

State based condition data

Definition at line 315 of file sp_simconditionset.h.


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

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