19 #define DtPDU_STATUS_BIT_SHIFT(attr, val) \
20 const unsigned int DtPduStatus##attr##BitShift = val;
32 #define DtPDU_STATUS_UNSET_INDICATOR_ONE_BIT(attr) \
33 val &= ~(0x1 << DtPduStatus##attr##BitShift)
35 #define DtPDU_STATUS_SET_INDICATOR_ONE_BIT(attr, indicator) \
36 DtPDU_STATUS_UNSET_INDICATOR_ONE_BIT(attr); \
37 val |= DtPduStatus##attr##indicator << DtPduStatus##attr##BitShift
39 #define DtPDU_STATUS_GET_BOOL_ONE_BIT(attr) \
40 (((val >> DtPduStatus##attr##BitShift) & 0x1) == 0x1)
42 #define DtPDU_STATUS_GET_ENUM_ONE_BIT(attr) \
43 DtPduStatus##attr((val >> DtPduStatus##attr##BitShift) & 0x1)
45 #define DtPDU_STATUS_SET_INDICATOR_TWO_BIT(attr, indicator) \
46 DtPDU_STATUS_UNSET_INDICATOR_TWO_BIT(attr); \
47 val |= indicator << DtPduStatus##attr##BitShift
49 #define DtPDU_STATUS_UNSET_INDICATOR_TWO_BIT(attr) \
50 val &= ~(0x3 << DtPduStatus##attr##BitShift)
52 #define DtPDU_STATUS_GET_ENUM_TWO_BIT(attr) \
53 DtPduStatus##attr((val >> DtPduStatus##attr##BitShift) & 0x3)
56 #define DtSTATUS_NOT_OK 1
86 virtual void* packet()
const;
90 virtual int status()
const;
93 virtual void setVersion(
int vers);
94 virtual int protocolVersion()
const;
97 virtual void setExerciseId(
int id);
98 virtual int exerciseId()
const;
109 virtual void setTimeStamp(
DtTime time,
114 virtual DtTime timeStamp()
const;
126 virtual void setPduLength(
unsigned int length);
129 virtual unsigned int pduLength()
const;
132 virtual void setPduStatus(
int);
135 virtual int pduStatus()
const;
140 virtual void setTransferredEntityIndicator(
bool difference);
144 virtual bool transferredEntityIndicator()
const;
154 virtual void setCoupledExtensionIndicator(
bool coupled);
158 virtual bool coupledExtensionIndicator()
const;
181 virtual void setIffSimulationMode(
bool interactive);
183 virtual bool iffSimulationMode()
const;
186 virtual void setActiveInterrogationIndicator(
bool active);
188 virtual bool activeInterrogationIndicator()
const;
194 virtual DtTime guessTimeValid(
DtTime referenceTime)
const;
200 virtual void print()
const;
204 virtual void printToStream(std::ostream& stream)
const;
207 virtual void printHeader()
const;
210 virtual void printHeaderToStream(std::ostream& stream)
const;
218 virtual void printData()
const;
219 virtual void printDataToStream(std::ostream& stream)
const;
220 virtual void printDataToString(
DtString& str)
const;
223 virtual void printPduInHexToStream(std::ostream& stream,
unsigned int numberOfColumns)
const;
226 virtual void encode();
229 virtual void decode(DtPduFactory* pduFactory);
233 virtual bool isTransientPdu()
const;
242 virtual void setStatus(
int okStatus);
246 virtual void initPdu(
int size,
DtBufferPtr buffer);
249 virtual void initPdu(
const void* initial,
DtBufferPtr buffer, DtPduFactory* pduFactory);
252 virtual DtPduKind internalGetPduKind()
const = 0;
261 virtual void clearData();
264 virtual void initHeader(
DtPduKind kind,
int size);
268 virtual bool isTEIApplicable()
const;
269 virtual bool isLVCApplicable()
const;
270 virtual bool isCEIApplicable()
const;
271 virtual bool isFTIApplicable()
const;
272 virtual bool isDTIApplicable()
const;
273 virtual bool isRAIApplicable()
const;
274 virtual bool isIAIApplicable()
const;
275 virtual bool isISMApplicable()
const;
276 virtual bool isAIIApplicable()
const;
279 virtual bool shouldAttributePduBeCoupled()
const;
289 #define netPdu packet()