SGPropertyNode Class Reference

A node in a property tree. More...

#include <props.hxx>

Inheritance diagram for SGPropertyNode:

SGReferenced List of all members.

Public Types

enum  
 Public constants.
enum  Type
 Property value types.
enum  Attribute
 Access mode attributes. More...

Public Member Functions

 SGPropertyNode ()
 Default constructor.
 SGPropertyNode (const SGPropertyNode &node)
 Copy constructor.
virtual ~SGPropertyNode ()
 Destructor.
bool hasValue () const
 Test whether this node contains a primitive leaf value.
const char * getName () const
 Get the node's simple (XML) name.
const char * getDisplayName (bool simplify=false) const
 Get the node's pretty display name, with subscript when needed.
int getIndex () const
 Get the node's integer index.
SGPropertyNodegetParent ()
 Get a non-const pointer to the node's parent.
const SGPropertyNodegetParent () const
 Get a const pointer to the node's parent.
int nChildren () const
 Get the number of child nodes.
SGPropertyNodegetChild (int position)
 Get a child node by position (*NOT* index).
const SGPropertyNodegetChild (int position) const
 Get a const child node by position (*NOT* index).
bool hasChild (const char *name, int index=0) const
 Test whether a named child exists.
SGPropertyNodegetChild (const char *name, int index=0, bool create=false)
 Get a child node by name and index.
const SGPropertyNodegetChild (const char *name, int index=0) const
 Get a const child node by name and index.
vector< SGPropertyNode_ptrgetChildren (const char *name) const
 Get a vector of all children with the specified name.
SGPropertyNode_ptr removeChild (int pos, bool keep=true)
 Remove child by position.
SGPropertyNode_ptr removeChild (const char *name, int index=0, bool keep=true)
 Remove a child node.
vector< SGPropertyNode_ptrremoveChildren (const char *name, bool keep=true)
 Remove all children with the specified name.
bool alias (SGPropertyNode *target)
 Alias this node's leaf value to another's.
bool alias (const char *path)
 Alias this node's leaf value to another's by relative path.
bool unalias ()
 Remove any alias for this node.
bool isAlias () const
 Test whether the node's leaf value is aliased to another's.
SGPropertyNodegetAliasTarget ()
 Get a non-const pointer to the current alias target, if any.
const SGPropertyNodegetAliasTarget () const
 Get a const pointer to the current alias target, if any.
const char * getPath (bool simplify=false) const
 Get the path to this node from the root.
SGPropertyNodegetRootNode ()
 Get a pointer to the root node.
const SGPropertyNodegetRootNode () const
 Get a const pointer to the root node.
SGPropertyNodegetNode (const char *relative_path, bool create=false)
 Get a pointer to another node by relative path.
SGPropertyNodegetNode (const char *relative_path, int index, bool create=false)
 Get a pointer to another node by relative path.
const SGPropertyNodegetNode (const char *relative_path) const
 Get a const pointer to another node by relative path.
const SGPropertyNodegetNode (const char *relative_path, int index) const
 Get a const pointer to another node by relative path.
bool getAttribute (Attribute attr) const
 Check a single mode attribute for the property node.
void setAttribute (Attribute attr, bool state)
 Set a single mode attribute for the property node.
int getAttributes () const
 Get all of the mode attributes for the property node.
void setAttributes (int attr)
 Set all of the mode attributes for the property node.
Type getType () const
 Get the type of leaf value, if any, for this node.
bool getBoolValue () const
 Get a bool value for this node.
int getIntValue () const
 Get an int value for this node.
long getLongValue () const
 Get a long int value for this node.
float getFloatValue () const
 Get a float value for this node.
double getDoubleValue () const
 Get a double value for this node.
const char * getStringValue () const
 Get a string value for this node.
bool setBoolValue (bool value)
 Set a bool value for this node.
bool setIntValue (int value)
 Set an int value for this node.
bool setLongValue (long value)
 Set a long int value for this node.
bool setFloatValue (float value)
 Set a float value for this node.
bool setDoubleValue (double value)
 Set a double value for this node.
bool setStringValue (const char *value)
 Set a string value for this node.
bool setUnspecifiedValue (const char *value)
 Set a value of unspecified type for this node.
bool isTied () const
 Test whether this node is bound to an external data source.
bool tie (const SGRawValue< bool > &rawValue, bool useDefault=true)
 Bind this node to an external bool source.
bool tie (const SGRawValue< int > &rawValue, bool useDefault=true)
 Bind this node to an external int source.
bool tie (const SGRawValue< long > &rawValue, bool useDefault=true)
 Bind this node to an external long int source.
bool tie (const SGRawValue< float > &rawValue, bool useDefault=true)
 Bind this node to an external float source.
bool tie (const SGRawValue< double > &rawValue, bool useDefault=true)
 Bind this node to an external double source.
bool tie (const SGRawValue< const char * > &rawValue, bool useDefault=true)
 Bind this node to an external string source.
