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)
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: exerciseConnHLA.h:61
#define DtDECLARE_NATO_IFF_MODE4_ATTR_DECODER(attrName)
This one can be used to declare the attribute decoding functions, which are static members of DtIffDe...
Definition: natoIffDecoder.h:79
This file provides a declaration of the class DtIffDecoder.
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Defines a protocol independent repository of attributes for IFF objects.
Definition: iffStateRepository.h:39
static DtHlaStateDecoder * create(DtExerciseConn *exConn, DtObjClassDesc *classDesc)
#define DtDECLARE_NATO_IFF_TCAS_ATTR_DECODER(attrName)
This one can be used to declare the attribute decoding functions, which are static members of DtIffDe...
Definition: natoIffDecoder.h:120
An instance of DtObjClassDesc is a "class descriptor" for an HLA Object class.
Definition: objClassDesc13.h:41
DtIffDecoder & operator=(const DtIffDecoder &orig)
assignment operator
DtHlaStateDecoder is used to provide decoding of a state message into a state repository in an HLA (a...
Definition: hlaStateDecoder.h:34
Instances of DtMode4StateRepository are used to store state data for IFFData.Mode4 objects...
Definition: iffMode4StateRepository.h:29
The DtIffDecoder class:
Definition: iffDecoder.h:63
Mode TCAS Specific Attribute Decoder Macros.
Definition: natoIffDecoder.h:177
#define DtDECLARE_NATO_IFF_ATTR_DECODER(attrName)
We define several macros that can be helpful in defining the class, and the individual decoding funct...
Definition: natoIffDecoder.h:22