VR-Forces 4.3.1 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) 2003 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: orgView.h,v $ $Revision: 1.17 $ $State: Exp $
7 *******************************************************************************/
8 
11 
14 
15 #ifndef DtOrganizationView_H_
16 #define DtOrganizationView_H_
17 
20 #include <vlutil/vlList.h>
21 #include <vlutil/vlHashlist.h>
22 #include <vl/globalObjectDesignator.h>
23 #include <vlpi/disEnums.h>
24 #include <vector>
25 #include <list>
27 
28 class DtVrfObjectManager;
30 class DtVrfObject;
31 class DtEntityIdentifier;
32 class DtEntityType;
33 class DtReflectedExtAggregate;
35 class DtSimMessage;
37 
44 {
45 protected:
49  DtOrganizationView& operator=(const DtOrganizationView& orig);
50 public:
51 
56 
58  virtual ~DtOrganizationView();
59 
60  virtual bool init();
61 
64 
65  virtual DtOrganizationManagerNode* lookupNode(
66  const DtEntityIdentifier& id) const;
67 
70  virtual bool isSubordinateOfTopLevel(
71  const DtEntityIdentifier& id) const;
72 
74  virtual const DtEntityIdentifier& superior(
75  const DtEntityIdentifier& id) const;
76 
78  virtual DtVrfObject* superiorVrfObject(const DtEntityIdentifier& id) const;
79 
81  virtual bool isSubordinateOf(const DtEntityIdentifier& subordinateId,
82  const DtEntityIdentifier& superiorId) const;
84 
87 
89  virtual DtOrganizationManagerNode* addEntity(DtVrfObject *vrfObject);
90 
92  virtual void removeEntity(DtVrfObject *vrfObject);
93 
95  virtual void updateAggregate(DtVrfObject *vrfObject);
96 
98  virtual void updateEntity(DtVrfObject *vrfObject);
100 
106  virtual DtOrgViewManagedObjectListConstPtr getList(
107  const DtEntityIdentifier& aggregateId,
108  const DtVrfObjectPredicate& predicate =
110  bool reevaluateFlag = false, DtTime evaluationPeriod = 0.) const;
111 
114 
117  virtual DtOrganizationManagerNode* locateSuperiorNodeForGlobalId(
118  const DtGlobalObjectDesignator& globalId) const;
119 
121  virtual bool isLocal(DtOrganizationManagerNode* node) const;
122 
124  virtual void printHierarchy() const;
125 
126  virtual DtVrfObjectManager* objectManager();
127 
130  virtual DtVrfObject* topLevelObjectForForce(const DtForceType& force);
131 
133  virtual DtOrganizationManagerNode* topLevelNodeForForce(DtForceType force);
134 
136  virtual const DtHashList& nodes() const;
137 
138  static bool isTopLevelEntity(const DtEntityType & objectType);
139 
142 
143  static bool isOrganizedAggregate(DtVrfObject *vrfObject);
146  static bool isOrganizedEntity(DtVrfObject *vrfObject);
147 
149 
150  static void vrfObjectAddedCallback(DtVrfObject *vrfObject, void* usr);
151  static void vrfObjectAboutToBeRemovedCallback(DtVrfObject *vrfObject,
152  void* usr);
153 
157  virtual void addNodeAddedCallback(
158  DtEntityIdentifierCallbackFunction fcn, void* userData);
159  virtual void removeNodeAddedCallback(
160  DtEntityIdentifierCallbackFunction fcn, void* userData);
162 
166  virtual void addNodeRemovedCallback(
167  DtEntityIdentifierCallbackFunction fcn, void* userData);
168  virtual void removeNodeRemovedCallback(
169  DtEntityIdentifierCallbackFunction fcn, void* userData);
171 
172 protected:
173  virtual void processVrfObjectAdded(DtVrfObject *vrfObject);
174 
177  virtual void processVrfObjectAboutToBeRemoved(DtVrfObject *vrfObject);
178 
180  virtual bool shouldBeAdded(DtVrfObject *vrfObject) const;
181 
184  virtual void findAndConnectNodeParent(DtOrganizationManagerNode* node);
185 
188  virtual void disconnectNodeParent(DtOrganizationManagerNode* node);
189 
193  virtual void findAndConnectNodeChildren(DtOrganizationManagerNode* node);
194 
196  virtual void disconnectNodeChildren(DtOrganizationManagerNode* node);
197 
201  virtual void connectNodeToTopLevel(DtOrganizationManagerNode* node,
202  bool allowCreation = true);
203 
205  virtual void printNode(DtOrganizationManagerNode* node,
206  int indentLevel = 0) const;
207 
211  virtual bool networkStateIsDifferentFromLocalState(
212  const DtOrganizationManagerNode& node) const;
213 
216  virtual void invokeNodeAddedCallbacks(
217  const DtEntityIdentifier& entId) const;
218 
221  virtual void invokeNodeRemovedCallbacks(
222  const DtEntityIdentifier& entId) const;
223 
224 protected:
227  DtHashList myTopLevelNodes;
229  DtHashList myIdHashList;
230 
231  typedef std::list<DtEntityIdentifierCallbackInfo> DtEntityIdentifierCallbackInfoList;
232 
235 
237 };
238 
239 #endif
240 

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)