![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00009 00010 #ifndef DtRecordPdu_H_ 00011 #define DtRecordPdu_H_ 00012 00013 #if DtDIS 00014 00015 #include <vlutil/vlMachineTypes.h> 00016 #include "hostStructs.h" 00017 #include "recordSetPdu.h" 00018 #include "exerciseConn.h" 00019 00020 #include "packets/recordP.h" 00021 00022 00023 class DT_DLL_VL DtRecordPdu; 00024 00025 typedef DtRecordPdu DtRecordRInteraction; 00026 00028 typedef void (*DtRecordPduCb)(DtRecordPdu* pdu, void* usr); 00029 00030 00033 class DT_DLL_VL DtRecordPdu : public DtRecordSetPdu 00034 { 00035 00036 public: 00037 00039 DtRecordPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00040 DtRecordPdu(const DtNetRecordPdu* initial, 00041 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00042 DtRecordPdu(const DtRecordPdu& orig); 00043 00045 virtual ~DtRecordPdu(); 00046 00048 DtRecordPdu& operator=(const DtRecordPdu& orig); 00049 00051 virtual void setOriginatingEntityID(const DtEntityIdentifier& entity); 00052 virtual const DtEntityIdentifier& originatingEntityID() const; 00053 00055 virtual void setReceivingEntityID(const DtEntityIdentifier& entity); 00056 virtual const DtEntityIdentifier& receivingEntityID() const; 00057 00059 virtual void setRequestID(DtU32 id); 00060 virtual DtU32 requestID() const; 00061 00063 virtual void setReqRelService(enum DtRequiredReliabilityService service); 00064 virtual DtRequiredReliabilityService reqRelService() const; 00065 00067 virtual void setEventType(DtEventType type); 00068 virtual DtEventType eventType() const; 00069 00071 virtual void setResponseSerialNumber(DtU32 num); 00072 virtual DtU32 responseSerialNumber() const; 00073 00075 virtual void printData() const; 00076 00078 virtual void printDataToStream(std::ostream& stream) const; 00079 00080 public: 00081 00084 static DtPdu* create(const DtNetPacket* initial, 00085 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00086 00089 static void addCallback(DtExerciseConn* conn, 00090 DtRecordPduCb cb, void* usr); 00091 static void removeCallback(DtExerciseConn* conn, 00092 DtRecordPduCb cb, void* usr); 00093 00094 protected: 00095 00097 virtual DtNetRecordSetPdu* netRecordSetPduStruct() const; 00098 00100 virtual DtPduKind internalGetPduKind() const; 00101 00104 virtual DtNetRecordPdu* netPduStruct() const; 00105 00108 DtRecordPdu* self() const; 00109 00110 protected: 00111 00113 static const int theStaticSize; 00114 00115 protected: 00116 00118 DtEntityIdentifier myEntityID; 00119 00120 }; 00121 00122 #endif 00123 #endif 00124