CrystalSpace

Public API Reference

csObject Class Reference

A generic csObject class. More...

#include <csutil/csobject.h>

Inheritance diagram for csObject:

Inheritance graph
[legend]
List of all members.

Public Member Functions

virtual void AddNameChangeListener (iObjectNameChangeListener *listener)
 Add a name change listener.
 csObject (csObject &o)
 Copy constructor.
 csObject (iBase *pParent=0)
 Initialize the csObject.
virtual iObjectGetChild (const char *Name) const
 Return the first child object with the given name.
virtual iObjectGetChild (int iInterfaceID, int iVersion, const char *Name=0, bool FirstName=false) const
 Look for a child object that implements the given interface.
virtual uint GetID () const
 Get the unique ID associated with this object.
virtual csPtr< iObjectIteratorGetIterator ()
 Return an iterator for all child objects.
virtual const char * GetName () const
 Query object name.
virtual iObjectGetObjectParent () const
 Returns the parent iObject.
virtual void ObjAdd (iObject *obj)
 Attach a new iObject to the tree.
virtual void ObjAddChildren (iObject *Parent)
 Add all child objects of the given object.
virtual void ObjReleaseOld (iObject *obj)
virtual void ObjRemove (iObject *obj)
 Deletes the given object, removing it from the object tree.
virtual void ObjRemoveAll ()
 Deletes all objects, removing them from the object tree.
virtual void RemoveNameChangeListener (iObjectNameChangeListener *listener)
 Remove a name change listener.
virtual void SetName (const char *iName)
 Set object name.
virtual void SetObjectParent (iObject *)
 Set the parent csObject.
virtual ~csObject ()
 Destroy this object and the associated children.

Protected Member Functions

void FireNameChangeListeners (const char *oldname, const char *newname)
 Fire name change listeners.
void InitializeObject ()
 Private initialization function.

Protected Attributes

csObjectContainerChildren
 The array of child nodes.
uint csid
 Each object has a unique ID associated with it.
csRefArray< iObjectNameChangeListenerlisteners
 Name change listeners.
char * Name
 Object's name or 0 if unnamed.
iObjectParentObject
 Parent object.

Friends

class csObjectIterator

Detailed Description

A generic csObject class.

Any csObject can have any number of iObject children attached to it. You can use scfQueryInterface to get interfaces from the child objects.

Definition at line 42 of file csobject.h.


Constructor & Destructor Documentation

csObject::csObject ( iBase pParent = 0  ) 

Initialize the csObject.

csObject::csObject ( csObject o  ) 

Copy constructor.

The copied object contains all children of the original object, but has a new ID and is not automatically added to the original object's parent.

virtual csObject::~csObject (  )  [virtual]

Destroy this object and the associated children.


Member Function Documentation

virtual void csObject::AddNameChangeListener ( iObjectNameChangeListener listener  )  [virtual]

Add a name change listener.

Implements iObject.

void csObject::FireNameChangeListeners ( const char *  oldname,
const char *  newname 
) [protected]

Fire name change listeners.

virtual iObject* csObject::GetChild ( const char *  Name  )  const [virtual]

Return the first child object with the given name.

Implements iObject.

virtual iObject* csObject::GetChild ( int  iInterfaceID,
int  iVersion,
const char *  Name = 0,
bool  FirstName = false 
) const [virtual]

Look for a child object that implements the given interface.

You can optionally pass a name to look for. If FirstName is true then the method will stop at the first object with the requested name, even if it did not implement the requested type. Note that the returned object must still be queried for the requested type.

Note that the returned object will be IncRef'ed.

Implements iObject.

virtual uint csObject::GetID (  )  const [virtual]

Get the unique ID associated with this object.

Implements iObject.

virtual csPtr<iObjectIterator> csObject::GetIterator (  )  [virtual]

Return an iterator for all child objects.

Note that you should not remove child objects while iterating.

Implements iObject.

virtual const char* csObject::GetName (  )  const [virtual]

Query object name.

Implements iObject.

virtual iObject* csObject::GetObjectParent (  )  const [virtual]

Returns the parent iObject.

Implements iObject.

void csObject::InitializeObject (  )  [protected]

Private initialization function.

virtual void csObject::ObjAdd ( iObject obj  )  [virtual]

Attach a new iObject to the tree.

Implements iObject.

virtual void csObject::ObjAddChildren ( iObject Parent  )  [virtual]

Add all child objects of the given object.

Implements iObject.

virtual void csObject::ObjReleaseOld ( iObject obj  )  [virtual]

Todo:
Investigate a way to remove this function.

Implements iObject.

virtual void csObject::ObjRemove ( iObject obj  )  [virtual]

Deletes the given object, removing it from the object tree.

Implements iObject.

virtual void csObject::ObjRemoveAll (  )  [virtual]

Deletes all objects, removing them from the object tree.

Implements iObject.

virtual void csObject::RemoveNameChangeListener ( iObjectNameChangeListener listener  )  [virtual]

Remove a name change listener.

Implements iObject.

virtual void csObject::SetName ( const char *  iName  )  [virtual]

Set object name.

Implements iObject.

virtual void csObject::SetObjectParent ( iObject  )  [virtual]

Set the parent csObject.

Implements iObject.


Member Data Documentation

The array of child nodes.

Definition at line 51 of file csobject.h.

uint csObject::csid [protected]

Each object has a unique ID associated with it.

Definition at line 48 of file csobject.h.

Name change listeners.

Definition at line 60 of file csobject.h.

char* csObject::Name [protected]

Object's name or 0 if unnamed.

Definition at line 54 of file csobject.h.

Parent object.

Definition at line 57 of file csobject.h.


The documentation for this class was generated from the following file:
Generated for Crystal Space by doxygen 1.4.7