VR-Link API Documentation for DIS
 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 
291  DtReflectedIFFDataList* myReflectedIffDataList;
292  DtReflectedMode1List* myReflectedIffMode1List;
293  DtReflectedMode2List* myReflectedIffMode2List;
294  DtReflectedMode3AList* myReflectedIffMode3AList;
295  DtReflectedMode3CList* myReflectedIffMode3CList;
296  DtReflectedMode4List* myReflectedIffMode4List;
297  DtReflectedMode5List* myReflectedIffMode5List;
298  DtReflectedModeSList* myReflectedIffModeSList;
299  DtReflectedTCASDataList* myReflectedIffTCASDataList;
300  DtReflectedSovietList* myReflectedIffSovietList;
301  DtReflectedRRBList* myReflectedIffRRBList;
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 
Instances of DtReflectedObjectList are lists of instances of classes derived from DtReflectedObject...
Definition: reflectedObjectListDIS.h:38
Instances of DtReflectedIff represent Iff object simulated by remote applications.
Definition: reflectedIffDIS.h:34
Contains the HLA DtReflectedObjectList class declaration.
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnDIS.h:62
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
DtReflectedObjectList & operator=(const DtReflectedObjectList &orig)
assignment operator – not implemented
DtList is deprecated, please use std::list&lt;T&gt;.
Definition: vlList.h:71
Instances of DtReflectedObject are used to represent a simulation entity reflected across a network (...
Definition: reflectedObjectDIS.h:34
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
virtual void removeAndDelete(DtReflectedObject *obj, char *msg=NULL)
Remove the remote object from the list if found and delete it.
Instances of this class provide a protocol independent interface to a list of reflected emitters in a...
Definition: reflectedIffListDIS.h:28
virtual void objectAdded(DtReflectedObject *object)
Called after a remote object has been added to the list.
void(* DtIffCallbackFunction)(DtReflectedIff *obj, void *userData)
Callback function that takes a DtReflectedObject and user data.
Definition: reflectedIffDIS.h:26
Instances of DtString are used to represent strings.
Definition: vlString.h:29

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)