faudes::SimEventAttribute Class Reference
[Simulation Event Attributes]

Attribute for an event in the context of simulation. More...

#include <sp_simeventset.h>

List of all members.

Public Member Functions

 SimEventAttribute (void)
 Default constructor.
 SimEventAttribute (const SimEventAttribute &rSrc)
 Copy constructor.
virtual bool IsDefault (void) const
 Test for default value.
bool IsStochastic (void) const
 Test for stochastic property.
bool IsPriority (void) const
 Test for priority property.
void Stochastic (const SimStochasticEventAttribute &rStochasticAttribute)
 Set stochastic behaviour.
void Priority (const SimPriorityEventAttribute &rPriorityAttribute)
 Set priority behaviour.
const SimPriorityEventAttributePriority (void) const
 Get priority attribute.
const SimStochasticEventAttributeStochastic (void) const
 Get stochastic attribute.
std::string Str (void) const
 Debug string, incl state.

Public Attributes

tpTime::Type mScheduledFor
 Next scheduled occurence of this event relative to current time.
tpTime::Type mExpiresAt
 Time at which the recent schedule expires.
tpTime::Type mDelayFor
 Amount of time to defer the event.
TimeInterval mReferenceInterval
 Time domain on which the recent schedule was computed.

Protected Member Functions

void DoAssign (const SimEventAttribute &rSrcAttr)
 Assignment method.
bool DoEqual (const SimEventAttribute &rOther) const
 Test equality.
virtual void DoRead (TokenReader &rTr, const std::string &rLabel="", const Type *pContext=0)
 Reads the attribute from TokenReader, see AttributeVoid for public wrappers.
virtual void DoWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 Writes the attribute to TokenWriter, see AttributeVoid for public wrappers.

Protected Attributes

bool mStochastic
 Indicate precense of stochastic behaviour.
bool mPriority
 Indicate precense of priority property.
SimPriorityEventAttribute mPriorityAttribute
 Priority definition data.
SimStochasticEventAttribute mStochasticAttribute
 Stochastic definition data.

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>

Definition at line 149 of file sp_simeventset.h.


Constructor & Destructor Documentation

faudes::SimEventAttribute::SimEventAttribute ( void   )  [inline]

Default constructor.

Construct a SimEventAttribute with priority 0.

Definition at line 159 of file sp_simeventset.h.

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

Copy constructor.

Definition at line 165 of file sp_simeventset.h.


Member Function Documentation

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

Assignment method.

Parameters:
rSrcAttr Source to assign from

Definition at line 19 of file sp_simeventset.cpp.

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

Test equality.

Parameters:
rOther Attribute to compare with
Returns:
True/False

Definition at line 36 of file sp_simeventset.cpp.

void faudes::SimEventAttribute::DoRead ( TokenReader rTr,
const std::string &  rLabel = "",
const Type pContext = 0 
) [protected, virtual]

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:
rTr TokenReader to read from
rLabel Section to read
pContext Read context to provide contextual information
Exceptions:
Exception 
  • IO error (id 1)

Reimplemented from faudes::AttributeCFlags.

Definition at line 84 of file sp_simeventset.cpp.

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

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:
rTw TokenWriter to write to
rLabel Section to write
pContext Read context to provide contextual information
Exceptions:
Exception 
  • IO error (id 2)

Reimplemented from faudes::AttributeCFlags.

Definition at line 50 of file sp_simeventset.cpp.

virtual bool faudes::SimEventAttribute::IsDefault ( void   )  const [inline, virtual]

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.

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.

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.

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.

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

Set priority behaviour.

Define this attribute to indicate execution with the specified priority.

Parameters:
rPriorityAttribute Define stochastic behaviour

Definition at line 211 of file sp_simeventset.h.

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.

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

Set stochastic behaviour.

Define this attribute to indicate the specified stochastic bahaviour.

Parameters:
rStochasticAttribute Define stochastic behaviour

Definition at line 200 of file sp_simeventset.h.

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

Debug string, incl state.

Definition at line 206 of file sp_simeventset.cpp.


Member Data Documentation

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.

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.

Indicate precense of priority property.

Definition at line 273 of file sp_simeventset.h.

Priority definition data.

Definition at line 276 of file sp_simeventset.h.

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.

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 233 of file sp_simeventset.h.

Indicate precense of stochastic behaviour.

Definition at line 270 of file sp_simeventset.h.

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.23h --- 2014.04.03 --- c++ api documentaion by doxygen