JSBSim Flight Dynamics Model 1.2.3 (07 Jun 2025)
An Open Source Flight Dynamics and Control Software Library in C++
Loading...
Searching...
No Matches
SGRawValue< T > Class Template Referenceabstract

Detailed Description

template<class T>
class SGRawValue< T >

Abstract base class for a raw value.

The property manager is implemented in two layers. The SGPropertyNode is the highest and most abstract layer, representing an LValue/RValue pair: it records the position of the property in the property tree and contains facilities for navigation to other nodes. It is guaranteed to be persistent: the SGPropertyNode will not change during a session, even if the property is bound and unbound multiple times.

When the property value is not managed internally in the SGPropertyNode, the SGPropertyNode will contain a reference to an SGRawValue (this class), which provides an abstract way to get, set, and clone the underlying value. The SGRawValue may change frequently during a session as a value is retyped or bound and unbound to various data source, but the abstract SGPropertyNode layer insulates the application from those changes.

The SGPropertyNode class always keeps a copy of a raw value, not the original one passed to it; if you override a derived class but do not replace the clone() method, strange things will happen.

All derived SGRawValue classes must implement getValue(), setValue(), and clone() for the appropriate type.

See also
SGPropertyNode
SGRawValuePointer
SGRawValueFunctions
SGRawValueFunctionsIndexed
SGRawValueMethods
SGRawValueMethodsIndexed
SGRawValueContainer

Definition at line 319 of file props.hxx.

#include <props.hxx>

+ Inheritance diagram for SGRawValue< T >:
+ Collaboration diagram for SGRawValue< T >:

Public Member Functions

 SGRawValue ()
 Constructor.
 
virtual ~SGRawValue ()
 Destructor.
 
bool DefaultValue ()
 
const char * DefaultValue ()
 
virtual simgear::props::Type getType () const
 Return the type tag for this raw value type.
 
virtual T getValue () const =0
 Return the underlying value.
 
virtual bool setValue (T value)=0
 Assign a new underlying value.
 

Static Public Member Functions

static T DefaultValue ()
 The default underlying value for this type.
 

Constructor & Destructor Documentation

◆ SGRawValue()

template<class T >
SGRawValue ( )
inline

Constructor.

Use the default value for this type.

Definition at line 343 of file props.hxx.

343{}

◆ ~SGRawValue()

template<class T >
virtual ~SGRawValue ( )
inlinevirtual

Destructor.

Definition at line 349 of file props.hxx.

349{}

Member Function Documentation

◆ DefaultValue() [1/3]

template<class T >
static T DefaultValue ( )
inlinestatic

The default underlying value for this type.

Every raw value has a default; the default is false for a boolean, 0 for the various numeric values, and "" for a string. If additional types of raw values are added in the future, they may need different kinds of default values (such as epoch for a date type). The default value is used when creating new values.

Definition at line 332 of file props.hxx.

333 {
334 return T();
335 }
+ Here is the caller graph for this function:

◆ DefaultValue() [2/3]

bool DefaultValue ( )
inline

Definition at line 391 of file props.hxx.

392{
393 return false;
394}

◆ DefaultValue() [3/3]

const char * DefaultValue ( )
inline

Definition at line 396 of file props.hxx.

397{
398 return "";
399}

◆ getType()

template<class T >
virtual simgear::props::Type getType ( ) const
inlinevirtual

Return the type tag for this raw value type.

Definition at line 379 of file props.hxx.

◆ getValue()

template<class T >
virtual T getValue ( ) const
pure virtual

Return the underlying value.

Returns
The actual value for the property.
See also
setValue

Implemented in SGRawValuePointer< T >, SGRawValueFunctions< T >, SGRawValueFunctionsIndexed< T >, SGRawValueMethods< C, T >, SGRawValueMethodsIndexed< C, T >, and SGRawValueContainer< T >.

◆ setValue()

template<class T >
virtual bool setValue ( value)
pure virtual

Assign a new underlying value.

If the new value cannot be set (because this is a read-only raw value, or because the new value is not acceptable for some reason) this method returns false and leaves the original value unchanged.

Parameters
valueThe actual value for the property.
Returns
true if the value was set successfully, false otherwise.
See also
getValue

Implemented in SGRawValuePointer< T >, SGRawValueFunctions< T >, SGRawValueFunctionsIndexed< T >, SGRawValueMethods< C, T >, SGRawValueMethodsIndexed< C, T >, and SGRawValueContainer< T >.


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