![]() |
VR-Link API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00009 00010 #ifndef DtVariableDatumRecord_H_ 00011 #define DtVariableDatumRecord_H_ 00012 00013 #include <vlpi/disEnums.h> 00014 #include <vlpi/datumIdType.h> 00015 #include "packets/dataP.h" 00016 #include <iosfwd> 00017 00018 00022 class DT_DLL_VL DtVariableDatumRecord 00023 { 00024 00025 public: 00026 00028 DtVariableDatumRecord(); 00029 00031 virtual ~DtVariableDatumRecord(); 00032 00034 DtVariableDatumRecord(const DtVariableDatumRecord& orig); 00035 00037 DtVariableDatumRecord& operator=(const DtVariableDatumRecord& orig); 00038 00040 int operator==(const DtVariableDatumRecord& otherguy) const; 00041 int operator!=(const DtVariableDatumRecord& otherguy) const; 00042 00044 virtual void setExternalBuffer(char* bufferPtr); 00045 00048 virtual void setDatumBitLength(DtU32 newDatumBitLength); 00049 virtual DtU32 datumBitLength() const; 00050 00052 virtual int datumByteLength() const; 00053 00055 virtual void setDatumID(DtDatumParam value); 00056 virtual DtDatumParam datumID() const; 00057 00060 virtual void setDatumValFloat64(DtFloat64 value); 00061 virtual DtFloat64 datumValFloat64() const; 00062 00065 virtual void setDatumValFloat32(DtFloat32 value); 00066 virtual DtFloat32 datumValFloat32() const; 00067 00070 virtual void setDatumValInt32(DtInt32 value); 00071 virtual DtInt32 datumValInt32() const; 00072 00075 virtual void setDatumValU32(DtU32 value); 00076 virtual DtU32 datumValU32() const; 00077 00080 virtual void setDatumValInt16(DtInt16 value); 00081 virtual DtInt16 datumValInt16() const; 00082 00085 virtual void setDatumValU16(DtU16 value); 00086 virtual DtU16 datumValU16() const; 00087 00090 virtual void setDatumValU8(DtU8 value); 00091 virtual DtU8 datumValU8() const; 00092 00095 virtual void setDatumValByteArray(const DtU8* setFrom); 00096 virtual void getDatumValByteArray(DtU8* copyTo) const; 00097 00099 virtual char* datumValPtr(); 00100 00102 virtual const char* constDatumValPtr() const; 00103 00105 virtual int networkByteLength() const; 00106 00109 virtual const char* networkDataBuffer() const; 00110 00112 virtual void printData() const; 00113 virtual void printDataToStream(std::ostream &str) const; 00114 00115 00116 protected: 00117 00119 virtual DtNetVarDatum* netStruct(); 00120 00122 virtual const DtNetVarDatum* constNetStruct() const; 00123 00125 virtual void deleteIfNoExternal(); 00126 00128 virtual int datumByteSize(int datumBitLength) const; 00129 00131 virtual int recordByteSize(int datumBitLength) const; 00132 00133 protected: 00134 00135 char* myRecordBuffer; 00136 char* myExternalBuffer; 00137 }; 00138 00139 #endif 00140