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) 2018 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 #endif
62 
64  virtual ~DtReflectedExtEntityList();
65 
69  virtual void setPropertyPrototypes(const DtRwProperties& stateProps,
70  const DtRwProperties& paramProps);
71 
75  virtual void setWaitForVrfExtendedData(bool);
76 
78  virtual bool waitForVrfExtendedData() const;
79 
80 #if DtHLA
81  #if DtHLA_1516
82  virtual DtReflectedExtEntity* lookupEE(RTI::ObjectInstanceHandle id);
84  #else
85  virtual DtReflectedExtEntity* lookupEE(RTI::ObjectHandle id);
87  #endif
88 
90  virtual DtReflectedExtEntity* lookupEE(const DtGlobalObjectDesignator& objName);
91 #else // DtDIS
92  virtual DtReflectedExtEntity* lookup(const DtObjectId& id);
94 #endif
95 
97  virtual DtReflectedExtEntity* firstEE() const;
98 
100  virtual DtReflectedExtEntity* lastEE() const;
101 
103  virtual void addEntityAdditionCallback (
104  DtExtEntityCallbackFunction cb, void* userData);
105 
107  virtual void removeEntityAdditionCallback (
108  DtExtEntityCallbackFunction cb, void* userData);
109 
111  virtual void addEntityRemovalCallback (
112  DtExtEntityCallbackFunction cb, void* userData);
113 
115  virtual void removeEntityRemovalCallback (
116  DtExtEntityCallbackFunction cb, void* userData);
117 
119  static void setTimeoutRequestTime(DtTime t);
120  static DtTime timeoutRequestTime();
121 
123  static void setInitializer(DtExtendedAttributesInitializerPtr init);
124 
126  static DtExtendedAttributesInitializerPtr initializer();
127 
131  static void setRequestVrfObjectData(bool);
132  static bool shouldRequestVrfObjectData();
133 
134 protected:
135 
137  void initializeExtendedProperties();
138 
139  void processVrfObjectStateUpdateMessage(DtDataInteraction* interaction);
140  void processVrfObjectDataMessage(DtDataInteraction* interaction);
141 
142  static void dataInteractionCallback(DtDataInteraction* i, void* usr);
143 
144  virtual void processDataInteraction(DtDataInteraction* i);
145 
146 #if DtHLA
147  virtual DtReflectedObject* newReflectedObject(DtHlaObject* obj) const;
149  virtual void addToObjectList(DtReflectedObject* refObj);
150 #else // DtDIS
151  virtual DtReflectedEntity* newReflectedEntity (
153  const DtEntityIdentifier& id, const DtEntityType& type) const;
154 #endif
155 
157  virtual void cleanupObjectDataMessageHashList();
158 
166  virtual bool readyToAdd(DtReflectedObject* obj);
167 
170  virtual bool setupVrfObjectData(DtReflectedObject* object);
171 
174  virtual bool addObjectIfWaitingForVrfMessage(DtReflectedExtEntity*);
175 
178  virtual void requestVrfObjectData(DtReflectedObject* object);
179 
182  virtual bool timeOutVrfObjectDataRequest(DtReflectedObject* obj);
183 
185  virtual void removeAndDelete(DtReflectedObject* obj, char* msg = NULL);
186 
188  virtual void diguyExtensionsSetup();
189 
190 #if DtDIS
191  virtual void processObjectAdditionCallbacks(DtReflectedObject* object);
193 #endif
194 
197  virtual void entityAdded(DtReflectedEntity*);
198 
200  static void entityUpdatedCallback(DtReflectedEntity* entity, void* userData);
201  virtual void entityUpdated(DtReflectedEntity*);
202 
204  static void entityRemovedCallback(DtReflectedEntity* entity, void* userData);
205  virtual void entityRemoved(DtReflectedEntity*);
206 
207 private:
208 
211 
213  DtReflectedExtEntityList& operator=(const DtReflectedExtEntityList& rhs);
214 
215 protected:
216 
220 
224 
225 #if DtDIS
226  DtHashList myWaitingForVrfObjectData;
228 #else // DtHLA
229  DtObjectIdHashList myWaitingForVrfObjectData;
230 #endif
231 
233 
235 
238 
240 
242 };
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:241
static DtExtendedAttributesInitializerPtr theInitializer
Definition: reflectedExtEntityList.h:239
DtHashList myObjectDataMessageRequestList
List to keep track of requests for VRF object message data and the time they were sent...
Definition: reflectedExtEntityList.h:223
static const DtRwProperties & emptyProperties()
bool myWaitForVrfExtendedData
Definition: reflectedExtEntityList.h:234
DtRwProperties myParameterPropertiesPrototype
Definition: reflectedExtEntityList.h:237
static DtTime theTimeoutRequestTime
Definition: reflectedExtEntityList.h:232
DtHashlist myObjectDataMessageHashlist
List to keep the VRF obj data messages that have been found but not associated with new entities yet...
Definition: reflectedExtEntityList.h:219
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
std::shared_ptr< DtExtendedAttributesInitializer > DtExtendedAttributesInitializerPtr
Definition: extendedAttributesInitializer.h:157
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:236
class DtReflectedExtAggregateList:
Definition: reflectedExtEntityList.h:27

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)