11 #ifndef DtIffDecoder_H_
12 #define DtIffDecoder_H_
31 #define DtDECLARE_IFF_ATTR_DECODER(attrName) \
32 DtDECLARE_ATTR_DECODER(DtIffStateRepository, attrName)
41 #define DtDEFINE_SIMPLE_IFF_ATTR_DECODER( \
42 attrName, netType, inspector) \
43 DtDEFINE_SIMPLE_IFF_ATTR_DECODER_WITH_CAST( \
44 attrName, netType, inspector, (netType))
51 #define DtDEFINE_SIMPLE_IFF_ATTR_DECODER_WITH_CAST( \
52 attrName, netType, mutator, castExpr) \
53 DtDEFINE_SIMPLE_ATTR_DECODER_WITH_CAST( \
54 DtIffDecoder, DtIffStateRepository, \
55 attrName, netType, mutator, castExpr)
57 #define DtDEFINE_SIMPLE_IFF_ATTR_DECODER_WITH_CAST_AND_PARAM( \
58 decClass, attrName, netType, mutator, param, castExpr) \
59 void decClass::decode##attrName( \
60 DtIffStateRepository* stateRep, \
61 const RTI::AttributeHandleValuePairSet& attrs, \
64 RTI::ULong length = attrs.getValueLength(pairSetIndex); \
66 if (length > sizeof(netType)) \
68 DtWarn("Size of value decoded from RTI update for attribute %s (%d)\n", \
70 DtWarn(" is larger than size of %s (%d)\n", #netType, sizeof(netType)); \
73 attrs.getValue(pairSetIndex, (char*) &netVal, length); \
74 stateRep->mutator(param, castExpr netVal); \
79 class DT_DLL_VL DtIffDecoder :
public DtBaseEmbeddedSystemDecoder
86 DtObjClassDesc* classDesc);
89 virtual ~DtIffDecoder();
92 DtIffDecoder(
const DtIffDecoder& orig);
95 DtIffDecoder& operator=(
const DtIffDecoder& orig);
99 static DtHlaStateDecoder* create(
101 DtObjClassDesc* classDesc);
105 DtDECLARE_IFF_ATTR_DECODER(EventIdentifier);
106 DtDECLARE_IFF_ATTR_DECODER(SystemMode);
107 DtDECLARE_IFF_ATTR_DECODER(SystemName);
108 DtDECLARE_IFF_ATTR_DECODER(SystemType);
109 DtDECLARE_IFF_ATTR_DECODER(SystemIsOn);
110 DtDECLARE_IFF_ATTR_DECODER(SystemIsOperational);
113 DtDECLARE_IFF_ATTR_DECODER(BeamAzimuthCenter);
114 DtDECLARE_IFF_ATTR_DECODER(BeamAzimuthSweep);
115 DtDECLARE_IFF_ATTR_DECODER(BeamElevationCenter);
116 DtDECLARE_IFF_ATTR_DECODER(BeamElevationSweep);
117 DtDECLARE_IFF_ATTR_DECODER(BeamSweepSync);
118 DtDECLARE_IFF_ATTR_DECODER(Layer2DataAvailable);
119 DtDECLARE_IFF_ATTR_DECODER(FundamentalParameterData);
120 DtDECLARE_IFF_ATTR_DECODER(SecondaryOperationalDataParameter1);
121 DtDECLARE_IFF_ATTR_DECODER(SecondaryOperationalDataParameter2);