17 #include <vlutil/vlList.h>
18 #include <vlutil/vlHashlist.h>
19 #include <vl/globalObjectDesignator.h>
20 #include <vlpi/disEnums.h>
25 #include <boost/unordered_map.hpp>
50 typedef boost::unordered_map<DtUUID, DtOrganizationManagerNode*>
UUIDMap;
51 typedef boost::unordered_map<int, DtOrganizationManagerNode*>
ForceMap;
72 virtual bool removeNode(
const DtUUID&);
76 virtual bool isSubordinateOfTopLevel(
const DtUUID&)
const;
85 virtual bool isSubordinateOf(
const DtUUID& subordinate,
86 const DtUUID& superior)
const;
99 virtual void updateAggregate(
DtVrfObject *vrfObject);
114 bool reevaluateFlag =
false,
DtTime evaluationPeriod = 0.)
const;
130 virtual void printHierarchy()
const;
134 int indentLevel = 0)
const;
146 virtual const UUIDMap& nodes()
const;
148 static bool isTopLevelEntity(
const DtEntityType & objectType);
153 static bool isOrganizedAggregate(
DtVrfObject *vrfObject);
156 static bool isOrganizedEntity(
DtVrfObject *vrfObject);
160 static void vrfObjectAddedCallback(
DtVrfObject *vrfObject,
void* usr);
161 static void vrfObjectAboutToBeRemovedCallback(
DtVrfObject *vrfObject,
167 virtual void addNodeAddedCallback(
169 virtual void removeNodeAddedCallback(
176 virtual void addNodeRemovedCallback(
178 virtual void removeNodeRemovedCallback(
184 virtual void objectUUIDChanged(
const DtUUID& oldUUID,
const DtUUID& newUUID);
187 virtual void processVrfObjectAdded(
DtVrfObject *vrfObject);
191 virtual void processVrfObjectAboutToBeRemoved(
DtVrfObject *vrfObject);
194 virtual bool shouldBeAdded(
DtVrfObject *vrfObject)
const;
216 bool allowCreation =
true);
221 virtual bool networkStateIsDifferentFromLocalState(
226 virtual void invokeNodeAddedCallbacks(
const DtUUID&)
const;
230 virtual void invokeNodeRemovedCallbacks(
const DtUUID&)
const;