SGRawValue Class Template Reference

#include <props.hxx>

Inherited by SGRawValueFunctions, SGRawValueFunctionsIndexed, SGRawValueMethods, SGRawValueMethodsIndexed, and SGRawValuePointer.

List of all members.


Detailed Description

template<class T>
class SGRawValue< T >

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 raw value contains no facilities for data binding or for type conversion: it is simply the abstraction of a primitive data type (or a compound data type, in the case of a string).

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

Definition at line 149 of file props.hxx.


Public Member Functions

virtual SGRawValueclone () const =0
 Create a new deep copy of this raw value.
virtual T getValue () const =0
 Return the underlying value.
virtual bool setValue (T value)=0
 Assign a new underlying value.
 SGRawValue ()
 Constructor.
virtual ~SGRawValue ()
 Destructor.

Static Public Attributes

static const T DefaultValue
 The default underlying value for this type.

Constructor & Destructor Documentation

SGRawValue (  )  [inline]

Use the default value for this type.

Definition at line 170 of file props.hxx.


Member Function Documentation

virtual SGRawValue* clone (  )  const [pure virtual]

The copy will contain its own version of the underlying value as well.

Returns:
A deep copy of the current object.

Implemented in SGRawValuePointer, SGRawValueFunctions, SGRawValueFunctionsIndexed, SGRawValueMethods, and SGRawValueMethodsIndexed.

virtual T getValue (  )  const [pure virtual]

Returns:
The actual value for the property.
See also:
setValue

Implemented in SGRawValuePointer, SGRawValueFunctions, SGRawValueFunctionsIndexed, SGRawValueMethods, and SGRawValueMethodsIndexed.

virtual bool setValue ( value  )  [pure virtual]

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:
value The actual value for the property.
Returns:
true if the value was set successfully, false otherwise.
See also:
getValue

Implemented in SGRawValuePointer, SGRawValueFunctions, SGRawValueFunctionsIndexed, SGRawValueMethods, and SGRawValueMethodsIndexed.


Member Data Documentation

const T DefaultValue [static]

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 162 of file props.hxx.


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

Generated on Tue May 26 00:55:08 2009 for JSBSim Flight Dynamics Model by  doxygen 1.5.5