bool untie ()
 Unbind this node from any external data source.
Type getType (const char *relative_path) const
 Get another node's type.
bool hasValue (const char *relative_path) const
 Test whether another node has a leaf value.
bool getBoolValue (const char *relative_path, bool defaultValue=false) const
 Get another node's value as a bool.
int getIntValue (const char *relative_path, int defaultValue=0) const
 Get another node's value as an int.
long getLongValue (const char *relative_path, long defaultValue=0L) const
 Get another node's value as a long int.
float getFloatValue (const char *relative_path, float defaultValue=0.0) const
 Get another node's value as a float.
double getDoubleValue (const char *relative_path, double defaultValue=0.0L) const
 Get another node's value as a double.
const char * getStringValue (const char *relative_path, const char *defaultValue="") const
 Get another node's value as a string.
bool setBoolValue (const char *relative_path, bool value)
 Set another node's value as a bool.
bool setIntValue (const char *relative_path, int value)
 Set another node's value as an int.
bool setLongValue (const char *relative_path, long value)
 Set another node's value as a long int.
bool setFloatValue (const char *relative_path, float value)
 Set another node's value as a float.
bool setDoubleValue (const char *relative_path, double value)
 Set another node's value as a double.
bool setStringValue (const char *relative_path, const char *value)
 Set another node's value as a string.
bool setUnspecifiedValue (const char *relative_path, const char *value)
 Set another node's value with no specified type.
bool isTied (const char *relative_path) const
 Test whether another node is bound to an external data source.
bool tie (const char *relative_path, const SGRawValue< bool > &rawValue, bool useDefault=true)
 Bind another node to an external bool source.
bool tie (const char *relative_path, const SGRawValue< int > &rawValue, bool useDefault=true)
 Bind another node to an external int source.
bool tie (const char *relative_path, const SGRawValue< long > &rawValue, bool useDefault=true)
 Bind another node to an external long int source.
bool tie (const char *relative_path, const SGRawValue< float > &rawValue, bool useDefault=true)
 Bind another node to an external float source.
bool tie (const char *relative_path, const SGRawValue< double > &rawValue, bool useDefault=true)
 Bind another node to an external double source.
bool tie (const char *relative_path, const SGRawValue< const char * > &rawValue, bool useDefault=true)
 Bind another node to an external string source.
bool untie (const char *relative_path)
 Unbind another node from any external data source.
void addChangeListener (SGPropertyChangeListener *listener, bool initial=false)
 Add a change listener to the property.
void removeChangeListener (SGPropertyChangeListener *listener)
 Remove a change listener from the property.
int nListeners () const
 Get the number of listeners.
void fireValueChanged ()
 Fire a value change event to all listeners.
void fireChildAdded (SGPropertyNode *child)
 Fire a child-added event to all listeners.
void fireChildRemoved (SGPropertyNode *child)
 Fire a child-removed event to all listeners.
void clearValue ()
 Clear any existing value and set the type to NONE.

Static Public Attributes

static const int LAST_USED_ATTRIBUTE
 Last used attribute Update as needed when enum Attribute is changed.

Protected Member Functions

void fireValueChanged (SGPropertyNode *node)
void fireChildAdded (SGPropertyNode *parent, SGPropertyNode *child)
void fireChildRemoved (SGPropertyNode *parent, SGPropertyNode *child)
 SGPropertyNode (const char *name, int index, SGPropertyNode *parent)
 Protected constructor for making new nodes on demand.

Detailed Description

A node in a property tree.

Definition at line 490 of file props.hxx.


Member Enumeration Documentation

enum SGPropertyNode::Attribute

Access mode attributes.

The ARCHIVE attribute is strictly advisory, and controls whether the property should normally be saved and restored.

Definition at line 523 of file props.hxx.


Member Function Documentation

SGPropertyNode * SGPropertyNode::getNode ( const char *  relative_path,
int  index,
bool  create = false 
)

Get a pointer to another node by relative path.

This method leaves the index off the last member of the path, so that the user can specify it separately (and save some string building). For example, getNode("/bar[1]/foo", 3) is exactly equivalent to getNode("bar[1]/foo[3]"). The index provided overrides any given in the path itself for the last component.

Definition at line 1810 of file props.cxx.

const SGPropertyNode * SGPropertyNode::getNode ( const char *  relative_path,
int  index 
) const

Get a const pointer to another node by relative path.

This method leaves the index off the last member of the path, so that the user can specify it separate.

Definition at line 1826 of file props.cxx.

References getNode().

void SGPropertyNode::addChangeListener ( SGPropertyChangeListener listener,
bool  initial = false 
)

Add a change listener to the property.

If "initial" is set call the listener initially.

Definition at line 2096 of file props.cxx.

References SGPropertyChangeListener::register_property(), and SGPropertyChangeListener::valueChanged().


The documentation for this class was generated from the following files:
Generated on Mon Dec 17 09:30:57 2007 for SimGear by  doxygen 1.5.1