![]() |
VR-Link API Documentation for DIS
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00009 00010 #ifndef DtMinefieldResponseNackPdu_H_ 00011 #define DtMinefieldResponseNackPdu_H_ 00012 00013 #if DtDIS 00014 00015 #include <vlutil/vlMachineTypes.h> 00016 #include "hostStructs.h" 00017 #include "dInteraction.h" 00018 #include "exerciseConn.h" 00019 00020 #include "packets/mineRsNackP.h" 00021 00022 00023 class DT_DLL_VL DtMinefieldResponseNackPdu; 00024 00026 typedef void (*DtMinefieldResponseNackPduCb) 00027 (DtMinefieldResponseNackPdu* pdu, void* usr); 00028 00032 class DT_DLL_VL DtMinefieldResponseNackPdu : public DtInteraction 00033 { 00034 00035 public: 00036 00038 DtMinefieldResponseNackPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00039 DtMinefieldResponseNackPdu(const DtNetMinefieldResponseNackPdu* initial, 00040 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00041 DtMinefieldResponseNackPdu(const DtMinefieldResponseNackPdu& orig); 00042 00044 virtual ~DtMinefieldResponseNackPdu(); 00045 00047 DtMinefieldResponseNackPdu& operator=( 00048 const DtMinefieldResponseNackPdu& orig); 00049 00051 virtual void setMinefieldID(const DtEntityIdentifier& id); 00052 virtual const DtEntityIdentifier& minefieldID() const; 00053 00055 virtual void setRequestingEntityID(const DtEntityIdentifier& id); 00056 virtual const DtEntityIdentifier& requestingEntityID() const; 00057 00059 virtual void setRequestID(DtU8 id); 00060 virtual DtU8 requestID() const; 00061 00063 virtual bool setNumMissingPDUs(DtU8 num); 00064 virtual DtU8 numMissingPDUs() const; 00065 00068 virtual bool setPDU_SequenceNumber(int index, DtU8 num); 00069 virtual bool getPDU_SequenceNumber(int index, DtU8& num) const; 00070 00072 virtual void printData() const; 00073 00075 virtual void printDataToStream(std::ostream& stream) const; 00076 00077 public: 00078 00081 static DtPdu* create(const DtNetPacket* initial, 00082 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00083 00086 static void addCallback(DtExerciseConn* conn, 00087 DtMinefieldResponseNackPduCb cb, void* usr); 00088 static void removeCallback(DtExerciseConn* conn, 00089 DtMinefieldResponseNackPduCb cb, void* usr); 00090 00091 protected: 00092 00094 virtual DtPduKind internalGetPduKind() const; 00095 00097 virtual DtNetMinefieldResponseNackPdu* netPduStruct() const; 00098 00100 virtual char* var() const; 00101 00104 DtMinefieldResponseNackPdu* self() const; 00105 00106 protected: 00107 00109 static const int theStaticSize; 00110 00111 protected: 00112 00114 DtEntityIdentifier myEntityID; 00115 00116 }; 00117 00118 #endif 00119 #endif 00120