libFAUDES

Sections

Index

faudes::SimEventAttribute Class Reference
[Simulation Event Attributes]

#include <sp_simeventset.h>

Inherits faudes::AttributeCFlags.

List of all members.


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>

Public Member Functions

 SimEventAttribute (void)
 Default constructor.
virtual SimEventAttributeNew (void) const
 Construct on heap.
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.

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

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.

Constructor & Destructor Documentation

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

Default constructor.

Construct a SimEventAttribute with priority 0.


Member Function Documentation

virtual SimEventAttribute* faudes::SimEventAttribute::New ( void   )  const [inline, virtual]

Construct on heap.

Technically not a constructor, this function creates an object with the same type. It is the callers reponsabilty to delete the object when no longer needed.

Returns:
Pointer to new attribute object

Reimplemented from faudes::AttributeCFlags.

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.

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

Test for stochastic property.

Returns:
True, if this attribute defines stochastic behaviour

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

Test for priority property.

Returns:
True, if this attribute defines priority behaviour

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

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

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

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

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.

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.


Member Data Documentation

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.

Time at which the recent schedule expires.

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

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.

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.

Indicate precense of stochastic behaviour.

Indicate precense of priority property.


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

libFAUDES 2.13a c++ source docu by doxygen 1.5.6