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 
75 protected:
76 
79 
82 
84  virtual const DtList* dfltHandleList();
85 
87  void initIffDataLists( DtExerciseConn* exConn,
88  const DtDDMRegionSet* regionSetToUse );
89 
92  virtual void objectAdded(DtReflectedObject* obj);
93 
98  virtual void iffAdded(DtReflectedIff* ent);
99 
102  virtual DtReflectedObject* newReflectedObject(DtHlaObject* obj) const;
103 
106  virtual DtReflectedObject* newReflectedIff(DtHlaObject* obj) const;
107 
110  virtual DtReflectedIff* newReflectedIff(
111  const DtGlobalObjectDesignator& des ) const;
112 
115  virtual void removeAndDelete(DtReflectedObject* object, char* msg);
116 
118  virtual void removeAndDelete(DtReflectedIff* entity, char* msg = NULL);
119 
126  virtual void processIffDataAddition( DtReflectedIFFData* data );
127  virtual void processIffDataUpdate( DtReflectedIFFData* data );
128  virtual void processIffDataRemoval( DtReflectedIFFData* data );
129 
130  virtual void processMode5TransponderDataAddition( DtReflectedMode5Transponder* data );
131  virtual void processMode5TransponderDataUpdate( DtReflectedMode5Transponder* data );
132  virtual void processMode5TransponderDataRemoval( DtReflectedMode5Transponder* data );
133 
134  virtual void processMode5InterrogatorDataAddition( DtReflectedMode5Interrogator* data );
135  virtual void processMode5InterrogatorDataUpdate( DtReflectedMode5Interrogator* data );
136  virtual void processMode5InterrogatorDataRemoval( DtReflectedMode5Interrogator* data );
137 
138  virtual void processModeSTransponderDataAddition( DtReflectedModeSTransponder* data );
139  virtual void processModeSTransponderDataUpdate( DtReflectedModeSTransponder* data );
140  virtual void processModeSTransponderDataRemoval( DtReflectedModeSTransponder* data );
141 
142  virtual void processModeSInterrogatorDataAddition( DtReflectedModeSInterrogator* data );
143  virtual void processModeSInterrogatorDataUpdate( DtReflectedModeSInterrogator* data );
144  virtual void processModeSInterrogatorDataRemoval( DtReflectedModeSInterrogator* data );
145 
148  virtual void resolveOrphans();
149  virtual void resolveIffDataOrphans();
150  virtual void resolveMode5TransponderOrphans();
151  virtual void resolveMode5InterrogatorOrphans();
152  virtual void resolveModeSTransponderOrphans();
153  virtual void resolveModeSInterrogatorOrphans();
154 
157  static void iffDataAdditionCb(
158  DtReflectedIFFData* data, void* usr );
159  static void iffDataUpdateCb(
160  DtReflectedIFFData* data, void* usr );
161  static void iffDataRemovalCb(
162  DtReflectedIFFData* data, void* usr );
163 
166  static void mode5TransponderDataAdditionCb(
167  DtReflectedMode5Transponder* data, void* usr );
168  static void mode5TransponderDataUpdateCb(
169  DtReflectedMode5Transponder* data, void* usr );
170  static void mode5TransponderDataRemovalCb(
171  DtReflectedMode5Transponder* data, void* usr );
172 
175  static void mode5InterrogatorDataAdditionCb(
176  DtReflectedMode5Interrogator* data, void* usr );
177  static void mode5InterrogatorDataUpdateCb(
178  DtReflectedMode5Interrogator* data, void* usr );
179  static void mode5InterrogatorDataRemovalCb(
180  DtReflectedMode5Interrogator* data, void* usr );
181 
184  static void modeSTransponderDataAdditionCb(
185  DtReflectedModeSTransponder* data, void* usr );
186  static void modeSTransponderDataUpdateCb(
187  DtReflectedModeSTransponder* data, void* usr );
188  static void modeSTransponderDataRemovalCb(
189  DtReflectedModeSTransponder* data, void* usr );
190 
193  static void modeSInterrogatorDataAdditionCb(
194  DtReflectedModeSInterrogator* data, void* usr );
195  static void modeSInterrogatorDataUpdateCb(
196  DtReflectedModeSInterrogator* data, void* usr );
197  static void modeSInterrogatorDataRemovalCb(
198  DtReflectedModeSInterrogator* data, void* usr );
199 
201  static void resolveOrphansPostDrainCb( void* usr );
202 
203 
205  DtReflectedIFFDataList* myReflectedIffDataList;
206  DtReflectedMode5TransponderList* myReflectedIffMode5TransponderList;
207  DtReflectedModeSTransponderList* myReflectedIffModeSTransponderList;
208  DtReflectedMode5InterrogatorList* myReflectedIffMode5InterrogatorList;
209  DtReflectedModeSInterrogatorList* myReflectedIffModeSInterrogatorList;
210  //Lists for tracking orphaned IFF Data
211  std::list<DtReflectedIFFData*> myOrphanData;
212  std::list<DtReflectedMode5Transponder*> myMode5TransponderOrphanData;
213  std::list<DtReflectedModeSTransponder*> myModeSTransponderOrphanData;
214  std::list<DtReflectedMode5Interrogator*> myMode5InterrogatorOrphanData;
215  std::list<DtReflectedModeSInterrogator*> myModeSInterrogatorOrphanData;
216 };
217 
218 #endif
219 #endif
220 
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:61
#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 Tue Aug 10 00:12:31 EDT 2021 from SVN revision 232765
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)