VR-Link API Documentation for DIS
hResRecInter.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 hResRecInter_H_
00008 #define hResRecInter_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 DtResupplyRecInteraction;
00027 class DT_DLL_VL DtExerciseConn;
00028 
00029 
00031 typedef void (*DtResupplyRecInteractionCb)
00032    (DtResupplyRecInteraction* inter, void* usr);
00033 
00034 
00039 
00040 class DT_DLL_VL DtResupplyRecInteraction : public DtInteractionWithEncDec
00041 {
00042 public:
00043 
00045    DtResupplyRecInteraction();
00046 
00048    virtual ~DtResupplyRecInteraction();
00049 
00051    DtResupplyRecInteraction(const DtResupplyRecInteraction& orig);
00052 
00054    DtResupplyRecInteraction& operator=(const DtResupplyRecInteraction& orig);
00055 
00057    virtual void printData() const;
00058 
00060    virtual void printDataToStream(std::ostream& stream) const;
00061 
00063    virtual void setReceivingId(const DtGlobalObjectDesignator &requester);
00064    virtual const DtGlobalObjectDesignator &receivingId() const;
00065 
00067    virtual void setSupplyingId(const DtGlobalObjectDesignator &servicer);
00068    virtual const DtGlobalObjectDesignator &supplyingId() const;
00069 
00071    virtual void setSupplies(const void* data, int numBytes);
00072    virtual const void* supplies() const;
00073 
00075    virtual void setNumSupplyTypes(int numTypes);
00076    virtual int numSupplyTypes() const; 
00077 
00078    virtual void setNthSupply(int supplyIndex, const DtEntityType &supply,
00079                              float quantity, int *retCode = NULL);
00080    virtual const DtEntityType &nthSupply(int supplyIndex, 
00081                                          float *quantity = NULL, 
00082                                          int *retCode = NULL) const;
00083 
00084    virtual float supplyQuantity(const DtEntityType &supply) const;
00085 
00086    virtual void changeSuppliesSize(int newSize);
00087 
00088    virtual int indexInBounds(int ind) const;
00089 
00091    virtual const char* name() const;
00092 
00093 public:
00094 
00097    static DtInteraction* create();
00098 
00101    static void addCallback(DtExerciseConn* conn,
00102       DtResupplyRecInteractionCb cb, void* usr,
00103       DtDDMRegionSP region = DtDDMRegionSP());
00104    static void removeCallback(DtExerciseConn* conn,
00105       DtResupplyRecInteractionCb cb, void* usr,
00106       DtDDMRegionSP region = DtDDMRegionSP());
00107 
00108 protected:
00109 
00110    DtGlobalObjectDesignator myReceivingObject;
00111    DtGlobalObjectDesignator mySupplyingObject;
00112    int myNumSupplyTypes;
00113    DtNetSupplyQuantity* mySupplies;
00114    DtEntityType myNthSupply;
00115 };
00116 
00117 inline const DtGlobalObjectDesignator& DtResupplyRecInteraction::
00118    receivingId() const
00119 {
00120    return myReceivingObject;
00121 }
00122 
00123 inline const DtGlobalObjectDesignator& DtResupplyRecInteraction::
00124    supplyingId() const
00125 {
00126    return mySupplyingObject;
00127 }
00128 
00129 inline void DtResupplyRecInteraction::setReceivingId(
00130    const DtGlobalObjectDesignator &id)
00131 {
00132    myReceivingObject = id;
00133 }
00134 
00135 inline void DtResupplyRecInteraction::setSupplyingId(
00136    const DtGlobalObjectDesignator &id)
00137 {
00138    mySupplyingObject = id;
00139 }
00140 
00141 inline const char* DtResupplyRecInteraction::name() const
00142 {
00143    return "DtResupplyRecInteraction";
00144 }
00145 
00146 #endif
00147 #endif
00148 

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)