VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
organizationManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
10 
11 #include <vlutil/vlConfig.h>
12 #include <vector>
15 #include "vrfutil/rwUUID.h"
16 
18 
21 class DtPrintPendingOpsCommand;
22 class DtDeletePendingOpsCommand;
23 
24 typedef void (*DtOrganizationManagerCallbackFcn)(void* usr);
25 
28 {
29  bool myReady;
30 };
31 
35 
47 {
48 private:
55 
56 public:
58 
59 public:
60 
64  virtual ~DtOrganizationManager();
65 
66  virtual bool init();
67 
71 
73  virtual DtOrganizationManagerNode* addEntity(DtVrfObject *vrfObject);
74 
76  virtual void removeEntity(DtVrfObject *vrfObject);
77 
79  virtual void updateAggregate(DtVrfObject *vrfObject);
80 
82  virtual void updateEntity(DtVrfObject *vrfObject);
83 
88  virtual void setSuperior(const DtUUID& subordinate,
89  const DtUUID& superior, int designator = 0,
90  bool localOnly = false);
91 
96  virtual void setSuperiorToForce(const DtUUID& subordinate,
97  int designator = 0, bool localOnly = false);
98 
106  virtual void queueSetSuperior(const DtUUID& subordinate,
107  const DtUUID& superior, int designator = 0,
108  DtOrganizationManagerCallbackFcn completionCallback = 0, void* usrData = 0);
109 
117  virtual void queueSetSuperiorToForce(const DtUUID& subordinate,
118  int designator = 0, DtOrganizationManagerCallbackFcn completionCallback = 0, void* usrData = 0);
119 
124  virtual void queueChangeSet(const DtOrganizationChangeSet& changeSet, int& changeSetRequestId,
125  DtOrganizationManagerCallbackFcn completionCallback = 0, void* usrData = 0);
126 
127  virtual void removeChangeSetCallback(int changeSetRequestId,
128  DtOrganizationManagerCallbackFcn completionCallback, void* usrData = 0);
129 
133  virtual void detatchFromSuperior(const DtUUID& subordinate,
134  bool localOnly = false);
135 
138  virtual void setSubordinateOrder(const DtUUID& superior,
139  const std::vector<DtEntityIdentifier>& orderedSubordinateList,
140  bool localOnly = false);
141 
142  static void addToOrganizationCallback(DtSimMessage* msg, void* usr);
143  static void removeFromOrganizationCallback(DtSimMessage* msg, void* usr);
144 
148  virtual bool allLocalOrgChangesComplete() const;
149 
151  virtual bool hasPendingOperations() const;
152 
154  virtual void addOrganizationManagerReadyCallback(
155  DtOrganizationManagerReadyCallbackFcn fcn, void* usrData);
156 
158  virtual void removeOrganizationManagerReadyCallback(
159  DtOrganizationManagerReadyCallbackFcn fcn, void* usrData);
160 
162  virtual void runPendingOperations();
163 
164  virtual void printPendingOperations() const;
165 
166  virtual void deletePendingOperations();
167 
168  virtual void deletePendingOperationsFor(DtString objectName);
169 
171  int numberOfOperations() const { return myPendingOperationList.count(); };
172 
174  virtual void closingScenario();
175 
176 protected:
178  virtual void invokeOrganizationManagerReadyCallbacks();
179 
180  virtual void processAddToOrganization(DtSimMessage* msg);
181  virtual void processRemoveFromOrganization(DtSimMessage* msg);
182 
185  virtual bool setSuperiorIsLocal(const DtUUID& subordinate,
186  const DtUUID& superiorId);
187 
190  virtual bool setSuperiorToForceIsLocal(const DtUUID& subordinate);
191 
193  virtual bool detatchFromSuperiorIsLocal(const DtUUID& subordinate);
194 
196  virtual bool setSubordinateOrderIsLocal(const DtUUID& superior) const;
197 
200  virtual void addOperationToQueue(DtOrgManagerOperation* operation);
201 
204  virtual unsigned int newPendingOperationId();
205 
206  virtual void clearPendingOperationId(unsigned int id);
207 
208  static void pendingOperationCompleteCallback(void* usr);
209 
210  static int nextId();
211 
212 protected:
214  typedef std::pair<DtOrganizationManager*, unsigned int> DtPendingOperationCompletionCallbackData;
215 
218 
221 
222  std::list<unsigned int> myPendingOperationIdList;
224 
226 
227  DtPrintPendingOpsCommand* myPrintPendingOpsCommand;
228  DtDeletePendingOpsCommand* myDeletePendingOpsCommand;
229 
230  static int theNextId;
231 
232 };

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)