VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
organizationView.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2016 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
17 #include <vlutil/vlList.h>
18 #include <vlutil/vlHashlist.h>
19 #include <vl/globalObjectDesignator.h>
20 #include <vlpi/disEnums.h>
21 #include <vector>
22 #include <list>
24 
25 #include <boost/unordered_map.hpp>
26 
27 class DtVrfObjectManager;
29 class DtVrfObject;
30 class DtEntityType;
33 class DtSimMessage;
35 
42 {
43 protected:
47  DtOrganizationView& operator=(const DtOrganizationView& orig);
48 public:
49 
50  typedef boost::unordered_map<DtUUID, DtOrganizationManagerNode*> UUIDMap;
51  typedef boost::unordered_map<int, DtOrganizationManagerNode*> ForceMap;
52 
57 
59  virtual ~DtOrganizationView();
60 
61  virtual bool init();
62 
65 
66  virtual DtOrganizationManagerNode* lookupNode(const DtUUID&) const;
67 
69  virtual DtOrganizationManagerNode* lookupNodeByUUID(const DtUUID&) const;
70 
72  virtual bool removeNode(const DtUUID&);
73 
76  virtual bool isSubordinateOfTopLevel(const DtUUID&) const;
77 
79  virtual const DtUUID& superior(const DtUUID&) const;
80 
82  virtual DtVrfObject* superiorVrfObject(const DtUUID&) const;
83 
85  virtual bool isSubordinateOf(const DtUUID& subordinate,
86  const DtUUID& superior) const;
88 
91 
93  virtual DtOrganizationManagerNode* addEntity(DtVrfObject *vrfObject);
94 
96  virtual void removeEntity(DtVrfObject *vrfObject);
97 
99  virtual void updateAggregate(DtVrfObject *vrfObject);
100 
102  virtual void updateEntity(DtVrfObject *vrfObject);
104 
110  virtual DtOrgViewManagedObjectListConstPtr getList(
111  const DtUUID& aggregate,
112  const DtVrfObjectPredicate& predicate =
114  bool reevaluateFlag = false, DtTime evaluationPeriod = 0.) const;
115 
116  virtual DtOrgViewManagedObjectListConstPtr nullList() const;
117 
120 
123  virtual DtOrganizationManagerNode* locateSuperiorNodeForGlobalId(
124  const DtGlobalObjectDesignator& globalId) const;
125 
127  virtual bool isLocal(DtOrganizationManagerNode* node) const;
128 
130  virtual void printHierarchy() const;
131 
133  virtual void printNode(DtOrganizationManagerNode* node,
134  int indentLevel = 0) const;
135 
136  virtual DtVrfObjectManager* objectManager();
137 
140  virtual DtSharedVrfObjectReference topLevelObjectForForce(const DtForceType& force);
141 
143  virtual DtOrganizationManagerNode* topLevelNodeForForce(DtForceType force);
144 
146  virtual const UUIDMap& nodes() const;
147 
148  static bool isTopLevelEntity(const DtEntityType & objectType);
149 
152 
153  static bool isOrganizedAggregate(DtVrfObject *vrfObject);
156  static bool isOrganizedEntity(DtVrfObject *vrfObject);
157 
159 
160  static void vrfObjectAddedCallback(DtVrfObject *vrfObject, void* usr);
161  static void vrfObjectAboutToBeRemovedCallback(DtVrfObject *vrfObject,
162  void* usr);
163 
167  virtual void addNodeAddedCallback(
168  DtUUIDCallbackFunction fcn, void* userData);
169  virtual void removeNodeAddedCallback(
170  DtUUIDCallbackFunction fcn, void* userData);
172 
176  virtual void addNodeRemovedCallback(
177  DtUUIDCallbackFunction fcn, void* userData);
178  virtual void removeNodeRemovedCallback(
179  DtUUIDCallbackFunction fcn, void* userData);
181 
184  virtual void objectUUIDChanged(const DtUUID& oldUUID, const DtUUID& newUUID);
185 
186 protected:
187  virtual void processVrfObjectAdded(DtVrfObject *vrfObject);
188 
191  virtual void processVrfObjectAboutToBeRemoved(DtVrfObject *vrfObject);
192 
194  virtual bool shouldBeAdded(DtVrfObject *vrfObject) const;
195 
198  virtual void findAndConnectNodeParent(DtOrganizationManagerNode* node);
199 
202  virtual void disconnectNodeParent(DtOrganizationManagerNode* node);
203 
207  virtual void findAndConnectNodeChildren(DtOrganizationManagerNode* node);
208 
210  virtual void disconnectNodeChildren(DtOrganizationManagerNode* node);
211 
215  virtual void connectNodeToTopLevel(DtOrganizationManagerNode* node,
216  bool allowCreation = true);
217 
221  virtual bool networkStateIsDifferentFromLocalState(
222  const DtOrganizationManagerNode& node) const;
223 
226  virtual void invokeNodeAddedCallbacks(const DtUUID&) const;
227 
230  virtual void invokeNodeRemovedCallbacks(const DtUUID&) const;
231 
232 protected:
234 
237 
240 
241  typedef std::list<DtUUIDCallbackInfo> DtUUIDCallbackInfoList;
242 
245 
247 };

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)