VR-Forces 4.8 Class Documentation
 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 
128 protected:
129 
131  void initializeExtendedProperties();
132 
133  void processVrfObjectStateUpdateMessage(DtDataInteraction* interaction);
134  void processVrfObjectDataMessage(DtDataInteraction* interaction);
135 
136  static void dataInteractionCallback(DtDataInteraction* i, void* usr);
137 
138  virtual void processDataInteraction(DtDataInteraction* i);
139 
140 #if DtHLA
141  virtual DtReflectedObject* newReflectedObject(DtHlaObject* obj) const;
143  virtual void addToObjectList(DtReflectedObject* refObj);
144 #else // DtDIS
145  virtual DtReflectedEntity* newReflectedEntity (
147  const DtEntityIdentifier& id, const DtEntityType& type) const;
148 #endif
149 
151  virtual void cleanupObjectDataMessageHashList();
152 
160  virtual bool readyToAdd(DtReflectedObject* obj);
161 
164  virtual bool setupVrfObjectData(DtReflectedObject* object);
165 
168  virtual bool addObjectIfWaitingForVrfMessage(DtReflectedExtEntity*);
169 
172  virtual void requestVrfObjectData(DtReflectedObject* object);
173 
176  virtual bool timeOutVrfObjectDataRequest(DtReflectedObject* obj);
177 
179  virtual void removeAndDelete(DtReflectedObject* obj, char* msg = NULL);
180 
182  virtual void diguyExtensionsSetup();
183 
184 #if DtDIS
185  virtual void processObjectAdditionCallbacks(DtReflectedObject* object);
187 #endif
188 
191  virtual void entityAdded(DtReflectedEntity*);
192 
194  static void entityUpdatedCallback(DtReflectedEntity* entity, void* userData);
195  virtual void entityUpdated(DtReflectedEntity*);
196 
198  static void entityRemovedCallback(DtReflectedEntity* entity, void* userData);
199  virtual void entityRemoved(DtReflectedEntity*);
200 
201 private:
202 
205 
207  DtReflectedExtEntityList& operator=(const DtReflectedExtEntityList& rhs);
208 
209 protected:
210 
214 
218 
219 #if DtDIS
220  DtHashList myWaitingForVrfObjectData;
222 #else // DtHLA
223  DtObjectIdHashList myWaitingForVrfObjectData;
224 #endif
225 
227 
229 
232 
234 };
Contains the DtReflectedExtEntity class declaration.
void(* DtExtEntityCallbackFunction)(DtReflectedExtEntity *obj, void *userData)
Definition: reflectedExtEntity.h:20
Definition: reflectedExtEntity.h:31
static DtExtendedAttributesInitializerPtr theInitializer
Definition: reflectedExtEntityList.h:233
DtHashList myObjectDataMessageRequestList
List to keep track of requests for VRF object message data and the time they were sent...
Definition: reflectedExtEntityList.h:217
static const DtRwProperties & emptyProperties()
bool myWaitForVrfExtendedData
Definition: reflectedExtEntityList.h:228
DtRwProperties myParameterPropertiesPrototype
Definition: reflectedExtEntityList.h:231
static DtTime theTimeoutRequestTime
Definition: reflectedExtEntityList.h:226
DtHashlist myObjectDataMessageHashlist
List to keep the VRF obj data messages that have been found but not associated with new entities yet...
Definition: reflectedExtEntityList.h:213
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtBoost::shared_ptr< DtExtendedAttributesInitializer > DtExtendedAttributesInitializerPtr
Definition: extendedAttributesInitializer.h:138
A list of properties.
Definition: rwProperties.h:126
#define DT_DLL_vrfExtObjects
Definition: dllExport.h:23
DtRwProperties myStatePropertiesPrototype
Definition: reflectedExtEntityList.h:230
class DtReflectedExtAggregateList:
Definition: reflectedExtEntityList.h:27

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)