3 #ifndef DtNatoIffDecoder_H_
4 #define DtNatoIffDecoder_H_
22 #define DtDECLARE_NATO_IFF_ATTR_DECODER(attrName) \
23 DtDECLARE_ATTR_DECODER(DtIffStateRepository, attrName)
32 #define DtDEFINE_SIMPLE_NATO_IFF_ATTR_DECODER( \
33 attrName, netType, inspector) \
34 DtDEFINE_SIMPLE_NATO_IFF_ATTR_DECODER_WITH_CAST( \
35 attrName, netType, inspector, (netType))
42 #define DtDEFINE_SIMPLE_NATO_IFF_ATTR_DECODER_WITH_CAST( \
43 attrName, netType, mutator, castExpr) \
44 DtDEFINE_SIMPLE_ATTR_DECODER_WITH_CAST( \
45 DtNatoIffDecoder, DtIffStateRepository, \
46 attrName, netType, mutator, castExpr)
48 #define DtDEFINE_SIMPLE_NATO_IFF_ATTR_DECODER_WITH_CAST_AND_PARAM( \
49 attrName, netType, mutator, param, castExpr) \
50 DtDEFINE_SIMPLE_IFF_ATTR_DECODER_WITH_CAST_AND_PARAM( \
51 DtNatoIffDecoder, attrName, netType, mutator, param, castExpr)
59 #define DtDEFINE_SIMPLE_MODE4_ATTR_DECODER_WITH_CAST( \
60 decClass, stateRepClass, attrName, netType, mutator, castExpr) \
61 void decClass::decode##attrName( \
62 stateRepClass* stateRep, \
63 const RTI::AttributeHandleValuePairSet& attrs, \
66 if (stateRep->mode4()) { \
67 RTI::ULong length = 0; \
68 netType* netValPtr = (netType*)attributeData(attrs, index, length, sizeof(netType), #attrName); \
71 stateRep->mode4()->mutator(castExpr *netValPtr); \
79 #define DtDECLARE_NATO_IFF_MODE4_ATTR_DECODER(attrName) \
80 DtDECLARE_ATTR_DECODER(DtIffStateRepository, attrName)
89 #define DtDEFINE_SIMPLE_NATO_IFF_MODE4_ATTR_DECODER( \
90 attrName, netType, inspector) \
91 DtDEFINE_SIMPLE_NATO_IFF_MODE4_ATTR_DECODER_WITH_CAST( \
92 attrName, netType, inspector, (netType))
99 #define DtDEFINE_SIMPLE_NATO_IFF_MODE4_ATTR_DECODER_WITH_CAST( \
100 attrName, netType, mutator, castExpr) \
101 DtDEFINE_SIMPLE_MODE4_ATTR_DECODER_WITH_CAST( \
102 DtNatoIffDecoder, DtIffStateRepository, \
103 attrName, netType, mutator, castExpr)
105 #define DtDEFINE_SIMPLE_NATO_IFF_MODE4_ATTR_DECODER_WITH_CAST_AND_PARAM( \
106 attrName, netType, mutator, param, castExpr) \
107 DtDEFINE_SIMPLE_IFF_ATTR_DECODER_WITH_CAST_AND_PARAM( \
108 DtNatoIffDecoder, attrName, netType, mutator, param, castExpr)
120 #define DtDECLARE_NATO_IFF_TCAS_ATTR_DECODER(attrName) \
121 DtDECLARE_ATTR_DECODER(DtIffStateRepository, attrName)
130 #define DtDEFINE_SIMPLE_NATO_IFF_TCAS_ATTR_DECODER( \
131 attrName, netType, inspector) \
132 DtDEFINE_SIMPLE_NATO_IFF_TCAS_ATTR_DECODER_WITH_CAST( \
133 attrName, netType, inspector, (netType))
142 #define DtDEFINE_SIMPLE_TCAS_ATTR_DECODER_WITH_CAST( \
143 decClass, stateRepClass, attrName, netType, mutator, castExpr) \
144 void decClass::decode##attrName( \
145 stateRepClass* stateRep, \
146 const RTI::AttributeHandleValuePairSet& attrs, \
149 if (stateRep->tcasData()) { \
150 RTI::ULong length = 0; \
151 netType* netValPtr = (netType*)attributeData(attrs, index, length, sizeof(netType), #attrName); \
154 stateRep->tcasData()->mutator(castExpr *netValPtr); \
164 #define DtDEFINE_SIMPLE_NATO_IFF_TCAS_ATTR_DECODER_WITH_CAST( \
165 attrName, netType, mutator, castExpr) \
166 DtDEFINE_SIMPLE_TCAS_ATTR_DECODER_WITH_CAST( \
167 DtNatoIffDecoder, DtIffStateRepository, \
168 attrName, netType, mutator, castExpr)
170 #define DtDEFINE_SIMPLE_NATO_IFF_TCAS_ATTR_DECODER_WITH_CAST_AND_PARAM( \
171 attrName, netType, mutator, param, castExpr) \
172 DtDEFINE_SIMPLE_IFF_ATTR_DECODER_WITH_CAST_AND_PARAM( \
173 DtNatoIffDecoder, attrName, netType, mutator, param, castExpr)
177 class DT_DLL_VL DtNatoIffDecoder :
public DtIffDecoder
184 DtObjClassDesc* classDesc);
187 virtual ~DtNatoIffDecoder();
190 DtNatoIffDecoder(
const DtNatoIffDecoder& orig);
193 DtNatoIffDecoder& operator=(
const DtNatoIffDecoder& orig);
197 static DtHlaStateDecoder* create(
199 DtObjClassDesc* classDesc);
203 DtDECLARE_NATO_IFF_MODE4_ATTR_DECODER(AlternateMode4);
205 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode1Enabled);
206 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode1IsDamaged);
207 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode1IsMalfunctioning);
208 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode1IsOn);
210 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode2Enabled);
211 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode2IsDamaged);
212 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode2IsMalfunctioning);
213 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode2IsOn);
215 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode3Enabled);
216 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode3IsDamaged);
217 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode3IsMalfunctioning);
218 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode3IsOn);
221 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode3AEnabled);
222 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode3AIsDamaged);
223 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode3AIsMalfunctioning);
224 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode3AIsOn);
226 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode4Enabled);
227 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode4IsDamaged);
228 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode4IsMalfunctioning);
229 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode4IsOn);
230 DtDECLARE_NATO_IFF_MODE4_ATTR_DECODER(Mode4PseudoCrypto);
231 DtDECLARE_NATO_IFF_MODE4_ATTR_DECODER(Mode4PseudoCryptoAvailable);
234 DtDECLARE_NATO_IFF_ATTR_DECODER(ModeCEnabled);
235 DtDECLARE_NATO_IFF_ATTR_DECODER(ModeCIsDamaged);
236 DtDECLARE_NATO_IFF_ATTR_DECODER(ModeCIsMalfunctioning);
237 DtDECLARE_NATO_IFF_ATTR_DECODER(ModeCIsOn);
244 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode5CEnabled);
245 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode5CIsDamaged);
246 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode5CIsMalfunctioning);
247 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode5CIsOn);
249 DtDECLARE_NATO_IFF_ATTR_DECODER(ModeSEnabled);
250 DtDECLARE_NATO_IFF_ATTR_DECODER(ModeSIsDamaged);
251 DtDECLARE_NATO_IFF_ATTR_DECODER(ModeSIsMalfunctioning);
252 DtDECLARE_NATO_IFF_ATTR_DECODER(ModeSIsOn);
254 DtDECLARE_NATO_IFF_TCAS_ATTR_DECODER(ModeSIsTcasI);
257 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode5Enabled);
258 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode5IsDamaged);
259 DtDECLARE_NATO_IFF_ATTR_DECODER(Mode5IsMalfunctioning);
260 DtDECLARE_NATO_IFF_ATTR_DECODER(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