#include <sp_simeventset.h>

Public Member Functions

 SimEventAttribute (void)
 
 SimEventAttribute (const SimEventAttribute &rSrc)
 
virtual bool IsDefault (void) const
 
bool IsStochastic (void) const
 
bool IsPriority (void) const
 
void Stochastic (const SimStochasticEventAttribute &rStochasticAttribute)
 
void Priority (const SimPriorityEventAttribute &rPriorityAttribute)
 
const SimPriorityEventAttributePriority (void) const
 
const SimStochasticEventAttributeStochastic (void) const
 
std::string Str (void) const
 
- Public Member Functions inherited from faudes::AttributeCFlags
 AttributeCFlags (void)
 
virtual ~AttributeCFlags (void)
 
void SetControllable (void)
 
void ClrControllable (void)
 
bool Controllable (void) const
 
void SetObservable (void)
 
void ClrObservable (void)
 
bool Observable (void) const
 
void SetForcible (void)
 
void ClrForcible (void)
 
bool Forcible (void) const
 
void SetHighlevel (void)
 
void SetLowlevel (void)
 
bool Highlevel (void) const
 
bool Lowlevel (void) const
 
Typeoperator= (const Type &rSrc)
 
bool operator== (const Type &rOther) const
 
bool operator!= (const Type &rOther) const
 
- 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

Time::Type mScheduledFor
 
Time::Type mExpiresAt
 
Time::Type mDelayFor
 
TimeInterval mReferenceInterval
 
- Public Attributes inherited from faudes::AttributeFlags
fType mFlags
 

Protected Member Functions

void DoAssign (const SimEventAttribute &rSrcAttr)
 
bool DoEqual (const SimEventAttribute &rOther) 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::AttributeCFlags
void DoAssign (const AttributeCFlags &rSrcAttr)
 
bool DoEqual (const AttributeCFlags &rOther) const
 
