VR-Link API Documentation for DIS
pduWithData.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 DtPduWithData_H_
00011 #define DtPduWithData_H_
00012 
00013 #if DtDIS
00014 
00015 #include "hostStructs.h"
00016 #include "simanPdu.h"
00017 #include <vlpi/datumIdType.h>
00018 #include "datumRecSet.h"
00019 
00023 class DT_DLL_VL DtPduWithData : public DtSimanPdu
00024 {
00025 public:
00026 
00027    enum { PduStaticSize=40 };
00028 
00029 public:
00030 
00032    DtPduWithData();
00033 
00035    virtual ~DtPduWithData();
00036 
00037    DtPduWithData(const DtPduWithData& orig);
00038 
00040    DtPduWithData& operator=(const DtPduWithData& orig)
00041    {
00042       this->DtPdu::operator=(orig);
00043       return *this;
00044    }
00045 
00047    virtual int numFixedFields() const;
00048 
00050    virtual int numVarFields() const;
00051 
00055    virtual DtDatumParam varDatumId(int index) const;
00056 
00060    virtual DtDatumParam fixedDatumId(int index) const;
00061 
00066    virtual DtDatumParam datumId(DtDatumRecordType fixedOrVar, int index) const;
00067 
00072    virtual int datumSizeBits(DtDatumRecordType fixedOrVar, int index) const;
00073 
00078    virtual int datumSizeBytes(DtDatumRecordType fixedOrVar, int index) const;
00079 
00086    virtual void getIndex(DtDatumParam param, DtDatumRecordType *fixedOrVar, int *index, 
00087                          DtDatumRetCode *retcode = NULL) const;
00088 
00101 
00102    virtual DtFloat32   datumValFloat32(DtDatumRecordType fixedOrVar, int index, 
00103                                           DtDatumRetCode *retcode = NULL) const;
00104    virtual DtFloat64    datumValFloat64(DtDatumRecordType fixedOrVar, int index, 
00105                                         DtDatumRetCode *retcode = NULL) const;
00106    virtual unsigned long datumValUnsigned32(DtDatumRecordType fixedOrVar, int index,
00107                                             DtDatumRetCode *retcode = NULL) const;
00108    virtual long        datumValInt32(DtDatumRecordType fixedOrVar, int index, 
00109                                      DtDatumRetCode *retcode = NULL) const;   
00110    virtual const char*   datumValByteArray(DtDatumRecordType fixedOrVar, int index) const;
00111 
00124 
00125    virtual DtFloat32      datumValFloat32(DtDatumParam param, 
00126                                           DtDatumRetCode *retcode = NULL) const;
00127    virtual DtFloat64   datumValFloat64(DtDatumParam param, 
00128                                           DtDatumRetCode *retcode = NULL) const;
00129    virtual unsigned long datumValUnsigned32(DtDatumParam param, 
00130                                             DtDatumRetCode *retcode = NULL) const;
00131    virtual long     datumValInt32(DtDatumParam param, 
00132                DtDatumRetCode *retcode = NULL) const;
00133    virtual const char*   datumValByteArray(DtDatumParam param, 
00134                   DtDatumRetCode *retcode = NULL) const;
00135 
00137 
00144    virtual void initDataSection(const DtDatumParam *fixedParams,
00145       const DtVarDatumSpec *specList); 
00146 
00151    virtual void setNumFixedFields(int newNum);
00152    virtual void setNumVarFields(int newNum);
00153 
00158    virtual void setDatumParam(DtDatumRecordType fixedOrVar, int index, DtDatumParam param, 
00159       DtDatumRetCode *retcode = NULL);
00160 
00166    virtual void setVarDataBytes(int index, int length, DtDatumRetCode *retcode = NULL);
00167 
00180 
00181    virtual void setDatumValFloat64(DtDatumRecordType fixedOrVar, int index, DtFloat64 val, 
00182             DtDatumRetCode *retcode = NULL); 
00183    virtual void setDatumValFloat32(DtDatumRecordType fixedOrVar, int index, DtFloat32 val, 
00184             DtDatumRetCode *retcode = NULL); 
00185    virtual void setDatumValInt32(DtDatumRecordType fixedOrVar, int index, long val, 
00186            DtDatumRetCode *retcode = NULL); 
00187    virtual void setDatumValUnsigned32(DtDatumRecordType fixedOrVar, int index, unsigned long val, 
00188                DtDatumRetCode *retcode = NULL); 
00189    virtual void setDatumValByteArray(DtDatumRecordType fixedOrVar, int index, const char *val, 
00190               DtDatumRetCode *retcode = NULL); 
00191    
00204 
00205    virtual void setDatumValFloat64(DtDatumParam param, DtFloat64 val, 
00206             DtDatumRetCode *retcode = NULL); 
00207    virtual void setDatumValFloat32(DtDatumParam param, DtFloat32 val, 
00208             DtDatumRetCode *retcode = NULL); 
00209    virtual void setDatumValInt32(DtDatumParam param, long val, 
00210            DtDatumRetCode *retcode = NULL); 
00211    virtual void setDatumValUnsigned32(DtDatumParam param, unsigned long val, 
00212                DtDatumRetCode *retcode = NULL); 
00213    virtual void setDatumValByteArray(DtDatumParam param, const char *val, 
00214               DtDatumRetCode *retcode = NULL); 
00215  
00217    virtual void printData() const;
00218    virtual void printDataToStream(std::ostream& stream) const;
00219 
00221    virtual void printDataSection() const;
00222    virtual void printDataSectionToStream(std::ostream& stream) const;
00223 
00224 protected:
00225 
00226    friend class DtPduDatumRecordSet;  
00227    
00228 #ifdef DtGATEWAY
00229    friend class DtDataInteractionTranslator;
00230    friend class DtSetDataInteractionTranslator;
00231    friend class DtCommentInteractionTranslator;
00232    friend class DtEventReportInteractionTranslator;
00233    friend class DtActionRequestInteractionTranslator;
00234    friend class DtActionResponseInteractionTranslator;
00235 #endif
00236 
00238    virtual DtDatumRecordSet* datumRecSet();
00240    virtual const DtDatumRecordSet* datumRecSet() const;
00241    
00242 
00243 
00246    virtual DtNetDataPduTail *dataSection() const = 0;
00247 
00250    virtual DtNetFixDatum *nthFixedDataRecord(int index) const;
00251 
00254    virtual DtNetVarDatum *nthVarDataRecord(int index) const;
00255 
00259    virtual void *datumValPtr(DtDatumRecordType fixedOrVar, int index) const;
00260 
00261 
00262 protected:
00263  
00264    DtDatumRecordSet* myRecSet;   
00265 };
00266 
00267 #endif
00268 #endif
00269 
00270 

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)