VR-Link API Documentation for HLA 1516
hResOffInter.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *********************************************************************/
00005 
00006 
00007 #ifndef hResOffInter_H_
00008 #define hResOffInter_H_
00009 
00010 #if DtHLA
00011 
00012 #include "hIntWEncDec.h"
00013 #include "hostStructs.h"
00014 #include <matrix/vlMath.h>
00015 #include "packets/logisticsP.h"
00016 
00017 
00018 
00022 
00023 #define DtSUPPLY_VALID 1
00024 #define DtSUPPLY_BAD_INDEX 0
00025 
00026 class DT_DLL_VL DtResupplyOfferInteraction;
00027 class DT_DLL_VL DtExerciseConn;
00028 
00029 
00031 typedef void (*DtResupplyOfferInteractionCb)
00032    (DtResupplyOfferInteraction* inter, void* usr);
00033 
00034 
00039 
00040 
00041 class DT_DLL_VL DtResupplyOfferInteraction : public DtInteractionWithEncDec
00042 {
00043 public:
00044 
00046    DtResupplyOfferInteraction();
00047 
00049    virtual ~DtResupplyOfferInteraction();
00050 
00052    DtResupplyOfferInteraction(const DtResupplyOfferInteraction& orig);
00053 
00055    DtResupplyOfferInteraction& operator=(
00056       const DtResupplyOfferInteraction& orig);
00057 
00059    virtual void printData() const;
00060 
00062    virtual void printDataToStream(std::ostream& stream) const;
00063 
00065    virtual void setReceivingId(const DtGlobalObjectDesignator &receiver);
00066    virtual const DtGlobalObjectDesignator &receivingId() const;
00067 
00069    virtual void setSupplyingId(const DtGlobalObjectDesignator &supplier);
00070    virtual const DtGlobalObjectDesignator &supplyingId() const;
00071 
00073    virtual void setSupplies(const void* data, int numBytes);
00074    virtual const void* supplies() const;
00075 
00077    virtual void setNumSupplyTypes(int numTypes);
00078    virtual int numSupplyTypes() const; 
00079 
00080    virtual void setNthSupply(int supplyIndex, const DtEntityType &supply,
00081                              float quantity, int *retCode = NULL);
00082 
00083    virtual const DtEntityType &nthSupply(int supplyIndex, 
00084                                          float *quantity = NULL, 
00085                                          int *retCode = NULL) const;
00086 
00087    virtual float supplyQuantity(const DtEntityType &supply) const;
00088 
00089    virtual void changeSuppliesSize(int newSize);
00090 
00091    virtual int indexInBounds(int ind) const;
00092 
00093 
00095    virtual const char* name() const;
00096 
00097 public:
00098 
00101    static DtInteraction* create();
00102 
00105    static void addCallback(DtExerciseConn* conn,
00106       DtResupplyOfferInteractionCb cb, void* usr,
00107       DtDDMRegionSP region = DtDDMRegionSP());
00108    static void removeCallback(DtExerciseConn* conn,
00109       DtResupplyOfferInteractionCb cb, void* usr,
00110       DtDDMRegionSP region = DtDDMRegionSP());
00111 
00112 protected:
00113 
00114    DtGlobalObjectDesignator myReceivingObject;
00115    DtGlobalObjectDesignator mySupplyingObject;
00116    int myNumSupplyTypes;
00117    DtNetSupplyQuantity* mySupplies;
00118    DtEntityType myNthSupply;
00119 };
00120 
00121 inline const DtGlobalObjectDesignator& DtResupplyOfferInteraction::
00122    receivingId() const
00123 {
00124    return myReceivingObject;
00125 }
00126 
00127 inline const DtGlobalObjectDesignator& DtResupplyOfferInteraction::
00128    supplyingId() const
00129 {
00130    return mySupplyingObject;
00131 }
00132 
00133 inline void DtResupplyOfferInteraction::setReceivingId(
00134    const DtGlobalObjectDesignator &receiver)
00135 {
00136    myReceivingObject = receiver;
00137 }
00138 
00139 inline void DtResupplyOfferInteraction::setSupplyingId(
00140    const DtGlobalObjectDesignator &supplier)
00141 {
00142    mySupplyingObject = supplier;
00143 }
00144 
00145 inline const char* DtResupplyOfferInteraction::name() const
00146 {
00147    return "DtResupplyOfferInteraction";
00148 }
00149 
00150 #endif
00151 #endif
00152 

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)