VR-Link API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
reflectedIffListHLA.h
Go to the documentation of this file.
1 /***************************************************************
2  * Copyright (c) 1997 MaK Technologies, Inc.
3  * All rights reserved.
4  * **************************************************************/
5 
6 
7 
8 #ifndef reflectedIffListHLA_H_
9 #define reflectedIffListHLA_H_
10 
11 #if DtHLA
12 
13 #include "reflectedObjectListHLA.h"
14 #include "reflectedIffHLA.h"
15 #include <vl/iffDataReflected.h>
16 
21 
27 
29 {
30 public:
31 
33  DtReflectedIffList(DtExerciseConn* exConn, const DtDDMRegionSet* regionSetToUse = 0,
34  const DtString& updateRateTag = DtString(""));
35 
39  DtExerciseConn* exConn,
40  const DtList *handleList,
41  const DtDDMRegionSet* regionSetToUse = 0,
42  const DtString& updateRateTag = DtString(""));
43 
45  virtual ~DtReflectedIffList();
46 
48  virtual DtReflectedIff* lookup(
49 #if DtHLA_1516
50  RTI::ObjectInstanceHandle id);
51 #else
52  RTI::ObjectHandle id);
53 #endif
54 
56  virtual DtReflectedIff* lookup(const DtGlobalObjectDesignator& objName);
57 
59  virtual DtReflectedIff* first() const;
60  virtual DtReflectedIff* last() const;
61 
63  virtual void addIffAdditionCallback(
64  DtIffCallbackFunction cb, void* userData);
65  virtual void removeIffAdditionCallback(
66  DtIffCallbackFunction cb, void* userData);
67 
69  virtual void addIffRemovalCallback(
70  DtIffCallbackFunction cb, void* userData);
71  virtual void removeIffRemovalCallback(
72  DtIffCallbackFunction cb, void* userData);
73 
74 protected:
75 
78 
81 
83  virtual const DtList* dfltHandleList();
84 
86  void initIffDataLists( DtExerciseConn* exConn,
87  const DtDDMRegionSet* regionSetToUse );
88 
91  virtual void objectAdded(DtReflectedObject* obj);
92 
97  virtual void iffAdded(DtReflectedIff* ent);
98 
101  virtual DtReflectedObject* newReflectedObject(DtHlaObject* obj) const;
102 
105  virtual DtReflectedObject* newReflectedIff(DtHlaObject* obj) const;
106 
109  virtual DtReflectedIff* newReflectedIff(
110  const DtGlobalObjectDesignator& des ) const;
111 
114  virtual void removeAndDelete(DtReflectedObject* object, char* msg);
115 
117  virtual void removeAndDelete(DtReflectedIff* entity, char* msg = NULL);
118 
125  virtual void processIffDataAddition( DtReflectedIFFData* data );
126  virtual void processIffDataUpdate( DtReflectedIFFData* data );
127  virtual void processIffDataRemoval( DtReflectedIFFData* data );
128 
129  virtual void processMode1DataAddition(DtReflectedMode1* data);
130  virtual void processMode1DataUpdate(DtReflectedMode1* data);
131  virtual void processMode1DataRemoval(DtReflectedMode1* data);
132 
133  virtual void processMode2DataAddition(DtReflectedMode2* data);
134  virtual void processMode2DataUpdate(DtReflectedMode2* data);
135  virtual void processMode2DataRemoval(DtReflectedMode2* data);
136 
137  virtual void processMode3ADataAddition(DtReflectedMode3A* data);
138  virtual void processMode3ADataUpdate(DtReflectedMode3A* data);
139  virtual void processMode3ADataRemoval(DtReflectedMode3A* data);
140 
141  virtual void processMode3CDataAddition(DtReflectedMode3C* data);
142  virtual void processMode3CDataUpdate(DtReflectedMode3C* data);
143  virtual void processMode3CDataRemoval(DtReflectedMode3C* data);
144 
145  virtual void processMode4DataAddition(DtReflectedMode4* data);
146  virtual void processMode4DataUpdate(DtReflectedMode4* data);
147  virtual void processMode4DataRemoval(DtReflectedMode4* data);
148 
149  virtual void processMode5DataAddition(DtReflectedMode5* data);
150  virtual void processMode5DataUpdate(DtReflectedMode5* data);
151  virtual void processMode5DataRemoval(DtReflectedMode5* data);
152 
153  virtual void processModeSDataAddition(DtReflectedModeS* data);
154  virtual void processModeSDataUpdate(DtReflectedModeS* data);
155  virtual void processModeSDataRemoval(DtReflectedModeS* data);
156 
157  virtual void processTCASDataDataAddition(DtReflectedTCASData* data);
158  virtual void processTCASDataDataUpdate(DtReflectedTCASData* data);
159  virtual void processTCASDataDataRemoval(DtReflectedTCASData* data);
160 
161  virtual void processSovietDataAddition(DtReflectedSoviet* data);
162  virtual void processSovietDataUpdate(DtReflectedSoviet* data);
163  virtual void processSovietDataRemoval(DtReflectedSoviet* data);
164 
165  virtual void processRRBDataAddition(DtReflectedRRB* data);
166  virtual void processRRBDataUpdate(DtReflectedRRB* data);
167  virtual void processRRBDataRemoval(DtReflectedRRB* data);
168 
169 
172  virtual void resolveOrphans();
173  virtual void resolveIffDataOrphans();
174  virtual void resolveMode1Orphans();
175  virtual void resolveMode2Orphans();
176  virtual void resolveMode3AOrphans();
177  virtual void resolveMode3COrphans();
178  virtual void resolveMode4Orphans();
179  virtual void resolveMode5Orphans();
180  virtual void resolveModeSOrphans();
181  virtual void resolveTCASDataOrphans();
182  virtual void resolveSovietOrphans();
183  virtual void resolveRRBOrphans();
184 
187  static void iffDataAdditionCb(
188  DtReflectedIFFData* data, void* usr );
189  static void iffDataUpdateCb(
190  DtReflectedIFFData* data, void* usr );
191  static void iffDataRemovalCb(
192  DtReflectedIFFData* data, void* usr );
193 
196  static void mode1DataAdditionCb(
197  DtReflectedMode1* data, void* usr);
198  static void mode1DataUpdateCb(
199  DtReflectedMode1* data, void* usr);
200  static void mode1DataRemovalCb(
201  DtReflectedMode1* data, void* usr);
202 
205  static void mode2DataAdditionCb(
206  DtReflectedMode2* data, void* usr);
207  static void mode2DataUpdateCb(
208  DtReflectedMode2* data, void* usr);
209  static void mode2DataRemovalCb(
210  DtReflectedMode2* data, void* usr);
211 
214  static void mode3ADataAdditionCb(
215  DtReflectedMode3A* data, void* usr);
216  static void mode3ADataUpdateCb(
217  DtReflectedMode3A* data, void* usr);
218  static void mode3ADataRemovalCb(
219  DtReflectedMode3A* data, void* usr);
220 
223  static void mode3CDataAdditionCb(
224  DtReflectedMode3C* data, void* usr);
225  static void mode3CDataUpdateCb(
226  DtReflectedMode3C* data, void* usr);
227  static void mode3CDataRemovalCb(
228  DtReflectedMode3C* data, void* usr);
229 
230 
233  static void mode4DataAdditionCb(
234  DtReflectedMode4* data, void* usr);
235  static void mode4DataUpdateCb(
236  DtReflectedMode4* data, void* usr);
237  static void mode4DataRemovalCb(
238  DtReflectedMode4* data, void* usr);
239 
240 
243  static void mode5DataAdditionCb(
244  DtReflectedMode5* data, void* usr);
245  static void mode5DataUpdateCb(
246  DtReflectedMode5* data, void* usr);
247  static void mode5DataRemovalCb(
248  DtReflectedMode5* data, void* usr);
249 
252  static void modeSDataAdditionCb(
253  DtReflectedModeS* data, void* usr);
254  static void modeSDataUpdateCb(
255  DtReflectedModeS* data, void* usr);
256  static void modeSDataRemovalCb(
257  DtReflectedModeS* data, void* usr);
258 
261  static void tcasDataDataAdditionCb(
262  DtReflectedTCASData* data, void* usr);
263  static void tcasDataDataUpdateCb(
264  DtReflectedTCASData* data, void* usr);
265  static void tcasDataDataRemovalCb(
266  DtReflectedTCASData* data, void* usr);
267 
270  static void sovietDataAdditionCb(
271  DtReflectedSoviet* data, void* usr);
272  static void sovietDataUpdateCb(
273  DtReflectedSoviet* data, void* usr);
274  static void sovietDataRemovalCb(
275  DtReflectedSoviet* data, void* usr);
276 
279  static void rrbDataAdditionCb(
280  DtReflectedRRB* data, void* usr);
281  static void rrbDataUpdateCb(
282  DtReflectedRRB* data, void* usr);
283  static void rrbDataRemovalCb(
284  DtReflectedRRB* data, void* usr);
285 
287  static void resolveOrphansPostDrainCb( void* usr );
288 
289 
302 
303  //Lists for tracking orphaned IFF Data
304  std::list<DtReflectedIFFData*> myOrphanData;
305  std::list<DtReflectedMode1*> myMode1OrphanData;
306  std::list<DtReflectedMode2*> myMode2OrphanData;
307  std::list<DtReflectedMode3A*> myMode3AOrphanData;
308  std::list<DtReflectedMode3C*> myMode3COrphanData;
309  std::list<DtReflectedMode4*> myMode4OrphanData;
310  std::list<DtReflectedMode5*> myMode5OrphanData;
311  std::list<DtReflectedModeS*> myModeSOrphanData;
312  std::list<DtReflectedTCASData*> myTCASDataOrphanData;
313  std::list<DtReflectedSoviet*> mySovietOrphanData;
314  std::list<DtReflectedRRB*> myRRBOrphanData;
315 };
316 
317 #endif
318 #endif
319 
std::list< DtReflectedMode2 * > myMode2OrphanData
Definition: reflectedIffListHLA.h:306
class DtReflectedObjectList
Definition: reflectedObjectListHLA.h:58
Instances of DtReflectedSovietList manage a list of DtReflectedSoviet objects.
Definition: iffDataReflected.h:1930
Instances of DtReflectedMode3A are used to represent a simulated HLAobjectRoot.IFFData.Mode3A object reflected across a network.
Definition: iffDataReflected.h:544
DtReflectedModeSList * myReflectedIffModeSList
Definition: reflectedIffListHLA.h:298
class DtReflectedIff:
Definition: reflectedIffHLA.h:31
std::list< DtReflectedSoviet * > mySovietOrphanData
Definition: reflectedIffListHLA.h:313
Contains the HLA DtReflectedObjectList class declaration.
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:61
Instances of DtReflectedModeS are used to represent a simulated HLAobjectRoot.IFFData.ModeS object reflected across a network.
Definition: iffDataReflected.h:1204
Instances of DtReflectedRRB are used to represent a simulated HLAobjectRoot.IFFData.RRB object reflected across a network.
Definition: iffDataReflected.h:2018
virtual DtReflectedObject * newReflectedObject(DtHlaObject *obj) const =0
Create a remote object object for the HLA object.
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Instances of DtReflectedIFFData are used to represent a simulated HLAobjectRoot.IFFData object reflec...
Definition: iffDataReflected.h:49
DtReflectedMode5List * myReflectedIffMode5List
Definition: reflectedIffListHLA.h:297
std::list< DtReflectedTCASData * > myTCASDataOrphanData
Definition: reflectedIffListHLA.h:312
Instances of DtReflectedTCASData are used to represent a simulated HLAobjectRoot.IFFData.TCASData object reflected across a network.
Definition: iffDataReflected.h:1689
Instances of DtReflectedMode2List manage a list of DtReflectedMode2 objects.
Definition: iffDataReflected.h:456
std::list< DtReflectedModeS * > myModeSOrphanData
Definition: reflectedIffListHLA.h:311
std::list< DtReflectedIFFData * > myOrphanData
Definition: reflectedIffListHLA.h:304
std::list< DtReflectedMode1 * > myMode1OrphanData
Definition: reflectedIffListHLA.h:305
void(* DtIffCallbackFunction)(DtReflectedIff *obj, void *userData)
Definition: reflectedIffHLA.h:20
Instances of DtReflectedMode5 are used to represent a simulated HLAobjectRoot.IFFData.Mode5 object reflected across a network.
Definition: iffDataReflected.h:1039
std::list< DtReflectedMode3C * > myMode3COrphanData
Definition: reflectedIffListHLA.h:308
std::set< DtDDMRegionSP > DtDDMRegionSet
Definition: region13.h:34
Instances of DtReflectedMode3AList manage a list of DtReflectedMode3A objects.
Definition: iffDataReflected.h:621
DtReflectedRRBList * myReflectedIffRRBList
Definition: reflectedIffListHLA.h:301
std::list< DtReflectedMode3A * > myMode3AOrphanData
Definition: reflectedIffListHLA.h:307
Instances of DtReflectedTCASDataList manage a list of DtReflectedTCASData objects.
Definition: iffDataReflected.h:1766
DtReflectedObjectList & operator=(const DtReflectedObjectList &orig)
assignment operator – not implemented
Instances of DtReflectedMode5List manage a list of DtReflectedMode5 objects.
Definition: iffDataReflected.h:1116
Instances of DtHlaObject are used to represent HLA objects which are communicated across the network...
Definition: hlaObject.h:58
DtList is deprecated, please use std::list&lt;T&gt;.
Definition: vlList.h:71
Instances of DtReflectedMode2 are used to represent a simulated HLAobjectRoot.IFFData.Mode2 object reflected across a network.
Definition: iffDataReflected.h:379
std::list< DtReflectedMode4 * > myMode4OrphanData
Definition: reflectedIffListHLA.h:309
class DtReflectedObject:
Definition: reflectedObjectHLA.h:36
virtual void removeAndDelete(DtReflectedObject *obj, char *msg=nullptr)
Remove the remote object from the list if found and delete it.
DtReflectedMode4List * myReflectedIffMode4List
Definition: reflectedIffListHLA.h:296
DtReflectedMode3CList * myReflectedIffMode3CList
Definition: reflectedIffListHLA.h:295
DtReflectedMode3AList * myReflectedIffMode3AList
Definition: reflectedIffListHLA.h:294
std::list< DtReflectedRRB * > myRRBOrphanData
Definition: reflectedIffListHLA.h:314
Instances of DtReflectedRRBList manage a list of DtReflectedRRB objects.
Definition: iffDataReflected.h:2095
DtReflectedTCASDataList * myReflectedIffTCASDataList
Definition: reflectedIffListHLA.h:299
Instances of DtReflectedMode1List manage a list of DtReflectedMode1 objects.
Definition: iffDataReflected.h:291
Instances of DtReflectedMode4 are used to represent a simulated HLAobjectRoot.IFFData.Mode4 object reflected across a network.
Definition: iffDataReflected.h:874
DtReflectedIFFDataList * myReflectedIffDataList
Internal reflected IFF Data list for subscribing and receiving IFF Data objects.
Definition: reflectedIffListHLA.h:291
Instances of DtReflectedSoviet are used to represent a simulated HLAobjectRoot.IFFData.Soviet object reflected across a network.
Definition: iffDataReflected.h:1853
Instances of DtReflectedMode1 are used to represent a simulated HLAobjectRoot.IFFData.Mode1 object reflected across a network.
Definition: iffDataReflected.h:214
Instances of DtReflectedModeSList manage a list of DtReflectedModeS objects.
Definition: iffDataReflected.h:1281
An instance of this class manages the list of &quot;IFF&quot; objects that are simulated remotely, and reflected to us by the RTI.
Definition: reflectedIffListHLA.h:28
DtReflectedSovietList * myReflectedIffSovietList
Definition: reflectedIffListHLA.h:300
virtual void objectAdded(DtReflectedObject *object)
Called from processDiscoverObject() after a remote object has been added to the list.
Instances of DtReflectedMode4List manage a list of DtReflectedMode4 objects.
Definition: iffDataReflected.h:951
DtReflectedMode2List * myReflectedIffMode2List
Definition: reflectedIffListHLA.h:293
Instances of DtReflectedMode3CList manage a list of DtReflectedMode3C objects.
Definition: iffDataReflected.h:786
Instances of DtString are used to represent strings.
Definition: vlString.h:29
Instances of DtReflectedMode3C are used to represent a simulated HLAobjectRoot.IFFData.ModeC object reflected across a network.
Definition: iffDataReflected.h:709
std::list< DtReflectedMode5 * > myMode5OrphanData
Definition: reflectedIffListHLA.h:310
Instances of DtReflectedIFFDataList manage a list of DtReflectedIFFData objects.
Definition: iffDataReflected.h:126
This file provides a declaration of the class DtReflectedIff.
DtReflectedMode1List * myReflectedIffMode1List
Definition: reflectedIffListHLA.h:292

Document ID: Generated on Thu Sep 19 02:12:35 EDT 2024 from SVN revision 269601
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)