#include <SIBCNode.h>
Inheritance diagram for CSIBCNode:

Public Member Functions |
|
| CSIBCNode () | |
| virtual void | Dump () |
| virtual SI_UInt | UsedMemory () |
| virtual SI_UInt | AllocatedMemory () |
| virtual SI_UInt | LocalSize () |
| CSIBCString & | Name () |
| SI_UInt | GetFlags () |
| SI_Void | SetFlags (SI_UInt in_lFlags) |
| CSIBCArray< CSIBCUserData * > & | UserDataList () |
| CSIBCUserData * | FindUserData (SI_Char *in_pTag) |
| CSIBCUserData * | GetUserData (SI_Int in_iIndex) |
| SI_Error | AttachUserData (SI_Char *in_pTag, SI_Void *in_pData) |
| SI_Error | RemoveUserData (SI_Char *in_pTag) |
| virtual CSIBCNode * | Duplicate (CSIBCNode *i_pNode) |
This class provides a set of methods available to all classes that are derived from it, including memory usage functions, identification functions, and functions dealing with user data, represented by CSIBCUserData objects.
| CSIBCNode | ( | ) |
Default constructor. Simply clears all flags for the new node. (See CSIBCNode::SetFlags)
| virtual void Dump | ( | ) | [virtual] |
Outputs debugging information for the node. This method is over-ridable, but in this base class, it simply outputs the address of the node. Note: although this method is over-ridable, it is generally left to this base implementation.
| virtual SI_UInt UsedMemory | ( | ) | [virtual] |
Returns how much memory this node uses. This number does not include how much space the object itself requires (see CSIBCNode::LocalSize), only the memory used by its members. This number is distinct from the memory actually allocated by the object (See CSIBCNode::AllocatedMemory).
| virtual SI_UInt AllocatedMemory | ( | ) | [virtual] |
Returns how much memory this node has allocated. This number does not include how much space the object itself requires (see CSIBCNode::LocalSize), only the memory allocated by its members. This number is distinct from the memory actually used by the object (See CSIBCNode::UsedMemory).
| virtual SI_UInt LocalSize | ( | ) | [virtual] |
Returns the size of this object (analogous to the sizeof operator). As such, it does not include any memory dynamically allocated by the members of the class.
| CSIBCString& Name | ( | ) | [inline] |
Gets the name string for the object.
| SI_UInt GetFlags | ( | ) | [inline] |
Get the flags associated with this node.
| SI_Void SetFlags | ( | SI_UInt | in_lFlags | ) | [inline] |
Sets the flags associated with this node. Note that this function unsets all flags, thus if flags need to be persisted, they should first be obtained from SIBCNode::GetFlags, and bit-wise OR'd with the new flags, and then sent to this function.
| [in] | in_lFlags | The new flag state for this node. |
| CSIBCArray< CSIBCUserData* >& UserDataList | ( | ) | [inline] |
Returns a CSIBCArray of the user data attached to this node.
| CSIBCUserData* FindUserData | ( | SI_Char * | in_pTag | ) |
Finds the first instance of CSIBCUserData attached to this node with the tag name given by in_pTag.
| [in] | in_pTag | The tag name to search attached user data objects for. |
in_pTag. Returns NULL if no user data is attached with the tag name. Reimplemented in CSLUserDataList.
| CSIBCUserData* GetUserData | ( | SI_Int | in_iIndex | ) |
Returns the user data attached at a given index.
| [in] | in_iIndex | Index of the attached user data object to retrieve. Must be a valid index. |
in_iIndex| SI_Error AttachUserData | ( | SI_Char * | in_pTag, | |
| SI_Void * | in_pData | |||
| ) |
Attaches user data to this node. Creates a new CSIBCUserData object, containing
| [in] | in_pTag | Tag name used to attach the data to the node. Must be unique per node. |
| [in] | in_pData | Pointer to the data to attach (may be of any type, cast to SI_Void *). |
| SI_Error::SI_SUCCESS | The user data was attached properly |
| SI_Error RemoveUserData | ( | SI_Char * | in_pTag | ) |
Finds the first instance of CSIBCUserData attached to this node with the tag name given by in_pTag and remove it.
| [in] | in_pTag | The tag name of the user data object to remove. |
Creates a duplicate node containing the information contained in this node. This method is intended to be over-ridden by subclasses, because the duplication process will always be derived class specific. If i_pNode is NULL, a new node is created to duplicate this node's information, otherwise, the data contained within i_pNode is overwritten by the information from this node.
| [in] | i_pNode | Node to put the duplicate information into. If NULL, a new node is created. |