VR-Link API Documentation for HLA Evolved
servReqPdu.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *********************************************************************/
00005 
00006 
00007 #if DtDIS
00008 
00011 
00012 #ifndef DtServiceRequestPdu_H_
00013 #define DtServiceRequestPdu_H_
00014 
00015 #include "pdu.h"
00016 #include "packets/logisticsP.h"
00017 #include "hostStructs.h"
00018 #include "dInteraction.h"
00019 
00020 #define DtSUPPLY_VALID 1
00021 #define DtSUPPLY_BAD_INDEX 0
00022 
00023 class DT_DLL_VL DtExerciseConn;
00024 
00025 class DT_DLL_VL DtServiceRequestPdu;
00026 typedef DtServiceRequestPdu DtServiceRequestInteraction;
00027 typedef void (*DtServiceRequestPduCb)(DtServiceRequestPdu *pdu, void *usr);
00028 
00029 class DT_DLL_VL DtServiceRequestPdu : public DtInteraction
00030 {
00031 
00032 public:
00033 
00034    enum { PduStaticSize=28 };
00035 
00036 public:
00037 
00038 
00039    DtServiceRequestPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 
00040    DtServiceRequestPdu(const DtNetServiceRequestPdu *initial, 
00041                        DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);    
00042 
00043    DtServiceRequestPdu(const DtEntityIdentifier &requester, 
00044                        const DtEntityIdentifier &servicer, 
00045                        DtServiceType serviceType = DtServiceTypeRepair,
00046                        DtBufferPtr another = DtUSE_INTERNAL_BUFFER);
00047 
00048 
00049    DtServiceRequestPdu(const DtEntityIdentifier &requester, 
00050                        const DtEntityIdentifier &servicer, 
00051                        const DtEntityType &supply, 
00052                        float quantity, 
00053                        DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00054 
00055 
00056    const DtEntityIdentifier &requestingId() const;
00057    void  setRequestingId(const DtEntityIdentifier &requester);
00058 
00059    const DtEntityIdentifier &servicingId() const;
00060    void  setServicingId(const DtEntityIdentifier &servicer);
00061 
00062    DtServiceType serviceType() const;  
00063    void  setServiceType(DtServiceType service);
00064 
00065    int   numSupplyTypes() const; 
00066    void  setNumSupplyTypes(int numTypes);
00067 
00068    const DtEntityType &nthSupply(int supplyIndex,
00069                                  float *quantity = NULL,
00070                                  int *retCode = NULL) const;
00071    void  setNthSupply(int supplyIndex,
00072                       const DtEntityType &supply,
00073                       float quantity,
00074                       int *retCode = NULL);
00075 
00076    float supplyQuantity(const DtEntityType &supply) const;
00077 
00078    virtual void printData() const;
00079    virtual void printDataToStream(std::ostream& stream) const;
00080 
00081 public:
00082 
00083    static DtPdu *create(const DtNetPacket *initial, 
00084                         DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);    
00085    static void addCallback(DtExerciseConn *conn, 
00086                            DtServiceRequestPduCb cb, void *usr);
00087    static void removeCallback(DtExerciseConn *conn, 
00088                               DtServiceRequestPduCb cb, void *usr);
00089 protected:
00090    DtPduKind internalGetPduKind() const {return DtServiceRequestPduKind;}
00091    int indexInBounds(int ind) const;
00092    DtEntityIdentifier reqId;
00093    DtEntityIdentifier servId;
00094    DtEntityType supType;
00095 };
00096 
00097 #endif
00098 #endif
00099 
00100 
00101 

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)