Classes |
class | Guts |
| The abstract parent of all Subsystem "Guts" implementation classes. More...
|
Public Member Functions |
| Subsystem () |
| Subsystem (const Subsystem &) |
Subsystem & | operator= (const Subsystem &) |
| ~Subsystem () |
const String & | getName () const |
const String & | getVersion () const |
QIndex | allocateQ (State &, const Vector &qInit) const |
UIndex | allocateU (State &, const Vector &uInit) const |
ZIndex | allocateZ (State &, const Vector &zInit) const |
DiscreteVariableIndex | allocateDiscreteVariable (State &, Stage invalidates, AbstractValue *v) const |
DiscreteVariableIndex | allocateAutoUpdateDiscreteVariable (State &, Stage invalidates, AbstractValue *v, Stage updateDependsOn) const |
CacheEntryIndex | allocateCacheEntry (const State &, Stage dependsOn, Stage computedBy, AbstractValue *v) const |
CacheEntryIndex | allocateCacheEntry (const State &state, Stage g, AbstractValue *v) const |
CacheEntryIndex | allocateLazyCacheEntry (const State &state, Stage earliest, AbstractValue *v) const |
QErrIndex | allocateQErr (const State &, int nqerr) const |
UErrIndex | allocateUErr (const State &, int nuerr) const |
UDotErrIndex | allocateUDotErr (const State &, int nudoterr) const |
EventTriggerByStageIndex | allocateEventTriggersByStage (const State &, Stage, int ntriggers) const |
const Vector & | getQ (const State &) const |
const Vector & | getU (const State &) const |
const Vector & | getZ (const State &) const |
const Vector & | getQDot (const State &) const |
const Vector & | getUDot (const State &) const |
const Vector & | getZDot (const State &) const |
const Vector & | getQDotDot (const State &) const |
const Vector & | getQErr (const State &) const |
const Vector & | getUErr (const State &) const |
const Vector & | getUDotErr (const State &) const |
const Vector & | getMultipliers (const State &) const |
const Vector & | getEventTriggersByStage (const State &, Stage) const |
Vector & | updQ (State &) const |
Vector & | updU (State &) const |
Vector & | updZ (State &) const |
void | setQ (State &s, const Vector &q) const |
void | setU (State &s, const Vector &u) const |
void | setZ (State &s, const Vector &z) const |
Vector & | updQDot (const State &) const |
Vector & | updUDot (const State &) const |
Vector & | updZDot (const State &) const |
Vector & | updQDotDot (const State &) const |
Vector & | updQErr (const State &) const |
Vector & | updUErr (const State &) const |
Vector & | updUDotErr (const State &) const |
Vector & | updMultipliers (const State &) const |
Vector & | updEventTriggersByStage (const State &, Stage) const |
Stage | getStage (const State &) const |
const AbstractValue & | getDiscreteVariable (const State &s, DiscreteVariableIndex dx) const |
Real | getDiscreteVarLastUpdateTime (const State &s, DiscreteVariableIndex dx) const |
CacheEntryIndex | getDiscreteVarUpdateIndex (const State &s, DiscreteVariableIndex dx) const |
const AbstractValue & | getDiscreteVarUpdateValue (const State &s, DiscreteVariableIndex dx) const |
AbstractValue & | updDiscreteVarUpdateValue (const State &s, DiscreteVariableIndex dx) const |
bool | isDiscreteVarUpdateValueRealized (const State &s, DiscreteVariableIndex dx) const |
void | markDiscreteVarUpdateValueRealized (const State &s, DiscreteVariableIndex dx) const |
AbstractValue & | updDiscreteVariable (State &, DiscreteVariableIndex) const |
const AbstractValue & | getCacheEntry (const State &, CacheEntryIndex) const |
AbstractValue & | updCacheEntry (const State &, CacheEntryIndex) const |
bool | isCacheValueRealized (const State &, CacheEntryIndex) const |
void | markCacheValueRealized (const State &, CacheEntryIndex) const |
void | markCacheValueNotRealized (const State &, CacheEntryIndex) const |
SystemQIndex | getQStart (const State &) const |
int | getNQ (const State &) const |
SystemUIndex | getUStart (const State &) const |
int | getNU (const State &) const |
SystemZIndex | getZStart (const State &) const |
int | getNZ (const State &) const |
SystemQErrIndex | getQErrStart (const State &) const |
int | getNQErr (const State &) const |
SystemUErrIndex | getUErrStart (const State &) const |
int | getNUErr (const State &) const |
SystemUDotErrIndex | getUDotErrStart (const State &) const |
int | getNUDotErr (const State &) const |
SystemMultiplierIndex | getMultipliersStart (const State &) const |
int | getNMultipliers (const State &) const |
SystemEventTriggerByStageIndex | getEventTriggerStartByStage (const State &, Stage) const |
int | getNEventTriggersByStage (const State &, Stage) const |
bool | isInSystem () const |
bool | isInSameSystem (const Subsystem &otherSubsystem) const |
const System & | getSystem () const |
System & | updSystem () |
SubsystemIndex | getMySubsystemIndex () const |
bool | isOwnerHandle () const |
bool | isEmptyHandle () const |
bool | isSameSubsystem (const Subsystem &otherSubsystem) const |
bool | subsystemTopologyHasBeenRealized () const |
void | invalidateSubsystemTopologyCache () const |
MeasureIndex | adoptMeasure (AbstractMeasure &) |
AbstractMeasure | getMeasure (MeasureIndex) const |
template<class T > |
Measure_< T > | getMeasure_ (MeasureIndex mx) const |
const Subsystem::Guts & | getSubsystemGuts () const |
Subsystem::Guts & | updSubsystemGuts () |
void | adoptSubsystemGuts (Subsystem::Guts *g) |
void | setSystem (System &, SubsystemIndex) |
| Subsystem (Subsystem::Guts *g) |
bool | hasGuts () const |
Friends |
class | Guts |
The abstract parent of all Subsystems.
A Subsystem is expected to be part of a larger System and to have interdependencies with other subsystems of that same system. It must NOT have dependencies on objects which are outside the System. Consequently construction of any concrete subsystem requires specification of a system at that time. Subsystems go through an extended construction phase in which their contents and interdependencies are created. Thus all of a System's Subsystems generally need to be available simultaneously during construction, so that they can reference each other.
There are three distinct users of this class:
- the System class
- the concrete Subsystems derived from this class
- the end user of a concrete Subsystem Only end user methods are public here. Methods intended for use by the concrete Subsystem class can be found in the Subsystem::Guts class which is defined in a separate header file. End users need not look over there -- trust me, you'll find it disturbing if you do!