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(
185 virtual void addNodeAboutToBeRemovedCallback(
187 virtual void removeNodeAboutToBeRemovedCallback(
193 virtual void objectUUIDChanged(
const DtUUID& oldUUID,
const DtUUID& newUUID);
199 virtual void processVrfObjectAdded(
DtVrfObject *vrfObject);
203 virtual void processVrfObjectAboutToBeRemoved(
DtVrfObject *vrfObject);
206 virtual bool shouldBeAdded(
DtVrfObject *vrfObject)
const;
228 bool allowCreation =
true);
233 virtual bool networkStateIsDifferentFromLocalState(
238 virtual void invokeNodeAddedCallbacks(
const DtUUID&)
const;
242 virtual void invokeNodeRemovedCallbacks(
const DtUUID&)
const;
246 virtual void invokeNodeAboutToBeRemovedCallbacks(
const DtUUID&)
const;