VR-Link API Documentation for DIS
resupplyPdu.h
Go to the documentation of this file.
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 

Document ID: Generated on Mon May 14 08:06:18 EDT 2012 from SVN revision 114750
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)