This class is basically a glorified enumerated type, type-safe and range checked but permitting convenient (if limited) arithmetic. More...
#include <Stage.h>
Public Types | |
enum | Num { EmptyIndex = 0, TopologyIndex = 1, ModelIndex = 2, InstanceIndex = 3, TimeIndex = 4, PositionIndex = 5, VelocityIndex = 6, DynamicsIndex = 7, AccelerationIndex = 8, ReportIndex = 9, InfinityIndex = 10 } |
Public Member Functions | |
Stage | next () const |
Stage | prev () const |
void | invalidate (Stage tooHigh) |
bool | isInRuntimeRange () const |
Static Public Attributes | |
static const Stage | Empty |
static const Stage | Topology |
static const Stage | Model |
static const Stage | Instance |
static const Stage | Time |
static const Stage | Position |
static const Stage | Velocity |
static const Stage | Dynamics |
static const Stage | Acceleration |
static const Stage | Report |
static const Stage | Infinity |
static const Stage | LowestValid |
static const Stage | HighestValid |
static const int | NValid = InfinityIndex-EmptyIndex+1 |
static const Stage | LowestRuntime |
static const Stage | HighestRuntime |
static const int | NRuntime = ReportIndex-ModelIndex+1 |
Friends | |
class | Enumeration< Stage > |
This class is basically a glorified enumerated type, type-safe and range checked but permitting convenient (if limited) arithmetic.
Constants look like Stage::Position, and loops can be written like for(Stage s=StageLowestValid; s <= Stage::HighestValid; ++s) ... Stage constants (of type Stage::Num) are implicitly converted to type Stage when necessary. If you want to use a Stage in a switch statement you have to use the Stage::Num indices rather than a Stage constant as case labels.
There is no default construction -- all Stage variables must be initialized explicitly. (I would like them to initialize to Stage::Empty but the Enumeration<> template doesn't allow that.)
enum Num |
void invalidate | ( | Stage | tooHigh | ) | [inline] |
References Enumeration< T >::getIndex(), and Stage::prev().
bool isInRuntimeRange | ( | ) | const [inline] |
References Stage::HighestRuntime, and Stage::LowestRuntime.
Stage next | ( | ) | const [inline] |
Stage prev | ( | ) | const [inline] |
Referenced by Stage::invalidate().
friend class Enumeration< Stage > [friend] |
const Stage Acceleration [static] |
Referenced by Implementation::getDependsOnStageVirtual(), and Implementation::getValue().
const Stage HighestRuntime [static] |
Referenced by Stage::isInRuntimeRange().
const Stage HighestValid [static] |
const Stage LowestRuntime [static] |
Referenced by Stage::isInRuntimeRange().
const Stage LowestValid [static] |
Referenced by Implementation::getDependsOnStageVirtual().
const int NRuntime = ReportIndex-ModelIndex+1 [static] |
const int NValid = InfinityIndex-EmptyIndex+1 [static] |
Referenced by PeriodicPdbWriter::handleEvent().
Referenced by Implementation::getDependsOnStageVirtual().
Referenced by Implementation::getDependsOnStageVirtual().