00001 00009 #pragma once 00010 #include "WDError.h" 00011 #include "IObjectEventHandler.h" 00012 00013 class IObjectManager; 00014 class IManagedObject; 00015 00022 class IManagedObject: public IObjectEventHandler 00023 { 00024 protected: 00028 // virtual WDError setType(const char *inType) = 0; 00029 00030 public: 00035 virtual void* getChild(int inIndex) = 0; 00036 00037 /* Returns the type of the child at the specified index 00038 * \param inIndex index of the requested child 00039 * \param outType type of the specified child 00040 * \param inMaxLength size of the character buffer 00041 */ 00042 virtual void getChildType(int inIndex, char *outType, int inMaxLength) = 0; 00043 00044 /* Returns the type of the object 00045 * \param outType type of the object 00046 * \param inMaxLength size of the character buffer 00047 */ 00048 virtual void getType(char *outType, int inMaxLength) = 0; 00049 00050 /* Returns the data node associated to the ManagedObject */ 00051 virtual void* getNode() = 0; 00052 00053 /* Returns the parent data node of the associated ManagedObject */ 00054 virtual void* getParentNode() = 0; 00055 00056 /* Returns the ObjectManager of the ManagedObject */ 00057 virtual IObjectManager* getManager() = 0; 00058 00059 /* Returns the database of the ObjetManager */ 00060 virtual IObjectEventHandler* getEventHandler() = 0; 00061 00066 virtual WDError setAttribute(const char *inAttribute, const char *inValue) = 0; 00067 00074 virtual WDError getAttribute(const char *inAttribute, char *outValue, int inMaxLength) = 0; 00075 00078 virtual int getChildCount() = 0; 00079 00083 virtual WDError setName(const char *inName) = 0; 00084 00089 virtual WDError getName(char *outName, int inMaxLength) = 0; 00090 00093 virtual int getIndex() = 0; 00094 };