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>

Definition at line 154 of file sp_simeventset.h.


Public Member Functions

virtual SimEventAttributeNew (void) const
 Construct on heap.
virtual SimEventAttributeCopy (void) const
 Construct on heap.
virtual const SimEventAttributeCast (const Type *pOther) const
 Cast other object to this type.
virtual SimEventAttributeAssign (const Type &rSrc)
 Assign configuration data from other object.
virtual bool Equal (const Type &rOther) const
 Test equality of configuration data.
virtual SimEventAttributeoperator= (const SimEventAttribute &rSrc)
virtual bool operator== (const SimEventAttribute &rOther) const
virtual bool operator!= (const SimEventAttribute &rOther) const
 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.

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

SimEventAttributeDoAssign (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.

Constructor & Destructor Documentation

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

Default constructor.

Construct a SimEventAttribute with priority 0.

Definition at line 164 of file sp_simeventset.h.

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

Copy constructor.

Definition at line 170 of file sp_simeventset.h.


Member Function Documentation

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

Construct on heap.

Technically not a constructor, this function creates an object with the same type Type. New() is defined as a virtual function and derived classes are meant to re-implement with the appropiate constructor. This can be done via the provided macros FAUDES_TYPE_DECLARATION and FAUDES_TYPE_IMPLEMENTATION. As with new, it is the callers reponsabilty to delete the object when no longer needed.

Returns:
Pointer to new Type object

Reimplemented from faudes::AttributeCFlags.

Definition at line 15 of file sp_simeventset.cpp.

SimEventAttribute * faudes::SimEventAttribute::Copy ( void   )  const [virtual]

Construct on heap.

Technically not a constructor, this function creates an object with the same type Type and the same configuration. Copy() is defined as a virtual function and derived classes are meant to re-implement with the appropiate copy constructor. This can be done via the provided macros FAUDES_TYPE_DECLARATION and FAUDES_TYPE_IMPLEMENTATION. As with new, it is the callers reponsabilty to delete the object when no longer needed.

Returns:
Pointer to new Type object

Reimplemented from faudes::AttributeCFlags.

Definition at line 15 of file sp_simeventset.cpp.

const SimEventAttribute * faudes::SimEventAttribute::Cast ( const Type pOther  )  const [virtual]

Cast other object to this type.

Enables the run-time interface to test whether pObject is derived from this object. This feature is used e.g. in the faudes container classes to test attributes. Derived classes must reimplement this function using the appropriate dynamic cast.

Re-implementation can be done via the convenience macros FAUDES_TYPE_DECLARATION and FAUDES_TYPE_IMPLEMENTATION.

Returns:
Typed pointer object

Reimplemented from faudes::AttributeCFlags.

Definition at line 15 of file sp_simeventset.cpp.

SimEventAttribute & faudes::SimEventAttribute::Assign ( const Type rSrc  )  [virtual]

Assign configuration data from other object.

Derived classes should reimplement this method to first try to cast the source to the respective class. If successful, the protected function DoAssign is invoked to perform the actual assignment. If the cast fails, the Assign method of the parent class is called. Thus, faudes objects are up- and downcatsted for assignment, maintaining as much of the source data as digestable by the destination object. On the downside, there is no sensible typechecking at compile-time.

Re-implementation can be done via the convenience macros FAUDES_TYPE_DECLARATION and FAUDES_TYPE_IMPLEMENTATION.

Parameters:
rSrc Source to copy from
Returns:
Reference to this object.

Reimplemented from faudes::AttributeCFlags.

Definition at line 15 of file sp_simeventset.cpp.

bool faudes::SimEventAttribute::Equal ( const Type rOther  )  const [virtual]

Test equality of configuration data.

Derived classes should reimplement this method to return true if both actual types and configuration data match. The object name is not consired in the test.

This method calls the virtual method DoEqual(). Re-implementation can be done via the convenience macros FAUDES_TYPE_DECLARATION and FAUDES_TYPE_IMPLEMENTATION.

Parameters:
rOther Other objevt to compare with.
Returns:
True on match.

Reimplemented from faudes::AttributeCFlags.

Definition at line 15 of file sp_simeventset.cpp.

SimEventAttribute & faudes::SimEventAttribute::operator= ( const SimEventAttribute rSrc  )  [virtual]

Definition at line 15 of file sp_simeventset.cpp.

bool faudes::SimEventAttribute::operator== ( const SimEventAttribute rOther  )  const [virtual]

Definition at line 15 of file sp_simeventset.cpp.

bool faudes::SimEventAttribute::operator!= ( const SimEventAttribute rOther  )  const [virtual]

Definition at line 15 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 179 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 188 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 196 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 205 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 216 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 228 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 238 of file sp_simeventset.h.

SimEventAttribute & 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 32 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 82 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 46 of file sp_simeventset.cpp.


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.

Definition at line 238 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 251 of file sp_simeventset.h.

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

Indicate precense of stochastic behaviour.

Definition at line 269 of file sp_simeventset.h.

Indicate precense of priority property.

Definition at line 272 of file sp_simeventset.h.

Priority definition data.

Definition at line 275 of file sp_simeventset.h.

Stochastic definition data.

Definition at line 278 of file sp_simeventset.h.


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

libFAUDES 2.14g --- 2009-12-3 --- c++ source docu by doxygen 1.5.6