virtual void DoXWrite (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
 
- 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 mStochastic
 
bool mPriority
 
SimPriorityEventAttribute mPriorityAttribute
 
SimStochasticEventAttribute mStochasticAttribute
 

Additional Inherited Members

- Static Public Member Functions inherited from faudes::AttributeVoid
static void Skip (TokenReader &rTr)
 
- Static Public Attributes inherited from faudes::AttributeCFlags
static const fType mControllableFlag =0x01
 
static const fType mObservableFlag =0x02
 
static const fType mForcibleFlag =0x04
 
static const fType mAbstractionFlag =0x08
 
- Static Public Attributes inherited from faudes::AttributeFlags
static const fType mDefFlags =0x0
 

Detailed Description

Attribute for an event in the context of simulation.

When simulating one or more generators, at each instance of time there will be one or more transitions enabled. In order resolve this non-determinism in a defined way, each event may be equipped with either one of the following properties.

Note that the SimEventAttribute just holds the data to define the properties, a semantic implementation is in faudes::ProposingExecutor. The current implementation also stores simulation state data (ie evaluations of random variables), but this is likely to change in a future revision.

As a faudes attribute, SimEventAttribute provides token io and is prepared for the use in the context of a faudes container. The file format of a set of events equipped with simulation attributes is illustrated by the below example for the simulation of a simple machine:

<SimEvents>
% machine start: prioritised event with priority 100
"alpha"
<Priority> 100 </Priority>
% machine finsh: gauss distributed event with mue=10 and sigma=5, relative to guard
"beta"
<Stochastic> +Trigger+ +Gauss+ <Parameter> 10 5 </Parameter> </Stochastic>
% break down: gauss distributed event with mue=20 and sigma=5, relative to enabled time
"mue"
<Stochastic> +Delay+ +Gauss+ <Parameter> 20 5 </Parameter> </Stochastic>
% machine repair: prioritised event with priority 100
"lambda"
<Priority> 100 </Priority>
</SimEvents>
const SimStochasticEventAttribute & Stochastic(void) const
const SimPriorityEventAttribute & Priority(void) const

Definition at line 149 of file sp_simeventset.h.

Constructor & Destructor Documentation

◆ SimEventAttribute() [1/2]

faudes::SimEventAttribute::SimEventAttribute ( void  )
inline

Default constructor. Construct a SimEventAttribute with priority 0.

Definition at line 159 of file sp_simeventset.h.

◆ SimEventAttribute() [2/2]

faudes::SimEventAttribute::SimEventAttribute ( const SimEventAttribute rSrc)
inline

Copy constructor.

Definition at line 165 of file sp_simeventset.h.

Member Function Documentation

◆ DoAssign()

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

Assignment method.

Parameters
rSrcAttrSource to assign from

Definition at line 19 of file sp_simeventset.cpp.

◆ DoEqual()

bool faudes::SimEventAttribute::DoEqual ( const SimEventAttribute rOther) const
protected

Test equality

Parameters
rOtherAttribute to compare with
Returns
True/False

Definition at line 36 of file sp_simeventset.cpp.

◆ DoRead()

void faudes::SimEventAttribute::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 simulation event section, the method reads all consecutive simulation attributes. Else it does nothing. Exceptions may only be thrown on invalid data within the section. The label argument is ignored, we use hardcoded keywords for the four attributes. The context argument is ignored.

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

Reimplemented from faudes::AttributeCFlags.

Definition at line 84 of file sp_simeventset.cpp.

◆ DoWrite()

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

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

Writes all present simulation event attributes to include the defining data. The label argument is ignored, we use hardcoded keywords. The context argument is ignored.

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

Reimplemented from faudes::AttributeCFlags.

Definition at line 50 of file sp_simeventset.cpp.

◆ IsDefault()

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

Test for default value

Returns
True, if this attribute has its default value

Reimplemented from faudes::AttributeCFlags.

Definition at line 174 of file sp_simeventset.h.

◆ IsPriority()

bool faudes::SimEventAttribute::IsPriority ( void  ) const
inline

Test for priority property.

Returns
True, if this attribute defines priority behaviour

Definition at line 191 of file sp_simeventset.h.

◆ IsStochastic()

bool faudes::SimEventAttribute::IsStochastic ( void  ) const
inline

Test for stochastic property.

Returns
True, if this attribute defines stochastic behaviour

Definition at line 183 of file sp_simeventset.h.

◆ Priority() [1/2]

void faudes::SimEventAttribute::Priority ( const SimPriorityEventAttribute rPriorityAttribute)
inline

Set priority behaviour. Define this attribute to indicate execution with the specified priority.

Parameters
rPriorityAttributeDefine stochastic behaviour

Definition at line 211 of file sp_simeventset.h.

◆ Priority() [2/2]

const SimPriorityEventAttribute& faudes::SimEventAttribute::Priority ( void  ) const
inline

Get priority attribute. Note that the return value is only meaningful if the attribute actually is a priority attribute.

Returns
Defining data of this attribute's priority behaviour

Definition at line 223 of file sp_simeventset.h.

◆ Stochastic() [1/2]

void faudes::SimEventAttribute::Stochastic ( const SimStochasticEventAttribute rStochasticAttribute)
inline

Set stochastic behaviour. Define this attribute to indicate the specified stochastic bahaviour.

Parameters
rStochasticAttributeDefine stochastic behaviour

Definition at line 200 of file sp_simeventset.h.

◆ Stochastic() [2/2]

const SimStochasticEventAttribute& faudes::SimEventAttribute::Stochastic ( void  ) const
inline

Get stochastic attribute. Note that the return value is only meaningful if the attribute defines stochastic behaviour.

Returns
Defining data of this attribute's stochastic behaviour

Definition at line 233 of file sp_simeventset.h.

◆ Str()

std::string faudes::SimEventAttribute::Str ( void  ) const

Debug string, incl state

Definition at line 206 of file sp_simeventset.cpp.

Member Data Documentation

◆ mDelayFor

Time::Type faudes::SimEventAttribute::mDelayFor

Amount of time to defer the event. This is part of the execution state. It is used for events of delay type and is a count down type alarm to trigger the event.

Definition at line 253 of file sp_simeventset.h.

◆ mExpiresAt

Time::Type faudes::SimEventAttribute::mExpiresAt

Time at which the recent schedule expires. This is part of the execution state. Once a schedule expires, the event is re-scheduled.

Definition at line 246 of file sp_simeventset.h.

◆ mPriority

bool faudes::SimEventAttribute::mPriority
protected

Indicate precense of priority property

Definition at line 273 of file sp_simeventset.h.

◆ mPriorityAttribute

SimPriorityEventAttribute faudes::SimEventAttribute::mPriorityAttribute
protected

Priority definition data

Definition at line 276 of file sp_simeventset.h.

◆ mReferenceInterval

TimeInterval faudes::SimEventAttribute::mReferenceInterval

Time domain on which the recent schedule was computed. This is part of the execution state. It is used to invalidate schedules for events of trigger type.

Definition at line 259 of file sp_simeventset.h.

◆ mScheduledFor

Time::Type faudes::SimEventAttribute::mScheduledFor

Next scheduled occurence of this event relative to current time. This is part of the execution state. It indicates the instance of time for which the respective event is scheduled to occur. Schedules, however, may expire or otherwise become invalid.

Definition at line 240 of file sp_simeventset.h.

◆ mStochastic

bool faudes::SimEventAttribute::mStochastic
protected

Indicate precense of stochastic behaviour

Definition at line 270 of file sp_simeventset.h.

◆ mStochasticAttribute

SimStochasticEventAttribute faudes::SimEventAttribute::mStochasticAttribute
protected

Stochastic definition data

Definition at line 279 of file sp_simeventset.h.


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

libFAUDES 2.33b --- 2025.05.07 --- c++ api documentaion by doxygen