VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
UUIDNetworkManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
12 
13 #pragma once
14 
16 #include <vlutil/vlString.h>
17 #include <boost/unordered_map.hpp>
18 #include <vl/globalObjectDesignator.h>
19 #include <vrfutil/rwUUID.h>
20 #include <string>
21 #include <cstdio>
22 
24 #if WIN32 && _MSC_VER == 1400 || _MSC_VER == 1500
25 
26 #ifndef _INTPTR_T_DEFINED
27  #define _INTPTR_T_DEFINED
28  #ifdef _WIN64
29 typedef __int64 intptr_t;
30  #else /* _WIN64 */
31 typedef _W64 int intptr_t;
32  #endif /* _WIN64 */
33 #endif /* _INTPTR_T_DEFINED */
34 
35 #ifndef _UINTPTR_T_DEFINED
36  #define _UINTPTR_T_DEFINED
37  #ifdef _WIN64
38 typedef unsigned __int64 uintptr_t;
39  #else /* _WIN64 */
40 typedef _W64 unsigned int uintptr_t;
41  #endif /* _WIN64 */
42 #endif /* _UINTPTR_T_DEFINED */
43 
44 #else
45 #include <stdint.h>
46 #endif
47 
48 class DtExerciseConn;
52 
55 
58 class DtReflectedObject;
59 
60 typedef void (*DtUUIDChangedCallback)(DtReflectedObject*, const DtUUID& uuid, void* usr);
61 
62 #if DtHLA
63 namespace makVrfVrlinkExtToolkit
64 {
66 }
67 #endif
68 
70 {
71 public:
72 
75 
77  virtual ~DtUUIDNetworkManager();
78 
88  virtual void init(DtExerciseConn* exConn,
89  DtReflectedExtEntityList* reel = NULL,
90  DtReflectedExtAggregateList* ral = NULL,
91  DtReflectedControlObjectList* rel = NULL,
92 #if DtHLA
94 #endif
95  const DtString& uuidMarkingForNonVrForces = "entity-identifier");
96 
100  virtual void reinitialize(
101  DtReflectedExtEntityList* reel = NULL,
102  DtReflectedExtAggregateList* ral = NULL,
103  DtReflectedControlObjectList* rel = NULL
104 #if DtHLA
106 #endif
107  );
108 
111  virtual void setNonVrfUUIDResolver(DtNonVrfUUIDResolver*);
112  virtual DtNonVrfUUIDResolver* nonVrfUUIDResolver() const;
113 
116  virtual DtUUID uuidFor(DtReflectedExtEntity*) const;
117  virtual DtUUID uuidFor(DtReflectedExtAggregate*) const;
118  virtual DtUUID uuidFor(DtReflectedControlObject*) const;
119  virtual DtReflectedObject* reflectedObjectFor(const DtUUID&) const;
120 
121  DtReflectedControlObjectList* controlObjectList() { return myControlObjectList; };
122  DtReflectedExtEntityList* entityList() { return myEntityList; };
123  DtReflectedExtAggregateList* aggregateList() { return myAggregateList; };
124 
126  virtual void addEntityUUIDChangedCallback(DtUUIDChangedCallback, void* usr);
127  virtual void removeEntityUUIDChangedCallback(DtUUIDChangedCallback, void* usr);
128 
129  virtual void addAggregateUUIDChangedCallback(DtUUIDChangedCallback, void* usr);
130  virtual void removeAggregateUUIDChangedCallback(DtUUIDChangedCallback, void* usr);
131 
132  virtual void addEnvironmentalUUIDChangedCallback(DtUUIDChangedCallback, void* usr);
133  virtual void removeEnvironmentalUUIDChangedCallback(DtUUIDChangedCallback, void* usr);
134 
135 protected:
137  virtual void initializeEntityList();
138  static void entityAddedCallback(DtReflectedExtEntity*, void* usr);
139  virtual void processEntityAdded(DtReflectedExtEntity*);
140  static void entityRemovedCallback(DtReflectedExtEntity*, void* usr);
141  virtual void processEntityRemoved(DtReflectedExtEntity*);
142  static void postEntityUpdateCallback(DtReflectedExtEntity*, void* usr);
143  virtual void processPostEntityUpdate(DtReflectedExtEntity*);
144 
145  virtual void initializeAggregateList();
146  static void aggregateAddedCallback(DtReflectedExtAggregate*, void* usr);
147  virtual void processAggregateAdded(DtReflectedExtAggregate*);
148  static void aggregateRemovedCallback(DtReflectedExtAggregate*, void* usr);
149  virtual void processAggregateRemoved(DtReflectedExtAggregate*);
150  static void postAggregateUpdateCallback(DtReflectedExtAggregate*, void* usr);
151  virtual void processPostAggregateUpdate(DtReflectedExtAggregate*);
152 
153  virtual void initializeControlObjectList();
154  static void controlObjectAddedCallback(DtReflectedControlObject*, void* usr);
155  virtual void processControlObjectAdded(DtReflectedControlObject*);
156  static void controlObjectRemovedCallback(DtReflectedControlObject*, void* usr);
157  virtual void processControlObjectRemoved(DtReflectedControlObject*);
158  static void postControlObjectUpdateCallback(DtReflectedControlObject*, void* usr);
159  virtual void processPostControlObjectUpdate(DtReflectedControlObject*);
160 
162  virtual void removeObject(const uintptr_t&);
163 
164  struct UUIDCallback;
165 
167  virtual void invokeUUIDCallbacks(std::vector<UUIDCallback>, DtReflectedObject*, const DtUUID&);
168 
169  virtual void addUUIDCallback(std::vector<UUIDCallback>&, DtUUIDChangedCallback, void*);
170  virtual void removeUUIDCallback(std::vector<UUIDCallback>&, DtUUIDChangedCallback, void*);
171 
172 protected:
173  DtExerciseConn* myExerciseConnection;
176 
179 
182 
183 #if DtHLA
186 #endif
187 
189 
190  typedef boost::unordered_map<uintptr_t, DtUUID> CurrentDataMap;
192 
193  typedef boost::unordered_map<DtUUID, DtReflectedObject*> CurrentReflectedObjectMap;
195 
196  typedef boost::unordered_map<uintptr_t, int> DataUpdateTrackerCount;
198 
201 
203  {
205  void* user;
206  };
207 
208  std::vector<UUIDCallback> myEntityUUIDChangedCallbacks;
209  std::vector<UUIDCallback> myAggregateUUIDChangedCallbacks;
210  std::vector<UUIDCallback> myEnvironmentalUUIDChangedCallbacks;
211 };
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
makVrfVrlinkExtToolkit::DtReflectedExtendedAttributesObjectList * myExtAttributesList
Definition: UUIDNetworkManager.h:184
void * user
Definition: UUIDNetworkManager.h:205
Definition: reflectedExtEntity.h:31
#define DT_DLL_vrfcontrol
This file is used to determine how to build.
Definition: vrfcontrolDefines.h:28
bool myOwnsEntityList
Definition: UUIDNetworkManager.h:178
DtNonVrfUUIDResolver * myNonVrfUUIDResolver
Definition: UUIDNetworkManager.h:199
DtReflectedControlObjectList * myControlObjectList
Definition: UUIDNetworkManager.h:174
boost::unordered_map< uintptr_t, DtUUID > CurrentDataMap
Definition: UUIDNetworkManager.h:190
Definition: reflectedExtAggregate.h:35
DataUpdateTrackerCount myDataUpdateTrackerCount
Definition: UUIDNetworkManager.h:197
bool myOwnsAggregateList
Definition: UUIDNetworkManager.h:181
class DtReflectedControlObjectList:
Definition: reflectedControlObjectList.h:23
Definition: UUIDNetworkManager.h:69
DtUUIDChangedCallback callback
Definition: UUIDNetworkManager.h:204
DtReflectedExtAggregateList * aggregateList()
Definition: UUIDNetworkManager.h:123
std::vector< UUIDCallback > myEntityUUIDChangedCallbacks
Definition: UUIDNetworkManager.h:208
DtExerciseConn * myExerciseConnection
Definition: UUIDNetworkManager.h:173
DtReflectedExtEntityList * myEntityList
Definition: UUIDNetworkManager.h:177
std::vector< UUIDCallback > myEnvironmentalUUIDChangedCallbacks
Definition: UUIDNetworkManager.h:210
bool myOwnsControlObjectList
Definition: UUIDNetworkManager.h:175
DtReflectedControlObjectList * controlObjectList()
Definition: UUIDNetworkManager.h:121
bool myOwnsExtAttributesList
Definition: UUIDNetworkManager.h:185
DtReflectedExtAggregateList * myAggregateList
Definition: UUIDNetworkManager.h:180
boost::unordered_map< uintptr_t, int > DataUpdateTrackerCount
Definition: UUIDNetworkManager.h:196
Definition: nonVrfUUIDResolver.h:22
boost::unordered_map< DtUUID, DtReflectedObject * > CurrentReflectedObjectMap
Definition: UUIDNetworkManager.h:193
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
bool myOwnsNonVrfUUIDResolver
Definition: UUIDNetworkManager.h:200
class DtReflectedExtAggregateList:
Definition: reflectedExtAggregateList.h:27
void(* DtUUIDChangedCallback)(DtReflectedObject *, const DtUUID &uuid, void *usr)
Definition: UUIDNetworkManager.h:60
Definition: UUIDNetworkManager.h:202
DtString myNonVrfObjectsUUIDScheme
Definition: UUIDNetworkManager.h:188
std::vector< UUIDCallback > myAggregateUUIDChangedCallbacks
Definition: UUIDNetworkManager.h:209
DtReflectedExtEntityList * entityList()
Definition: UUIDNetworkManager.h:122
Definition: reflectedControlObject.h:26
CurrentReflectedObjectMap myReflectedObjectMap
Definition: UUIDNetworkManager.h:194
class DtReflectedExtAggregateList:
Definition: reflectedExtEntityList.h:27
CurrentDataMap myCurrentDataMap
Definition: UUIDNetworkManager.h:191

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)