00001
00009 #pragma once
00010
00011 #include "WDError.h"
00012 class IManagedObject;
00013
00021 class IObjectManager
00022 {
00023 public:
00024 virtual ~IObjectManager() {}
00025
00030 virtual WDError subscribe(IManagedObject *inObject, void *inTargetNode) = 0;
00031
00035 virtual void release(IManagedObject *inObject) = 0;
00036
00039 virtual void* getRoot() = 0;
00040
00045 virtual void* getChild(void *inNode, int inIndex) = 0;
00046
00052 virtual void getType(void *inNode, char *outType, int inMaxLength) = 0;
00053
00059 virtual WDError setAttribute(void *inNode, const char *inAttribute, const char *inValue) = 0;
00060
00067 virtual WDError getAttribute(void *inNode, const char *inAttribute, char *outValue, int inMaxLength) = 0;
00068
00073 virtual WDError saveToFile(const char *inFileName) = 0;
00074
00079 virtual void* newChildNode(const char *inType, void *inParent) = 0;
00080
00084 virtual int getChildCount(void *inNode) = 0;
00085
00089 virtual void* getParentNode(void *inNode) = 0;
00090
00095 virtual void* findNode(const char *nodeID, void *inRoot) = 0;
00096
00100 virtual int getIndex(void *inNode) = 0;
00101
00106 virtual void registerObject(void *inObject) = 0;
00107
00108
00109
00113 virtual void notifyChanged(void *inNode) = 0;
00114
00119 virtual void notifyChildAdded(void *inStartNode, void *inChildNode) = 0;
00120
00125 virtual void notifyChildChanged(void *inStartNode, void *inChildNode) = 0;
00126 };
00127
00128