VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 
170 protected:
172  virtual void invokeOrganizationManagerReadyCallbacks();
173 
174  virtual void processAddToOrganization(DtSimMessage* msg);
175  virtual void processRemoveFromOrganization(DtSimMessage* msg);
176 
179  virtual bool setSuperiorIsLocal(const DtUUID& subordinate,
180  const DtUUID& superiorId);
181 
184  virtual bool setSuperiorToForceIsLocal(const DtUUID& subordinate);
185 
187  virtual bool detatchFromSuperiorIsLocal(const DtUUID& subordinate);
188 
190  virtual bool setSubordinateOrderIsLocal(const DtUUID& superior) const;
191 
194  virtual void addOperationToQueue(DtOrgManagerOperation* operation);
195 
198  virtual unsigned int newPendingOperationId();
199 
200  virtual void clearPendingOperationId(unsigned int id);
201 
202  static void pendingOperationCompleteCallback(void* usr);
203 
204  static int nextId();
205 
206 protected:
208  typedef std::pair<DtOrganizationManager*, unsigned int> DtPendingOperationCompletionCallbackData;
209 
212 
215 
216  std::list<unsigned int> myPendingOperationIdList;
218 
220 
221  DtPrintPendingOpsCommand* myPrintPendingOpsCommand;
222  DtDeletePendingOpsCommand* myDeletePendingOpsCommand;
223 
224  static int theNextId;
225 
226 };

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)