9 #ifndef lgrVariableLengthData_H_
10 #define lgrVariableLengthData_H_
13 #include <vlutil/vlMachineTypes.h>
35 setData(inData,inSize);
49 delete[] (
char*)myData;
57 if(size() < rhs.
size())
return true;
58 if(size() > rhs.
size())
return false;
62 const DtInt32* intPtr1 = (
const DtInt32*)data();
63 const DtInt32* intPtr2 = (
const DtInt32*)rhs.
data();
64 return (*intPtr1 < *intPtr2);
66 else if( size() == 8 )
68 const DtInt64* intPtr1 = (
const DtInt64*)data();
69 const DtInt64* intPtr2 = (
const DtInt64*)rhs.
data();
70 if(*intPtr1 < *intPtr2)
return true;
72 else if( size() == 2 )
74 const DtInt16* intPtr1 = (
const DtInt16*)data();
75 const DtInt16* intPtr2 = (
const DtInt16*)rhs.
data();
76 return (*intPtr1 < *intPtr2);
80 return memcmp(data(), rhs.
data(), size()) < 0;
86 if(size() != rhs.
size())
return false;
93 const DtInt32* intPtr1 = (
const DtInt32*)data();
94 const DtInt32* intPtr2 = (
const DtInt32*)rhs.
data();
95 if(*intPtr1 != *intPtr2)
return false;
97 else if( size() == 8 )
99 const DtInt64* intPtr1 = (
const DtInt64*)data();
100 const DtInt64* intPtr2 = (
const DtInt64*)rhs.
data();
101 if(*intPtr1 != *intPtr2)
return false;
103 else if( size() == 2 )
105 const DtInt16* intPtr1 = (
const DtInt16*)data();
106 const DtInt16* intPtr2 = (
const DtInt16*)rhs.
data();
107 if(*intPtr1 != *intPtr2)
return false;
111 return memcmp(data(), rhs.
data(), size()) == 0;
126 void const *
data()
const {
return myData;}
128 unsigned int size()
const {
return mySize;}
131 void setData(
void const * inData,
unsigned long inSize)
133 delete[] (
char*)myData;
136 myData = (
void*)
new char[inSize];
143 memcpy(myData,inData,mySize);
160 delete[] (
char*)myData;
#define DT_DLL_LGRSIM
Definition: lgrSim.h:21
~DtLgrVariableLengthData()
Definition: lgrVariableLengthData.h:47
unsigned long mySize
Definition: lgrVariableLengthData.h:176
bool operator==(const DtLgrVariableLengthData &rhs) const
Comparison operator.
Definition: lgrVariableLengthData.h:84
void setDataPointer(void *inData, unsigned long inSize)
Manually sets the data pointer and size, existing data pointer is not deallocated.
Definition: lgrVariableLengthData.h:149
DtLgrVariableLengthData(DtLgrVariableLengthData const &rhs)
Definition: lgrVariableLengthData.h:39
void setData(void const *inData, unsigned long inSize)
Caller is free to delete inData after the call.
Definition: lgrVariableLengthData.h:131
unsigned int size() const
Definition: lgrVariableLengthData.h:128
void const * data() const
This pointer should not be expected to be valid past the lifetime of this object, or past the next ti...
Definition: lgrVariableLengthData.h:126
DtLgrVariableLengthData()
Definition: lgrVariableLengthData.h:24
void * myData
Definition: lgrVariableLengthData.h:175
bool operator<(const DtLgrVariableLengthData &rhs) const
Comparison operator.
Definition: lgrVariableLengthData.h:55
Variable length data object compile-time compatible with the RTI 1516 implementation.
Definition: lgrVariableLengthData.h:21
void releaseDataPointer()
VariableLengthData releases ownership of memory and sets internal pointer to null.
Definition: lgrVariableLengthData.h:168
void * data()
Definition: lgrVariableLengthData.h:127
DtLgrVariableLengthData(void const *inData, unsigned long inSize)
Initialize the object with a copy of inData for inSize.
Definition: lgrVariableLengthData.h:31
void takeDataPointer(void *inData, unsigned long inSize)
Caller gives up ownership of inData to this object.
Definition: lgrVariableLengthData.h:158
DtLgrVariableLengthData & operator=(DtLgrVariableLengthData const &rhs)
Caller is free to delete rhs after the call.
Definition: lgrVariableLengthData.h:117