VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
remoteObjectManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2019 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
12 #include "vlutil/vlPerformanceStats.h"
13 #include "vrfStateData/stateData.h"
14 #include <tbb/spin_mutex.h>
15 #include <unordered_map>
16 #include <vlpi/metocEnums.h>
17 #include <vrfutil/profiler.h>
19 #include <vrvUtil/signalslib.h>
20 
22 class DtVrfCallbackQueue;
23 class DtReflectedDIGuyObject;
24 class DtExerciseConn;
25 class DtReflectedObject;
29 class DtReflectedAggregate;
34 class DtBaseEntityStateRepository;
37 class DtReflectedEntity;
38 class DtReflectedActiveSonar;
39 class DtReflectedPropulsionNoise;
40 class DtReflectedEmitterSystem;
41 class DtReflectedIff;
42 class DtReflectedDesignator;
43 class DtReflectedRadioTransmitter;
44 class DtReflectedRadioReceiver;
45 class DtReflectedNavAid;
46 class DtExerciseConn;
48 class DtVrfParameterDb;
50 
51 #if DtHLA_1516_EVOLVED
52 #include <tbb/queuing_mutex.h>
53 #include <atomic>
54 #endif
55 
56 #if DtHLA
57 namespace makVrfVrlinkExtToolkit
58 {
59  class DtReflectedExtendedAttributesObject;
60  class DtReflectedExtendedAttributesObjectList;
61 }
62 #endif
63 
64 namespace makVrf
65 {
66  class DtRemoteEnvironmentManager;
67  class DtRemoteObjectManager;
68 
69  class DtStateDataManager;
70  class DtRemoteStateComponentNetInterface;
71  class DtVrlinkNetworkInterface;
72 
73  class DT_DLL_vrlinkNetworkInterface DtRemoteObjectManager
74  {
75  public:
76 
77  typedef std::map< DtReflectedObject*, DtSimObjectNetInterface* > InterfacesByReflectedObjectMap;
78 
81 
83  virtual ~DtRemoteObjectManager();
84 
86  virtual void printReflectedObjectCounts() const;
87 
88  virtual void init(DtStateDataManager*, DtExerciseConn*, const DtReflectedObjectLists&);
89  virtual void setReflectedLists(const DtReflectedObjectLists& lists);
90 
91 #if DtHLA
92  virtual void setRequestUpdates(bool shouldRequestUpdates);
93 #endif
94  virtual void beginFrame();
95  virtual void beginFrame(DtVrfCallbackQueue*);
96 
98  virtual void advanceFrame(DtVrfCallbackQueue*);
99 
102  virtual void finishFrame();
103 
105  virtual bool stateDataAboutToBeRemoved(const DtStateData* sd);
106 
107  virtual void setParameterDatabase(DtVrfParameterDb*);
108 
110  virtual bool hasDiscoveredObjects() const;
111 
113  virtual void setPreferredDateAndTimeRepository(DtTimeAndDateStateRepository*);
114 
115 #if DtDIS
116  virtual void setDefaultObjectTimeout(int);
118  {
119  return myDefaultObjectTimeout;
120  }
121  virtual void setDisableTimeoutProcessing(bool);
123  {
124  return myDisableTimeoutProcessing;
125  }
126 #endif
127 
130  virtual bool acceptRemoteEnvironmental(const DtEntityType& et) const;
131 
132  virtual void requestUpdatesForRemoteNonVrfObjects() const;
133 
134  virtual bool waitingToAddObjects() const;
135 
136  virtual DtReflectedObject* reflectedObjectFor(const DtGlobalObjectDesignator&) const;
137 
139  virtual void lostControlOf(DtReflectedObject*);
140  virtual void lostControlOf(DtReflectedDIGuyObject*);
141 
142 #if DtHLA
144 
146  virtual DtReflectedObject* gainControlOfExtendedAttribute(DtHlaObject*);
147  virtual void gainedConntrolOfUnknownHlaObject(DtHlaObject*);
148 #endif
149 
151  virtual void gainControlOf(const DtGlobalObjectDesignator&);
152 
153 #if DtHLA
154  virtual DtUUID uuidFor(DtHlaObject*) const;
155 #endif
156 
158  virtual void setEnabled(bool);
159  bool enabled() const
160  {
161  return myEnabled;
162  }
163 
165  {
166  return myStateDataManager;
167  }
168 
170  {
171  return myReflectedLists.reflectedAerodromesList.reflectedList;
172  }
173 
175  {
176  return myReflectedLists.reflectedEntitiesList.reflectedList;
177  }
178 
180  {
181  return myReflectedLists.reflectedAggregatesList.reflectedList;
182  }
183 
185  {
186  return myReflectedLists.reflectedEnvironmentalsList.reflectedList;
187  }
188 
190  {
191  return myReflectedLists.reflectedDesignatorsList.reflectedList;
192  }
193 
194  DtReflectedActiveSonarList* reflectedActiveSonarList() const
195  {
196  return myReflectedLists.reflectedActiveSonarList.reflectedList;
197  }
198 
199  DtReflectedPropulsionNoiseList* reflectedPropulsionNoiseList() const
200  {
201  return myReflectedLists.reflectedPropulsionNoiseList.reflectedList;
202  }
203 
205  {
206  return myReflectedLists.reflectedRadioTransmitterList.reflectedList;
207  }
208 
210  {
211  return myReflectedLists.reflectedNavAidTransmitterList.reflectedList;
212  }
213 
214  DtReflectedRadioReceiverList* reflectedRadioReceiverList() const
215  {
216  return myReflectedLists.reflectedRadioReceiverList.reflectedList;
217  }
218 
220  {
221  return myReflectedLists.reflectedDynamicTerrainList.reflectedList;
222  }
223 
224  DtReflectedIffList* reflectedIffList() const
225  {
226  return myReflectedLists.reflectedIffList.reflectedList;
227  }
228 
230  {
231  return myReflectedLists;
232  }
233 
234  virtual bool hasNetworkRepresentation(const DtUUID&) const;
235 
237  virtual void setLongScenarioLoadDiscoveryTime(double);
239  {
240  return myLongScenarioLoadDiscoveryTime;
241  }
242 
245  virtual void setBulkAddTimeout(double);
246  virtual double bulkAddTimeout() const
247  {
248  return myBulkAddTimeout;
249  }
250 
251  DtExerciseConn* exerciseConnection() const
252  {
253  return myExerciseConnection;
254  }
255 
257  virtual void setStaticObjectDiscoveryTime(double);
259  {
260  return myStaticObjectDiscoveryTime;
261  }
262 
263  virtual void setDynamicTerrainStateData(DtStateData*);
264  virtual bool finishDiscovery();
265  virtual void setNumCallbackThreads(int);
266 
267 
269  virtual DtGlobalObjectDesignator entityThatHostsRadio(const DtGlobalObjectDesignator&, int radioIndex) const;
270 
271  protected:
272  virtual bool isLocal(const DtBaseEntityStateRepository& stateRep);
273 
274  virtual bool selfReflecting() const;
275 
276  virtual void processAerodromeAddedCallback(DtReflectedAerodrome* entity);
277  virtual void processAerodromeRemovedCallback(DtReflectedAerodrome* entity);
278  virtual bool initializeRemoteAerodrome(DtStateData*, DtReflectedAerodrome*);
279 
282  virtual DtReflectedControlObjectList* createReflectedControlObjectList(DtExerciseConn* exConn);
283  virtual void createRemoteEnvironmentalsList(DtExerciseConn* exConn);
284 
289  friend class RemoteEntityCreator;
290  virtual void processEntityAddedCallback(DtReflectedExtEntity* entity);
291  virtual bool initializeRemoteEntity(DtStateData*, DtReflectedExtEntity*);
292 
293  friend class RemoteAggregateCreator;
294  virtual void processAggregateAddedCallback(DtReflectedExtAggregate* aggregate);
295  virtual bool initializeRemoteAggregate(DtStateData*, DtReflectedExtAggregate*);
296 
299  virtual void processEntityRemovedCallback(DtReflectedExtEntity* entity);
300  virtual void processAggregateRemovedCallback(DtReflectedExtAggregate* aggregate);
301 
302  virtual void processDesignatorAddedCallback(DtReflectedDesignator * des);
303  virtual void processDesignatorRemovedCallback(DtReflectedDesignator * des);
304  virtual DtBoolean processDesignatorDiscoveryCriteria(DtReflectedDesignator * des);
305 
306  virtual void processRectangularPyramidAddedCallback(DtReflectedRectangularPyramid * des);
307  virtual void processRectangularPyramidRemovedCallback(DtReflectedRectangularPyramid * des);
308  virtual DtBoolean processRectangularPyramidDiscoveryCriteria(DtReflectedRectangularPyramid * des);
309 
310  virtual void processActiveSonarAddedCallback(DtReflectedActiveSonar* des);
311  virtual void processActiveSonarRemovedCallback(DtReflectedActiveSonar* des);
312  virtual DtBoolean processActiveSonarDiscoveryCriteria(DtReflectedActiveSonar* des);
313 
314  virtual void processPropulsionNoiseAddedCallback(DtReflectedPropulsionNoise* des);
315  virtual void processPropulsionNoiseRemovedCallback(DtReflectedPropulsionNoise* des);
316  virtual DtBoolean processPropulsionNoiseDiscoveryCriteria(DtReflectedPropulsionNoise* des);
317 
318  virtual void processRadioTransmitterAddedCallback(DtReflectedRadioTransmitter* tran);
319  virtual void processRadioTransmitterRemovedCallback(DtReflectedRadioTransmitter* tran);
320  virtual DtBoolean processRadioTransmitterDiscoveryCriteria(DtReflectedRadioTransmitter*);
321 
322  virtual void processNavAidTransmitterAddedCallback(DtReflectedNavAid* tran);
323  virtual void processNavAidTransmitterRemovedCallback(DtReflectedNavAid* tran);
324  virtual DtBoolean processNavAidRadioTransmitterDiscoveryCriteria(DtReflectedNavAid*);
325 
326  virtual void processRadioReceiverAddedCallback(DtReflectedRadioReceiver* tran);
327  virtual void processRadioReceiverRemovedCallback(DtReflectedRadioReceiver* tran);
328 
329  virtual void processIffAddedCallback(DtReflectedIff* des);
330  virtual void processIffRemovedCallback(DtReflectedIff* des);
331  virtual DtBoolean processIffDiscoveryCriteria(DtReflectedIff*);
332 
333  virtual void processEmitterSystemAddedCallback(DtReflectedEmitterSystem* des);
334  virtual void processEmitterSystemRemovedCallback(DtReflectedEmitterSystem* des);
335  virtual DtBoolean processEmitterSystemDiscoveryCriteria(DtReflectedEmitterSystem*);
336 
337  friend class RemoteEnvironmentalCreator;
338  virtual void processEnvProcessAddedCallback(DtReflectedEnvironmentProcess* envProcess);
339  virtual bool initializeRemoteEnvProcess(DtStateData*, DtReflectedEnvironmentProcess*);
340 
341  virtual void processEnvProcessRemovedCallback(DtReflectedEnvironmentProcess* envProcess);
342  virtual bool processEnvProcessDiscoveryCriteria(DtReflectedEnvironmentProcess* envProcess);
343 
347  virtual void createRemoteEntitiesList(DtExerciseConn* exConn);
348  virtual void createRemoteAggregatesList(DtExerciseConn* exConn);
349  virtual void createRemoteAerodromesList(DtExerciseConn* exConn);
350 
351  static void aerodromeAddedCallback(DtReflectedAerodrome*, void* userData);
352  static void aerodromeRemovedCallback(DtReflectedAerodrome*, void* userData);
353 
358  static void entityAddedCallback(DtReflectedExtEntity* entity, void* userData);
359 
364  static void entityRemovedCallback(DtReflectedExtEntity* entity,
365  void* userData);
366 
371  static void aggregateAddedCallback(DtReflectedExtAggregate* entity,
372  void* userData);
373 
378  static void aggregateRemovedCallback(DtReflectedExtAggregate* entity,
379  void* userData);
380 
385  static bool entityDiscoveryCriteriaCallback(DtReflectedObject* entity,
386  void* userData);
387 
392  static bool aggregateDiscoveryCriteriaCallback(DtReflectedObject* aggregate,
393  void* userData);
394 
399  static bool aerodromeDiscoveryCriteriaCallback(DtReflectedObject* aggregate,
400  void* userData);
401 
407  virtual bool processEntityDiscoveryCriteria(
408  DtReflectedEntity* entity);
409 
415  virtual bool processAggregateDiscoveryCriteria(
416  DtReflectedAggregate* aggregate);
417 
423  virtual bool processAerodromeDiscoveryCriteria(
424  DtReflectedAerodrome* aggregate);
425 
429  virtual void createRemoteDesignatorsList(DtExerciseConn* exConn);
430  virtual void createRemoteRectangularPyramidList(DtExerciseConn* exConn);
431  virtual void createRemoteActiveSonarList(DtExerciseConn* exConn);
432  virtual void createRemotePropulsionNoiseList(DtExerciseConn* exConn);
433  virtual void createRemoteRadioTransmitterList(DtExerciseConn* exConn);
434  virtual void createRemoteNavAidTransmitterList(DtExerciseConn* exConn);
435  virtual void createRemoteRadioReceiverList(DtExerciseConn* exConn);
436  virtual void createRemoteEmitterSystemList(DtExerciseConn* exConn);
437  virtual void createRemoteIffList(DtExerciseConn* exConn);
438  virtual void createReflectedDynamicTerrainList(DtExerciseConn* exConn);
439 
440  #if DtHLA
441  virtual void createRemoteExtendedAttributesList(DtExerciseConn* exConn);
444  #endif
445  static void rectangularPyramidAddedCallback(DtReflectedRectangularPyramid * des,
446  void * userData);
447  static void rectangularPyramidRemovedCallback(DtReflectedRectangularPyramid * des,
448  void * userData);
449  static DtBoolean rectangularPyramidDiscoveryCriteriaCallback(DtReflectedObject * des,
450  void * userData);
451 
456  static void designatorAddedCallback(DtReflectedDesignator * des,
457  void * userData);
458 
463  static void designatorRemovedCallback(DtReflectedDesignator * des,
464  void * userData);
465 
470  static DtBoolean designatorDiscoveryCriteriaCallback(DtReflectedObject * des,
471  void * userData);
472 
473  static void activeSonarAddedCallback(DtReflectedActiveSonar* activeSonar,
474  void* userData);
475  static void activeSonarRemovedCallback(DtReflectedActiveSonar* activeSonar,
476  void* userData);
477  static DtBoolean activeSonarDiscoveryCriteriaCallback(
478  DtReflectedObject* activeSonar, void* userData);
479 
480  static void propulsionNoiseAddedCallback(DtReflectedPropulsionNoise* propNoise,
481  void* userData);
482  static void propulsionNoiseRemovedCallback(DtReflectedPropulsionNoise* propNoise,
483  void* userData);
484  static void propulsionNoiseChangedCallback(DtReflectedPropulsionNoise* propNoise,
485  void* userData);
486  static DtBoolean propulsionNoiseDiscoveryCriteriaCallback(
487  DtReflectedObject* propNoise, void* userData);
488 
489  static void radioTransmitterAddedCallback(DtReflectedRadioTransmitter* transmitter,
490  void* userData);
491  static void radioTransmitterRemovedCallback(DtReflectedRadioTransmitter* transmitter,
492  void* userData);
493  static DtBoolean radioTransmitterDiscoveryCriteriaCallback(DtReflectedObject* des, void*);
494 
495  static void navAidTransmitterAddedCallback(DtReflectedNavAid* transmitter,
496  void* userData);
497  static void navAidTransmitterRemovedCallback(DtReflectedNavAid* transmitter,
498  void* userData);
499  static DtBoolean navAidRadioTransmitterDiscoveryCriteriaCallback(DtReflectedObject* des, void*);
500 
501  static void radioReceiverAddedCallback(DtReflectedRadioReceiver* transmitter,
502  void* userData);
503  static void radioReceiverRemovedCallback(DtReflectedRadioReceiver* transmitter,
504  void* userData);
505 
506  static void iffAddedCallback(DtReflectedIff* propNoise,
507  void* userData);
508  static void iffRemovedCallback(DtReflectedIff* propNoise,
509  void* userData);
510  static DtBoolean iffDiscoveryCriteriaCallback(
511  DtReflectedObject* iff, void* userData);
512 
513  static void emitterSystemAddedCallback(DtReflectedEmitterSystem* propNoise,
514  void* userData);
515  static void emitterSystemRemovedCallback(DtReflectedEmitterSystem* propNoise,
516  void* userData);
517  static DtBoolean emitterSystemDiscoveryCriteriaCallback(
518  DtReflectedObject* iff, void* userData);
519 
520  static void envProcessAddedCallback(
521  DtReflectedEnvironmentProcess* envProcess, void* userData);
522  static void envProcessRemovedCallback(
523  DtReflectedEnvironmentProcess* envProcess, void* userData);
524  static bool envProcessDiscoveryCriteria(
525  DtReflectedObject* envProcess, void* userData);
526 
527  virtual void cleanup();
528 
529  virtual void stateComponentToBeDeleted(DtFrameStateInterface*);
530 
531  virtual void removeReflectedComponentObject(DtReflectedObject*);
532 
534 
535  static void dynamicTerrainObjectAddedCallback(DtReflectedDynamicTerrain* object, void* usr);
536  virtual void processDynamicTerrainObjectAdded(DtReflectedDynamicTerrain* object);
538 
539  virtual DtBoolean processReflectedDynamicTerrainDiscoveryCriteria(DtReflectedDynamicTerrain*);
540  static DtBoolean reflectedDynamicTerrainDiscoveryCriteriaCallback(
541  DtReflectedObject*, void* userData);
542 
544 
545  static void dynamicTerrainObjectRemovedCallback(DtReflectedDynamicTerrain* object, void* usr);
546  virtual void processDynamicTerrainObjectRemoved(DtReflectedDynamicTerrain* object);
548 
550  virtual bool createUnhostedComponent(DtReflectedObject* obj, const DtString& hostId, int componentType, const char* componentInterfaceType);
551 
553  virtual bool createRemoteHostedComponent(DtReflectedObject* obj, const DtString& hostId, int componentType, const char* componentInterfaceType);
554 
556  virtual void grabUnhostedComponents(DtStateData*);
557 
559  virtual DtEntityType standardAggregateTypeToVrfAggregateType(const DtEntityType& aggType) const;
560 
563  virtual void checkDiscoveryForHostedObjects();
564 
565  protected:
567 
568  #if DtHLA
571  #endif
572 
573  DtExerciseConn* myExerciseConnection;
574  DtStateDataManager* myStateDataManager;
575 
576  bool myEnabled;
578  DtSimulationAddress mySimulationAddress;
579 
580  template <typename T_Exec>
582  {
583  public:
584  int size() const { return DtPublisherContainer<T_Exec>::myExecVec.size(); };
585  };
586 
588  tbb::spin_mutex myInterfacesMutex;
590  typedef std::map<makVrf::SimStateID, std::pair<DtReflectedObject*, DtSimObjectNetInterface*> > RemoteInterfacesById;
592 
594  {
595  makVrv::vrvSignalsLib::connection deleteObjectConnection;
598  };
599 
600  typedef std::map<unsigned long long, std::set<uintptr_t>> InterfacesByStateData;
602 
603  typedef std::map<uintptr_t, ReflectedObjectInformation> ReflectedObjectToComponentMap;
605 
606  typedef std::map<uintptr_t, DtSimObjectNetInterface*> RemoteInterfacesByReflectedObject;
608 
609  typedef std::map<DtUUID, DtSimObjectNetInterface*> RemoteInterfacesByUUID;
611 
613 
614  typedef std::vector<DtStateComponent*> StateComponentVector;
615  typedef std::map<DtString, StateComponentVector> UnhostedComponents;
618 
621  typedef std::map<DtString, std::vector<DtReflectedObject*> > AwaitingReflectedTransmitters;
624 
625  typedef std::map<DtString, DtStateData*> UnhostedStateData;
627 
628  bool myQueueJobs = false;
629 
630  std::unordered_map<DtUUID, unsigned long long> myStateDataToRemove;
631 #if DtDIS
633  bool myDisableTimeoutProcessing = false;
634 #endif
635 
636  std::set<DtGlobalObjectDesignator> myJustDeleted;
637 
639  {
640  CreationInfo() : uuid(DtUUID::nullUUID()) {};
641  CreationInfo(const DtEntityType& o, const DtUUID& u) : objectType(o), uuid(u) {};
642  DtEntityType objectType;
644  };
645 
646  typedef std::map<DtReflectedObject*, CreationInfo> ObjectsToCreate;
650  mutable DtTimedSection myDiscoveryTimer;
651  mutable double myTimeSinceLastObjectDiscovery = 0.;
652  mutable double myTotalTimeSinceLastAddition = 0.;
653  double myLongScenarioLoadDiscoveryTime = 10.;
654  double myStaticObjectDiscoveryTime = 0.50;
655  int myMaxJobs = -1;
656  mutable int myLastJobCount = 0;
657  double myBulkAddTimeout = 1.0 / 10.0;
658  };
659 }
int size() const
Definition: remoteObjectManager.h:584
std::map< uintptr_t, ReflectedObjectInformation > ReflectedObjectToComponentMap
Definition: remoteObjectManager.h:603
UUID is a unique ID wrapper class.
Definition: uuid.h:59
DtReflectedPropulsionNoiseList * reflectedPropulsionNoiseList() const
Definition: remoteObjectManager.h:199
DtExerciseConn * myExerciseConnection
Definition: remoteObjectManager.h:573
bool enabled() const
Definition: remoteObjectManager.h:159
Definition: reflectedExtEntity.h:31
std::map< uintptr_t, DtSimObjectNetInterface * > RemoteInterfacesByReflectedObject
Definition: remoteObjectManager.h:606
RemoteInterfacesByUUID myRemoteInterfacesByUUID
Definition: remoteObjectManager.h:610
UnhostedStateData myUnhostedStateData
Definition: remoteObjectManager.h:626
Instances of DtVrfParameterDb are the database of DtVrfObjectParameters objects used in the construct...
Definition: vrfParameterDb.h:41
DtReflectedAerodromeList * reflectedAerodromeList() const
Definition: remoteObjectManager.h:169
Definition: reflectedExtAggregate.h:35
DtFrameStateInterface * frameStateInterface
Definition: remoteObjectManager.h:596
Instances of DtReflectedRectangularPyramid are used to represent a simulated HLAobjectRoot.SensorFieldOfView.RectangularPyramid object reflected across a network.
Definition: reflectedRectangularPyramidDIS.h:33
AwaitingReflectedTransmitters myReflectedRadioTransmitters
Definition: remoteObjectManager.h:622
AwaitingReflectedTransmitters myNavAidReflectedRadioTransmitters
Definition: remoteObjectManager.h:623
DtRemoteStateComponentNetInterface * remoteStateComponentNetInterface
Definition: remoteObjectManager.h:597
DtVrfPublisherContainer< DtSimObjectNetInterface > PublisherContainer
Definition: remoteObjectManager.h:587
virtual double bulkAddTimeout() const
Definition: remoteObjectManager.h:246
ObjectsToCreate myPendingAggregateJobs
Definition: remoteObjectManager.h:648
std::vector< DtStateComponent * > StateComponentVector
Definition: remoteObjectManager.h:614
Instances of this class provide a protocol independent interface to a list of DynamicTerrain in a DIS...
Definition: reflectedDynamicTerrainListDIS.h:24
DtReflectedRadioTransmitterList * reflectedRadioTransmitterList() const
Definition: remoteObjectManager.h:204
int myDefaultObjectTimeout
Definition: remoteObjectManager.h:632
double staticObjectDiscoveryTime() const
Definition: remoteObjectManager.h:258
double longScenarioLoadDiscoveryTime() const
Definition: remoteObjectManager.h:238
Simple asynchronous callback queue.
Definition: vrfCallbackQueue.h:29
Definition: remoteStateComponentNetInterface.h:23
PublisherContainer myInterfaces
Definition: remoteObjectManager.h:589
DtReflectedDesignatorList * reflectedDesignatorList() const
Definition: remoteObjectManager.h:189
std::map< makVrf::SimStateID, std::pair< DtReflectedObject *, DtSimObjectNetInterface * > > RemoteInterfacesById
Definition: remoteObjectManager.h:590
ObjectsToCreate myPendingEntityJobs
Definition: remoteObjectManager.h:647
ReflectedObjectToComponentMap myReflectedObjectToComponentMap
Definition: remoteObjectManager.h:604
DtReflectedEntityList * reflectedEntityList() const
Definition: remoteObjectManager.h:174
class DtReflectedControlObjectList:
Definition: reflectedControlObjectList.h:23
DtUUID uuid
Definition: remoteObjectManager.h:643
class DtRemoteObjectManager:
Definition: remoteObjectManager.h:28
DtStateDataManager * stateDataManager()
Definition: remoteObjectManager.h:164
DtReflectedIffList * reflectedIffList() const
Definition: remoteObjectManager.h:224
makVrv::vrvSignalsLib::connection deleteObjectConnection
Definition: remoteObjectManager.h:595
DtSimulationAddress mySimulationAddress
Definition: remoteObjectManager.h:578
DtReflectedNavAidList * reflectedNavAidTransmitterList() const
Definition: remoteObjectManager.h:209
std::map< DtString, DtStateData * > UnhostedStateData
Definition: remoteObjectManager.h:625
std::set< DtGlobalObjectDesignator > myJustDeleted
Definition: remoteObjectManager.h:636
CreationInfo()
Definition: remoteObjectManager.h:640
DtReflectedRadioReceiverList * reflectedRadioReceiverList() const
Definition: remoteObjectManager.h:214
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:398
InterfacesByStateData myInterfacesByStateData
Definition: remoteObjectManager.h:601
std::map< DtString, StateComponentVector > UnhostedComponents
Definition: remoteObjectManager.h:615
class DtReflectedNavAidList:
Definition: reflectedNavAidListDIS.h:19
int defaultObjectTimeout() const
Definition: remoteObjectManager.h:117
UnhostedComponents myUnhostedComponents
Definition: remoteObjectManager.h:616
DtReflectedObjectLists myReflectedLists
Definition: remoteObjectManager.h:566
DtReflectedActiveSonarList * reflectedActiveSonarList() const
Definition: remoteObjectManager.h:194
RemoteInterfacesById myRemoteInterfacesById
Definition: remoteObjectManager.h:591
DtVrlinkNetworkInterface * myVrlinkNetworkInterface
Definition: remoteObjectManager.h:577
Instances of DtReflectedDynamicTerrain are used to represent a simulated HLAobjectRoot.DynamicTerrain object reflected across a network.
Definition: reflectedDynamicTerrainDIS.h:32
Definition: remoteObjectManager.h:638
DtStateData * myDynamicTerrainStateData
Definition: remoteObjectManager.h:612
RemoteInterfacesByReflectedObject myRemoteInterfacesByReflectedObject
Definition: remoteObjectManager.h:607
DtVrfParameterDb * myParameterDatabase
Definition: remoteObjectManager.h:617
DtExerciseConn * exerciseConnection() const
Definition: remoteObjectManager.h:251
std::map< unsigned long long, std::set< uintptr_t > > InterfacesByStateData
Definition: remoteObjectManager.h:600
The reflected object for a NavAid transmitter.
Definition: reflectedNavAidDIS.h:27
DtTimedSection myDiscoveryTimer
Definition: remoteObjectManager.h:650
Definition: remoteObjectManager.h:581
bool timeoutProcessingDisabled() const
Definition: remoteObjectManager.h:122
ObjectsToCreate myPendingEnvironmentalJobs
Definition: remoteObjectManager.h:649
DtReflectedDynamicTerrainList * reflectedDynamicTerrainList() const
Definition: remoteObjectManager.h:219
Definition: reflectedVrfExtControlObjectList.h:23
tbb::spin_mutex myInterfacesMutex
Definition: remoteObjectManager.h:588
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
std::map< DtReflectedObject *, DtSimObjectNetInterface * > InterfacesByReflectedObjectMap
Definition: remoteObjectManager.h:77
bool myEnabled
Definition: remoteObjectManager.h:576
DtReflectedEnvironmentProcessList * reflectedEnvironmentProcessList() const
Definition: remoteObjectManager.h:184
std::map< DtReflectedObject *, CreationInfo > ObjectsToCreate
Definition: remoteObjectManager.h:646
std::map< DtUUID, DtSimObjectNetInterface * > RemoteInterfacesByUUID
Definition: remoteObjectManager.h:609
const DtReflectedObjectLists & reflectedLists() const
Definition: remoteObjectManager.h:229
Definition: reflectedObjectLists.h:166
std::map< DtString, std::vector< DtReflectedObject * > > AwaitingReflectedTransmitters
Because radios and nav aid are both discovered in their own lists, have a pending list for each to ch...
Definition: remoteObjectManager.h:621
This is a simple base class that will be used to return a pointer to current or next frame state...
Definition: stateComponent.h:294
std::unordered_map< DtUUID, unsigned long long > myStateDataToRemove
Definition: remoteObjectManager.h:630
DtReflectedAggregateList * reflectedAggregateList() const
Definition: remoteObjectManager.h:179
Definition: reflectedVrfExtAggregateList.h:23
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:73

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)