![]() |
VR-Link API Documentation for DIS
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 #ifndef DtActionResponseRPdu_H_ 00006 #define DtActionResponseRPdu_H_ 00007 00011 #if DtDIS 00012 00013 #include "hostStructs.h" 00014 #include "pduWithData.h" 00015 #include <vlpi/datumIdType.h> 00016 #include "packets/actRespRP.h" 00017 #include "exerciseConn.h" 00018 00019 class DT_DLL_VL DtActionResponseRPdu; 00020 00021 00023 typedef void (*DtActionResponseRPduCb)(DtActionResponseRPdu* pdu, void* usr); 00024 00028 class DT_DLL_VL DtActionResponseRPdu : public DtPduWithData 00029 { 00030 public: 00032 DtActionResponseRPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00033 DtActionResponseRPdu(const DtNetActionResponseRPdu* initial, 00034 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00035 DtActionResponseRPdu(const DtActionResponseRPdu& orig); 00036 00038 virtual ~DtActionResponseRPdu(); 00039 00041 DtActionResponseRPdu& operator=(const DtActionResponseRPdu& orig); 00042 00044 virtual void setRequestId(unsigned long id); 00045 virtual unsigned long requestId() const; 00046 00048 virtual void setRequestStatus(DtRequestStatus rStatus); 00049 virtual DtRequestStatus requestStatus() const; 00050 00052 virtual void printData() const; 00053 00055 virtual void printDataToStream(std::ostream& stream) const; 00056 00057 public: 00060 static DtPdu* create(const DtNetPacket* initial, 00061 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00062 00065 static void addCallback(DtExerciseConn* conn, 00066 DtActionResponseRPduCb cb, void* usr); 00067 static void removeCallback(DtExerciseConn* conn, 00068 DtActionResponseRPduCb cb, void* usr); 00069 00070 protected: 00072 virtual DtPduKind internalGetPduKind() const; 00073 00075 virtual DtNetDataPduTail* dataSection() const; 00076 00077 protected: 00078 00079 static const int theStaticSize; 00080 00081 }; 00082 00083 inline DtPduKind DtActionResponseRPdu::internalGetPduKind() const 00084 { 00085 return DtActionResponseRPduKind; 00086 } 00087 00088 #endif 00089 #endif 00090