00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __CSOBJ_H__
00021 #define __CSOBJ_H__
00022
00023 #include "cstypes.h"
00024 #include "csutil/util.h"
00025 #include "iutil/object.h"
00026
00032 class csObject : public iObject
00033 {
00034 protected:
00035 friend class csObjectIterator;
00037 CS_ID csid;
00038
00040 class csObjectContainer *Children;
00041
00043 char *Name;
00044
00046 iObject *ParentObject;
00047
00049 void InitializeObject ();
00050
00051 public:
00053 csObject (iBase* pParent = NULL);
00054
00060 csObject (csObject &o);
00061
00063 virtual ~csObject ();
00064
00066 virtual void SetName (const char *iName);
00067
00069 virtual const char *GetName () const;
00070
00072 virtual CS_ID GetID () const;
00073
00075 virtual void SetObjectParent (iObject *);
00076
00078 virtual iObject* GetObjectParent () const;
00079
00081 virtual void ObjAdd (iObject *obj);
00082
00084 virtual void ObjRemove (iObject *obj);
00085
00087 virtual void ObjRemoveAll ();
00088
00090 virtual void ObjAddChildren (iObject *Parent);
00091
00102 virtual void* GetChild (int iInterfaceID, int iVersion,
00103 const char *Name = NULL, bool FirstName = false) const;
00104
00106 virtual iObject *GetChild (const char *Name) const;
00107
00112 virtual iObjectIterator *GetIterator ();
00113
00114 SCF_DECLARE_IBASE;
00115
00116
00117 virtual void ObjReleaseOld (iObject *obj);
00118 };
00119
00120 #endif // __CSOBJ_H__