8 #ifndef DtNatoIffEncoder_H_
9 #define DtNatoIffEncoder_H_
26 #define DtDECLARE_NATO_IFF_ATTR_CHECKER(attrName) \
27 DtDECLARE_ATTR_CHECKER(DtIffStateRepository, attrName)
31 #define DtDECLARE_NATO_IFF_ATTR_ENCODER(attrName) \
32 DtDECLARE_ATTR_ENCODER(DtIffStateRepository, attrName)
38 #define DtDEFINE_SIMPLE_NATO_IFF_ATTR_ENCODER( \
39 attrName, netType, inspector) \
40 DtDEFINE_SIMPLE_ATTR_ENCODER(DtNatoIffEncoder, \
41 DtIffStateRepository, attrName, netType, inspector)
48 #define DtDEFINE_SIMPLE_NATO_IFF_ATTR_CHECKER( \
49 attrName, inspector) \
50 DtDEFINE_SIMPLE_ATTR_CHECKER(DtNatoIffEncoder, \
51 DtIffStateRepository, attrName, inspector)
58 #define DtDEFINE_SIMPLE_NATO_IFF_ATTR_ENCODER_WITH_PARAM( \
59 attrName, netType, inspector, param) \
60 DtDEFINE_SIMPLE_IFF_ATTR_ENCODER_WITH_PARAM( \
61 DtNatoIffEncoder, attrName, netType, inspector, param)
68 #define DtDEFINE_SIMPLE_NATO_IFF_ATTR_CHECKER_WITH_PARAM( \
69 attrName, inspector, param) \
70 DtDEFINE_SIMPLE_IFF_ATTR_CHECKER_WITH_PARAM( \
71 DtNatoIffEncoder, attrName, inspector, param)
83 #define DtDECLARE_NATO_IFF_MODE4_ATTR_CHECKER(attrName) \
84 DtDECLARE_ATTR_CHECKER(DtIffStateRepository, attrName)
88 #define DtDECLARE_NATO_IFF_MODE4_ATTR_ENCODER(attrName) \
89 DtDECLARE_ATTR_ENCODER(DtIffStateRepository, attrName)
96 #define DtDEFINE_SIMPLE_MODE4_ATTR_ENCODER(\
97 encClass, stateRepClass, attrName, netType, inspector) \
98 void encClass::encode##attrName(const stateRepClass& rep, \
99 RTI::AttributeHandleValuePairSet* attrs, \
100 RTI::AttributeHandle attrHandle) \
104 netVal = rep.mode4()->inspector(); \
105 attrs->add(attrHandle, (char*) &netVal, sizeof(netType)); \
114 #define DtDEFINE_SIMPLE_MODE4_ATTR_CHECKER( \
115 encClass, stateRepClass, attrName, inspector) \
116 bool encClass::need##attrName(const stateRepClass& stateRep, \
117 const stateRepClass& asSeenByRemote) \
119 return (bool) (stateRep.mode4() && asSeenByRemote.mode4() && !(stateRep.mode4()->inspector() == \
120 asSeenByRemote.mode4()->inspector())); \
127 #define DtDEFINE_SIMPLE_NATO_IFF_MODE4_ATTR_ENCODER( \
128 attrName, netType, inspector) \
129 DtDEFINE_SIMPLE_MODE4_ATTR_ENCODER(DtNatoIffEncoder, \
130 DtIffStateRepository, attrName, netType, inspector)
137 #define DtDEFINE_SIMPLE_NATO_IFF_MODE4_ATTR_CHECKER( \
138 attrName, inspector) \
139 DtDEFINE_SIMPLE_MODE4_ATTR_CHECKER(DtNatoIffEncoder, \
140 DtIffStateRepository, attrName, inspector)
147 #define DtDEFINE_SIMPLE_NATO_IFF_MODE4_ATTR_ENCODER_WITH_PARAM( \
148 attrName, netType, inspector, param) \
149 DtDEFINE_SIMPLE_IFF_ATTR_ENCODER_WITH_PARAM( \
150 DtNatoIffEncoder, attrName, netType, inspector, param)
157 #define DtDEFINE_SIMPLE_NATO_IFF_MODE4_ATTR_CHECKER_WITH_PARAM( \
158 attrName, inspector, param) \
159 DtDEFINE_SIMPLE_IFF_ATTR_CHECKER_WITH_PARAM( \
160 DtNatoIffEncoder, DtMode4StateRepository, attrName, inspector, param)
175 #define DtDECLARE_NATO_IFF_TCAS_ATTR_CHECKER(attrName) \
176 DtDECLARE_ATTR_CHECKER(DtIffStateRepository, attrName)
180 #define DtDECLARE_NATO_IFF_TCAS_ATTR_ENCODER(attrName) \
181 DtDECLARE_ATTR_ENCODER(DtIffStateRepository, attrName)
188 #define DtDEFINE_SIMPLE_TCAS_ATTR_ENCODER( \
189 encClass, stateRepClass, attrName, netType, inspector) \
190 void encClass::encode##attrName(const stateRepClass& rep, \
191 RTI::AttributeHandleValuePairSet* attrs, \
192 RTI::AttributeHandle attrHandle) \
194 if (rep.tcasData()) { \
196 netVal = rep.tcasData()->inspector(); \
197 attrs->add(attrHandle, (char*) &netVal, sizeof(netType)); \
205 #define DtDEFINE_SIMPLE_NATO_IFF_TCAS_ATTR_ENCODER( \
206 attrName, netType, inspector) \
207 DtDEFINE_SIMPLE_TCAS_ATTR_ENCODER(DtNatoIffEncoder, \
208 DtIffStateRepository, attrName, netType, inspector)
215 #define DtDEFINE_SIMPLE_TCAS_ATTR_CHECKER( \
216 encClass, stateRepClass, attrName, inspector) \
217 bool encClass::need##attrName(const stateRepClass& stateRep, \
218 const stateRepClass& asSeenByRemote) \
220 return (bool) (stateRep.tcasData() && asSeenByRemote.tcasData() && !(stateRep.tcasData()->inspector() == \
221 asSeenByRemote.tcasData()->inspector())); \
229 #define DtDEFINE_SIMPLE_NATO_IFF_TCAS_ATTR_CHECKER( \
230 attrName, inspector) \
231 DtDEFINE_SIMPLE_TCAS_ATTR_CHECKER(DtNatoIffEncoder, \
232 DtIffStateRepository, attrName, inspector)
239 #define DtDEFINE_SIMPLE_NATO_IFF_TCAS_ATTR_ENCODER_WITH_PARAM( \
240 attrName, netType, inspector, param) \
241 DtDEFINE_SIMPLE_IFF_ATTR_ENCODER_WITH_PARAM( \
242 DtNatoIffEncoder, attrName, netType, inspector, param)
249 #define DtDEFINE_SIMPLE_NATO_IFF_TCAS_ATTR_CHECKER_WITH_PARAM( \
250 attrName, inspector, param) \
251 DtDEFINE_SIMPLE_IFF_ATTR_CHECKER_WITH_PARAM( \
252 DtNatoIffEncoder, DtTCASDataStateRepository, attrName, inspector, param)
256 class DT_DLL_VL DtNatoIffEncoder :
public DtIffEncoder
263 DtObjClassDesc* classDesc);
266 virtual ~DtNatoIffEncoder();
269 DtNatoIffEncoder(
const DtNatoIffEncoder& orig);
272 DtNatoIffEncoder& operator=(
const DtNatoIffEncoder& orig);
276 static DtHlaStateEncoder* create(
278 DtObjClassDesc* classDesc);
282 DtDECLARE_NATO_IFF_MODE4_ATTR_CHECKER(AlternateMode4);
284 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode1Enabled);
285 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode1IsDamaged);
286 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode1IsMalfunctioning);
287 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode1IsOn);
289 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode2Enabled);
290 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode2IsDamaged);
291 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode2IsMalfunctioning);
292 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode2IsOn);
294 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode3Enabled);
295 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode3IsDamaged);
296 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode3IsMalfunctioning);
297 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode3IsOn);
300 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode3AEnabled);
301 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode3AIsDamaged);
302 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode3AIsMalfunctioning);
303 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode3AIsOn);
305 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode4Enabled);
306 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode4IsDamaged);
307 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode4IsMalfunctioning);
308 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode4IsOn);
309 DtDECLARE_NATO_IFF_MODE4_ATTR_CHECKER(Mode4PseudoCrypto);
310 DtDECLARE_NATO_IFF_MODE4_ATTR_CHECKER(Mode4PseudoCryptoAvailable);
313 DtDECLARE_NATO_IFF_ATTR_CHECKER(ModeCEnabled);
314 DtDECLARE_NATO_IFF_ATTR_CHECKER(ModeCIsDamaged);
315 DtDECLARE_NATO_IFF_ATTR_CHECKER(ModeCIsMalfunctioning);
316 DtDECLARE_NATO_IFF_ATTR_CHECKER(ModeCIsOn);
323 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode5CEnabled);
324 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode5CIsDamaged);
325 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode5CIsMalfunctioning);
326 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode5CIsOn);
328 DtDECLARE_NATO_IFF_ATTR_CHECKER(ModeSEnabled);
329 DtDECLARE_NATO_IFF_ATTR_CHECKER(ModeSIsDamaged);
330 DtDECLARE_NATO_IFF_ATTR_CHECKER(ModeSIsMalfunctioning);
331 DtDECLARE_NATO_IFF_ATTR_CHECKER(ModeSIsOn);
333 DtDECLARE_NATO_IFF_TCAS_ATTR_CHECKER(ModeSIsTcasI);
335 DtDECLARE_NATO_IFF_MODE4_ATTR_ENCODER(AlternateMode4);
337 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode1Enabled);
338 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode1IsDamaged);
339 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode1IsMalfunctioning);
340 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode1IsOn);
342 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode2Enabled);
343 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode2IsDamaged);
344 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode2IsMalfunctioning);
345 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode2IsOn);
347 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode3Enabled);
348 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode3IsDamaged);
349 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode3IsMalfunctioning);
350 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode3IsOn);
352 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode3AEnabled);
353 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode3AIsDamaged);
354 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode3AIsMalfunctioning);
355 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode3AIsOn);
357 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode4Enabled);
358 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode4IsDamaged);
359 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode4IsMalfunctioning);
360 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode4IsOn);
361 DtDECLARE_NATO_IFF_MODE4_ATTR_ENCODER(Mode4PseudoCrypto);
362 DtDECLARE_NATO_IFF_MODE4_ATTR_ENCODER(Mode4PseudoCryptoAvailable);
364 DtDECLARE_NATO_IFF_ATTR_ENCODER(ModeCEnabled);
365 DtDECLARE_NATO_IFF_ATTR_ENCODER(ModeCIsDamaged);
366 DtDECLARE_NATO_IFF_ATTR_ENCODER(ModeCIsMalfunctioning);
367 DtDECLARE_NATO_IFF_ATTR_ENCODER(ModeCIsOn);
374 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode5CEnabled);
375 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode5CIsDamaged);
376 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode5CIsMalfunctioning);
377 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode5CIsOn);
379 DtDECLARE_NATO_IFF_ATTR_ENCODER(ModeSEnabled);
380 DtDECLARE_NATO_IFF_ATTR_ENCODER(ModeSIsDamaged);
381 DtDECLARE_NATO_IFF_ATTR_ENCODER(ModeSIsMalfunctioning);
382 DtDECLARE_NATO_IFF_ATTR_ENCODER(ModeSIsOn);
384 DtDECLARE_NATO_IFF_TCAS_ATTR_ENCODER(ModeSIsTcasI);
388 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode5Enabled);
389 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode5IsDamaged);
390 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode5IsMalfunctioning);
391 DtDECLARE_NATO_IFF_ATTR_CHECKER(Mode5IsOn);
393 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode5Enabled);
394 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode5IsDamaged);
395 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode5IsMalfunctioning);
396 DtDECLARE_NATO_IFF_ATTR_ENCODER(Mode5IsOn);
Instances of DtTCASDataStateRepository are used to store state data for IFFData.TCASData objects...
Definition: iffTCASDataStateRepository.h:29
Instances of DtExerciseConn are used to provide an application's interface or connection to the netwo...
Definition: exerciseConnDIS.h:62
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Defines a protocol independent repository of attributes for IFF objects.
Definition: iffStateRepository.h:39
Instances of DtMode4StateRepository are used to store state data for IFFData.Mode4 objects...
Definition: iffMode4StateRepository.h:29