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;
69 virtual bool removeNode(
const DtUUID&);
73 virtual bool isSubordinateOfTopLevel(
const DtUUID&)
const;
82 virtual bool isSubordinateOf(
const DtUUID& subordinate,
83 const DtUUID& superior)
const;
96 virtual void updateAggregate(
DtVrfObject *vrfObject);
111 bool reevaluateFlag =
false,
DtTime evaluationPeriod = 0.)
const;
119 const DtGlobalObjectDesignator& globalId)
const;
125 virtual void printHierarchy()
const;
129 int indentLevel = 0)
const;
141 virtual const UUIDMap& nodes()
const;
143 static bool isTopLevelEntity(
const DtEntityType & objectType);
148 static bool isOrganizedAggregate(
DtVrfObject *vrfObject);
151 static bool isOrganizedEntity(
DtVrfObject *vrfObject);
155 static void vrfObjectAddedCallback(
DtVrfObject *vrfObject,
void* usr);
156 static void vrfObjectAboutToBeRemovedCallback(
DtVrfObject *vrfObject,
162 virtual void addNodeAddedCallback(
164 virtual void removeNodeAddedCallback(
171 virtual void addNodeRemovedCallback(
173 virtual void removeNodeRemovedCallback(
179 virtual void objectUUIDChanged(
const DtUUID& oldUUID,
const DtUUID& newUUID);
182 virtual void processVrfObjectAdded(
DtVrfObject *vrfObject);
186 virtual void processVrfObjectAboutToBeRemoved(
DtVrfObject *vrfObject);
189 virtual bool shouldBeAdded(
DtVrfObject *vrfObject)
const;
211 bool allowCreation =
true);
216 virtual bool networkStateIsDifferentFromLocalState(
221 virtual void invokeNodeAddedCallbacks(
const DtUUID&)
const;
225 virtual void invokeNodeRemovedCallbacks(
const DtUUID&)
const;