![]() |
VR-Link API Documentation for DIS
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00009 00010 #ifndef DtResupplyCancelPdu_H_ 00011 #define DtResupplyCancelPdu_H_ 00012 00013 #if DtDIS 00014 00015 #include "hostStructs.h" 00016 #include "pdu.h" 00017 #include <matrix/vlMath.h> 00018 #include "packets/logisticsP.h" 00019 #include "interaction.h" 00020 00021 00022 class DT_DLL_VL DtExerciseConn; 00023 00024 class DT_DLL_VL DtResupplyCancelPdu; 00025 typedef DtResupplyCancelPdu DtResupplyCancelInteraction; 00026 typedef void (*DtResupplyCancelPduCb)(DtResupplyCancelPdu *pdu, void *usr); 00027 00028 class DT_DLL_VL DtResupplyCancelPdu : public DtInteraction 00029 { 00030 public: 00031 00032 enum { PduStaticSize=24 }; 00033 00034 public: 00035 00036 DtResupplyCancelPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00037 DtResupplyCancelPdu(const DtNetResupplyCancelPdu *initial, 00038 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00039 DtResupplyCancelPdu(const DtEntityIdentifier &receiveId, 00040 const DtEntityIdentifier &supplyId, 00041 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00042 00043 virtual ~DtResupplyCancelPdu() {}; 00044 00045 const DtEntityIdentifier &receivingId() const; 00046 void setReceivingId(const DtEntityIdentifier &id); 00047 00048 const DtEntityIdentifier &supplyingId() const; 00049 void setSupplyingId(const DtEntityIdentifier &id); 00050 00051 virtual void printData() const; 00052 virtual void printDataToStream(std::ostream& stream) const; 00053 00054 public: 00055 00056 static DtPdu *create(const DtNetPacket *initial, 00057 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00058 00059 static void addCallback(DtExerciseConn *conn, 00060 DtResupplyCancelPduCb cb, void *usr); 00061 static void removeCallback(DtExerciseConn *conn, 00062 DtResupplyCancelPduCb cb, void *usr); 00063 00064 protected: 00065 00066 DtPduKind internalGetPduKind() const {return DtResupplyCancelPduKind;} 00067 DtEntityIdentifier theId; 00068 00069 }; 00070 00071 /*******************************************************/ 00072 /******************* RESUPPLY OFFER PDU ****************/ 00073 /*******************************************************/ 00074 00075 #define DtSUPPLY_VALID 1 00076 #define DtSUPPLY_BAD_INDEX 0 00077 00078 class DT_DLL_VL DtResupplyOfferPdu; 00079 typedef DtResupplyOfferPdu DtResupplyOfferInteraction; 00080 typedef void (*DtResupplyOfferPduCb)(DtResupplyOfferPdu *pdu, void *usr); 00081 00082 class DT_DLL_VL DtResupplyOfferPdu : public DtInteraction 00083 { 00084 public: 00085 00086 enum { PduStaticSize=28 }; 00087 00088 public: 00089 00090 00091 DtResupplyOfferPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00092 DtResupplyOfferPdu(const DtNetResupplyOfferPdu *initial, 00093 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00094 00095 DtResupplyOfferPdu(const DtEntityIdentifier &receiver, 00096 const DtEntityIdentifier &supplier, 00097 const DtEntityType &supply, 00098 float quantity, 00099 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00100 00101 const DtEntityIdentifier &supplyingId() const; 00102 void setSupplyingId(const DtEntityIdentifier &servicer); 00103 00104 int numSupplyTypes() const; 00105 void setNumSupplyTypes(int numTypes); 00106 00107 float supplyQuantity(const DtEntityType &supply) const; 00108 00109 void setReceivingId(const DtEntityIdentifier &requester); 00110 const DtEntityIdentifier &receivingId() const; 00111 00112 const DtEntityType &nthSupply(int supplyIndex, 00113 float *quantity = 0, 00114 int *retCode = 0) const; 00115 void setNthSupply(int supplyIndex, 00116 const DtEntityType &supply, 00117 float quantity, 00118 int *retCode = 0); 00119 00120 virtual void printData() const; 00121 virtual void printDataToStream(std::ostream& stream) const; 00122 00123 public: 00124 00125 static DtPdu *create(const DtNetPacket *initial, 00126 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00127 static void addCallback(DtExerciseConn *conn, 00128 DtResupplyOfferPduCb cb, void *usr); 00129 static void removeCallback(DtExerciseConn *conn, 00130 DtResupplyOfferPduCb cb, void *usr); 00131 00132 protected: 00133 00134 DtPduKind internalGetPduKind() const {return DtResupplyOfferPduKind;} 00135 int indexInBounds(int ind) const; 00136 DtEntityIdentifier theId; 00137 DtEntityType supType; 00138 }; 00139 00140 /*******************************************************/ 00141 /******************* RESUPPLY RECEIVED PDU *************/ 00142 /*******************************************************/ 00143 00144 class DT_DLL_VL DtResupplyReceivedPdu; 00145 typedef DtResupplyReceivedPdu DtResupplyRecInteraction; 00146 typedef void (*DtResupplyReceivedPduCb)(DtResupplyReceivedPdu *pdu, void *usr); 00147 00148 class DT_DLL_VL DtResupplyReceivedPdu : public DtInteraction 00149 { 00150 public: 00151 00152 enum { PduStaticSize=28 }; 00153 00154 00155 public: 00156 00157 00158 DtResupplyReceivedPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00159 DtResupplyReceivedPdu(const DtNetResupplyReceivedPdu *initial, 00160 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00161 00162 DtResupplyReceivedPdu(const DtEntityIdentifier &receiver, 00163 const DtEntityIdentifier &supplier, 00164 const DtEntityType &supply, 00165 float quantity, 00166 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00167 00168 const DtEntityIdentifier &receivingId() const; 00169 void setReceivingId(const DtEntityIdentifier &requester); 00170 00171 const DtEntityIdentifier &supplyingId() const; 00172 void setSupplyingId(const DtEntityIdentifier &servicer); 00173 00174 int numSupplyTypes() const; 00175 void setNumSupplyTypes(int numTypes); 00176 00177 float supplyQuantity(const DtEntityType &supply) const; 00178 00179 const DtEntityType &nthSupply(int supplyIndex, 00180 float *quantity = 0, 00181 int *retCode = 0) const; 00182 00183 void setNthSupply(int supplyIndex, 00184 const DtEntityType &supply, 00185 float quantity, 00186 int *retCode = 0); 00187 00188 virtual void printData() const; 00189 virtual void printDataToStream(std::ostream& stream) const; 00190 00191 public: 00192 00193 static DtPdu *create(const DtNetPacket *initial, 00194 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00195 static void addCallback(DtExerciseConn *conn, 00196 DtResupplyReceivedPduCb cb, void *usr); 00197 static void removeCallback(DtExerciseConn *conn, 00198 DtResupplyReceivedPduCb cb, void *usr); 00199 00200 00201 protected: 00202 00203 DtPduKind internalGetPduKind() const {return DtResupplyReceivedPduKind;} 00204 int indexInBounds(int ind) const; 00205 DtEntityIdentifier theId; 00206 DtEntityType supType; 00207 }; 00208 00209 #endif 00210 #endif 00211