9 #ifndef lgrVariableLengthData_H_
10 #define lgrVariableLengthData_H_
34 setData(inData,inSize);
48 delete[] (
char*)myData;
56 if(size() < rhs.
size())
return true;
57 if(size() > rhs.
size())
return false;
59 int count2 = rhs.
size();
60 int count = (count1<count2)?count1:count2;
61 const char* data1 = (
const char*)data();
62 const char* data2 = (
const char*)rhs.
data();
63 for(
int i = 0;i < count;++i,++data1,++data2)
65 if(*data1 > *data2)
return false;
66 if(*data1 < *data2)
return true;
68 return count1 < count2;
74 if(size() != rhs.
size())
return false;
76 int integerCompares = size() >> 2;
77 const unsigned int* intPtr1 = (
const unsigned int*)data();
78 const unsigned int* intPtr2 = (
const unsigned int*)rhs.
data();
79 while(integerCompares--)
81 if(*intPtr1 != *intPtr2)
return false;
85 int byteCompares = size() & 0x3;
86 const unsigned char* bytePtr1 = (
const unsigned char*)intPtr1;
87 const unsigned char* bytePtr2 = (
const unsigned char*)intPtr2;
90 if(*bytePtr1 != *bytePtr2)
return false;
107 void const *
data()
const {
return myData;}
109 unsigned int size()
const {
return mySize;}
112 void setData(
void const * inData,
unsigned long inSize)
114 delete[] (
char*)myData;
117 myData = (
void*)
new char[inSize];
124 memcpy(myData,inData,mySize);
130 void setDataPointer(
void* inData,
unsigned long inSize)
139 void takeDataPointer(
void* inData,
unsigned long inSize)
141 delete[] (
char*)myData;
149 void releaseDataPointer()