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
00048 public:
00050 csObject (iBase* pParent = NULL);
00052 virtual ~csObject ();
00053
00055 virtual void SetName (const char *iName);
00056
00058 virtual const char *GetName () const;
00059
00061 virtual CS_ID GetID () const;
00062
00064 virtual void SetObjectParent (iObject *);
00065
00067 virtual iObject* GetObjectParent () const;
00068
00070 virtual void ObjAdd (iObject *obj);
00071
00073 virtual void ObjRemove (iObject *obj);
00074
00076 virtual void ObjRemoveAll ();
00077
00079 virtual void ObjAddChildren (iObject *Parent);
00080
00091 virtual void* GetChild (int iInterfaceID, int iVersion,
00092 const char *Name = NULL, bool FirstName = false) const;
00093
00095 virtual iObject *GetChild (const char *Name) const;
00096
00101 virtual iObjectIterator *GetIterator ();
00102
00103 SCF_DECLARE_IBASE;
00104
00105
00106 virtual void ObjReleaseOld (iObject *obj);
00107 };
00108
00109 #endif // __CSOBJ_H__