VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
reflectedExtEntityList.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2025 MAK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
9 
10 #pragma once
11 
15 #include <vl/reflectedEntityList.h>
16 #include <vl/dataInteraction.h>
17 #include <vlutil/vlHashlist.h>
18 #include <vlutil/vlSmartPointers.h>
19 
20 class DtRwProperties;
21 
28 {
29 
30 public:
31 
37  DtReflectedExtEntityList(DtExerciseConn* exConn,
38  const DtRwProperties& stateProps = DtRwProperties::emptyProperties(),
39  const DtRwProperties& paramProps = DtRwProperties::emptyProperties());
40 
41 #if DtHLA
42  DtReflectedExtEntityList(DtExerciseConn* exConn,
48  const DtDDMRegionSet* regionSetToUse,
49  const DtRwProperties& stateProps = DtRwProperties::emptyProperties(),
50  const DtRwProperties& paramProps = DtRwProperties::emptyProperties());
51 
57  DtReflectedExtEntityList(DtExerciseConn* exConn,
58  const DtList *handleList, const DtDDMRegionSet* regionSetToUse = 0,
59  const DtRwProperties& stateProps = DtRwProperties::emptyProperties(),
60  const DtRwProperties& paramProps = DtRwProperties::emptyProperties());
61 
62  static void DiGuyObjectUpdateCb(DtReflectedDIGuyObject* diGuyObject, void* usr );
63 #endif
64 
66  virtual ~DtReflectedExtEntityList() override;
67 
71  virtual void setPropertyPrototypes(const DtRwProperties& stateProps,
72  const DtRwProperties& paramProps);
73 
77  virtual void setWaitForVrfExtendedData(bool);
78 
80  virtual bool waitForVrfExtendedData() const;
81 
82 #if DtHLA
83  #if DtHLA_1516
84  virtual DtReflectedExtEntity* lookupEE(RTI::ObjectInstanceHandle id);
86  #else
87  virtual DtReflectedExtEntity* lookupEE(RTI::ObjectHandle id);
89  #endif
90 
92  virtual DtReflectedExtEntity* lookupEE(const DtGlobalObjectDesignator& objName);
93 #else // DtDIS
94  virtual DtReflectedExtEntity* lookup(const DtObjectId& id);
96 #endif
97 
99  virtual DtReflectedExtEntity* firstEE() const;
100 
102  virtual DtReflectedExtEntity* lastEE() const;
103 
105  virtual void addEntityAdditionCallback (
106  DtExtEntityCallbackFunction cb, void* userData);
107 
109  virtual void removeEntityAdditionCallback (
110  DtExtEntityCallbackFunction cb, void* userData);
111 
113  virtual void addEntityRemovalCallback (
114  DtExtEntityCallbackFunction cb, void* userData);
115 
117  virtual void removeEntityRemovalCallback (
118  DtExtEntityCallbackFunction cb, void* userData);
119 
121  static void setTimeoutRequestTime(DtTime t);
122  static DtTime timeoutRequestTime();
123 
125  static void setInitializer(DtExtendedAttributesInitializerPtr init);
126 
128  static DtExtendedAttributesInitializerPtr initializer();
129 
133  static void setRequestVrfObjectData(bool);
134  static bool shouldRequestVrfObjectData();
135 
136 protected:
137 
139  void initializeExtendedProperties();
140 
141  void processVrfObjectStateUpdateMessage(DtDataInteraction* interaction);
142  void processVrfObjectDataMessage(DtDataInteraction* interaction);
143 
144  static void dataInteractionCallback(DtDataInteraction* i, void* usr);
145 
146  virtual void processDataInteraction(DtDataInteraction* i);
147 
148 #if DtHLA
149  virtual DtReflectedObject *
151  newReflectedObject(DtHlaObject *obj) const override;
152  virtual void addToObjectList(DtReflectedObject *refObj) override;
153 #else // DtDIS
154  virtual DtReflectedEntity *
156  newReflectedEntity(const DtEntityIdentifier &id,
157  const DtEntityType &type) const override;
158 #endif
159 
161  virtual void cleanupObjectDataMessageHashList();
162 
170  virtual bool readyToAdd(DtReflectedObject *obj) override;
171 
174  virtual bool setupVrfObjectData(DtReflectedObject* object);
175 
178  virtual bool addObjectIfWaitingForVrfMessage(DtReflectedExtEntity*);
179 
182  virtual void requestVrfObjectData(DtReflectedObject* object);
183 
186  virtual bool timeOutVrfObjectDataRequest(DtReflectedObject* obj);
187 
189  virtual void removeAndDelete(DtReflectedObject* obj, const char* msg = NULL) override;
190 
192  virtual void diguyExtensionsSetup();
193 
194 #if DtDIS
195  virtual void processObjectAdditionCallbacks(DtReflectedObject *object) override;
197 #endif
198 
201  virtual void entityAdded(DtReflectedEntity *) override;
202 
204  static void entityUpdatedCallback(DtReflectedEntity* entity, void* userData);
205  virtual void entityUpdated(DtReflectedEntity*);
206 
208  static void entityRemovedCallback(DtReflectedEntity* entity, void* userData);
209  virtual void entityRemoved(DtReflectedEntity*);
210 
211 private:
212 
215 
217  DtReflectedExtEntityList& operator=(const DtReflectedExtEntityList& rhs);
218 
219 protected:
220 
224 
228 
229 #if DtDIS
230  DtHashList myWaitingForVrfObjectData;
232 #else // DtHLA
233  DtObjectIdHashList myWaitingForVrfObjectData;
234 #endif
235 
237 
239 
242 
244 
246 };
Contains the DtReflectedExtEntity class declaration.
void(* DtExtEntityCallbackFunction)(DtReflectedExtEntity *obj, void *userData)
Definition: reflectedExtEntity.h:20
Definition: reflectedExtEntity.h:31
static bool theRequestVrfObjectData
Definition: reflectedExtEntityList.h:245
static DtExtendedAttributesInitializerPtr theInitializer
Definition: reflectedExtEntityList.h:243
DtHashList myObjectDataMessageRequestList
List to keep track of requests for VRF object message data and the time they were sent...
Definition: reflectedExtEntityList.h:227
static const DtRwProperties & emptyProperties()
bool myWaitForVrfExtendedData
Definition: reflectedExtEntityList.h:238
DtRwProperties myParameterPropertiesPrototype
Definition: reflectedExtEntityList.h:241
static DtTime theTimeoutRequestTime
Definition: reflectedExtEntityList.h:236
DtHashlist myObjectDataMessageHashlist
List to keep the VRF obj data messages that have been found but not associated with new entities yet...
Definition: reflectedExtEntityList.h:223
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
std::shared_ptr< DtExtendedAttributesInitializer > DtExtendedAttributesInitializerPtr
Definition: extendedAttributesInitializer.h:162
A list of properties. A DtPropertyInterface object that is a specialized version of DtRwVariableBindi...
Definition: rwProperties.h:122
#define DT_DLL_vrfExtObjects
Definition: dllExport.h:23
DtRwProperties myStatePropertiesPrototype
Definition: reflectedExtEntityList.h:240
class DtReflectedExtAggregateList:
Definition: reflectedExtEntityList.h:27

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)