![]() |
VR-Link API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 #ifndef DtActionRequestPdu_H_ 00006 #define DtActionRequestPdu_H_ 00007 00008 00009 00010 00011 #if DtDIS 00012 00013 #include "hostStructs.h" 00014 #include "pduWithData.h" 00015 #include <vlpi/datumIdType.h> 00016 00017 class DT_DLL_VL DtExerciseConn; 00018 00019 /***********************************************/ 00020 /************* ACTION REQUEST PDU *************/ 00021 /***********************************************/ 00022 00023 00024 class DT_DLL_VL DtActionRequestPdu; 00025 typedef DtActionRequestPdu DtActionRequestInteraction; 00026 00028 typedef void (*DtActionRequestInteractionCb) 00029 (DtActionRequestInteraction *pdu, void *usr); 00030 00034 class DT_DLL_VL DtActionRequestPdu : public DtPduWithData 00035 { 00036 public: 00037 enum { PduStaticSize=40 }; 00038 public: 00040 DtActionRequestPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00041 DtActionRequestPdu(const DtNetActionRequestPdu *initial, 00042 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00043 00046 static DtPdu *create(const DtNetPacket *initial, 00047 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00048 00051 static void addCallback(DtExerciseConn *conn, 00052 DtActionRequestInteractionCb cb, void *usr); 00053 static void removeCallback(DtExerciseConn *conn, 00054 DtActionRequestInteractionCb cb, void *usr); 00055 00057 unsigned long requestId() const; 00058 void setRequestId(unsigned long id); 00059 00061 unsigned long actionId() const; 00062 void setActionId(unsigned long id); 00063 00065 virtual void printData() const; 00066 00068 virtual void printDataToStream(std::ostream& stream) const; 00069 00070 protected: 00072 DtPduKind internalGetPduKind() const {return DtActionRequestPduKind;} 00073 00075 DtNetDataPduTail *dataSection() const; 00076 }; 00077 00078 /***********************************************/ 00079 /************* ACTION RESPONSE PDU *************/ 00080 /***********************************************/ 00081 00082 00083 class DT_DLL_VL DtActionResponsePdu; 00084 typedef DtActionResponsePdu DtActionResponseInteraction; 00085 00087 typedef void (*DtActionResponseInteractionCb)(DtActionResponsePdu *pdu, void *usr); 00088 00092 class DT_DLL_VL DtActionResponsePdu : public DtPduWithData 00093 { 00094 public: 00095 00096 enum { PduStaticSize=40 }; 00097 00098 public: 00100 DtActionResponsePdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00101 DtActionResponsePdu(const DtNetActionResponsePdu *initial, 00102 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00103 00106 static DtPdu *create(const DtNetPacket *initial, 00107 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00108 00111 static void addCallback(DtExerciseConn *conn, 00112 DtActionResponseInteractionCb cb, void *usr); 00113 static void removeCallback(DtExerciseConn *conn, 00114 DtActionResponseInteractionCb cb, void *usr); 00115 00117 unsigned long requestId() const; 00118 void setRequestId(unsigned long id); 00119 00121 DtRequestStatus requestStatus() const; 00122 void setRequestStatus(DtRequestStatus rStatus); 00123 00125 virtual void printData() const; 00126 00128 virtual void printDataToStream(std::ostream& stream) const; 00129 00130 protected: 00132 DtPduKind internalGetPduKind() const {return DtActionResponsePduKind;} 00133 00135 DtNetDataPduTail *dataSection() const; 00136 }; 00137 00138 #endif 00139 #endif 00140 00141 00142 00143