![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2002 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: orgMgrNode.h,v $ $Revision: 1.9 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 #ifndef DtOrganizationManagerNode_H_ 00016 #define DtOrganizationManagerNode_H_ 00017 00018 #include "vrfobjcore/entIdCbInfo.h" 00019 00020 #include <vlutil/vlList.h> 00021 #include <vl/hostStructs.h> 00022 #include <list> 00023 #include <vector> 00024 00026 #include "vrfobjcore/vrfobjcoreDefines.h" 00027 class DT_DLL_vrfobjcore DtOrganizationManagerNode 00028 { 00029 public: 00030 DtOrganizationManagerNode(); 00031 virtual ~DtOrganizationManagerNode(); 00032 00033 private: 00035 DtOrganizationManagerNode(const DtOrganizationManagerNode& orig); 00037 DtOrganizationManagerNode& operator=(const DtOrganizationManagerNode& orig); 00038 00039 public: 00040 00043 virtual const DtList* childList() const; 00044 virtual DtList* childList(); 00046 00050 virtual bool removeChild(const DtOrganizationManagerNode* node); 00051 virtual void removeAllChildren(); 00052 virtual void addChild(DtOrganizationManagerNode* node); 00061 virtual void orderChildren(const std::vector<DtEntityIdentifier>& childOrder); 00062 00065 virtual void setParent(DtOrganizationManagerNode* parent); 00066 virtual DtOrganizationManagerNode* parent() const; 00068 00071 virtual void setObjectId(const DtEntityIdentifier &id); 00072 virtual const DtEntityIdentifier& objectId() const; 00074 00078 virtual void setIsTopLevel(bool isTopLevel); 00079 virtual bool isTopLevel() const; 00081 00085 virtual void addChildAddedCallback( 00086 DtEntityIdentifierCallbackFunction fcn, void* userData); 00087 virtual void removeChildAddedCallback( 00088 DtEntityIdentifierCallbackFunction fcn, void* userData); 00090 00094 virtual void addChildRemovedCallback( 00095 DtEntityIdentifierCallbackFunction fcn, void* userData); 00096 virtual void removeChildRemovedCallback( 00097 DtEntityIdentifierCallbackFunction fcn, void* userData); 00099 00107 virtual void addSubordinatesChangedCallback( 00108 DtEntityIdentifierCallbackFunction fcn, void* userData); 00109 virtual void removeSubordinatesChangedCallback( 00110 DtEntityIdentifierCallbackFunction fcn, void* userData); 00112 00113 protected: 00114 00116 virtual void invokeSubordinatesChangedCallbacks( 00117 const DtEntityIdentifier& entId) const; 00118 00121 virtual void invokeChildAddedCallbacks( 00122 const DtEntityIdentifier& entId) const; 00123 00126 virtual void invokeChildRemovedCallbacks( 00127 const DtEntityIdentifier& entId) const; 00128 00130 void removeAllSubordinatesChangedCallbacks(); 00131 00132 protected: 00134 DtList myChildList; 00135 DtOrganizationManagerNode* myParentNode; 00136 DtEntityIdentifier myObjectId; 00137 bool myIsTopLevel; 00138 00139 DtList mySubordinatesChangedCallbackList; 00140 std::list<DtEntityIdentifierCallbackInfo> myChildAddedCallbackList; 00141 std::list<DtEntityIdentifierCallbackInfo> myChildRemovedCallbackList; 00142 }; 00143 #endif 00144