9 #ifndef uniqEntryArr_H_
10 #define uniqEntryArr_H_
15 #ifndef _MachineTypes_h
16 #include <vlutil/vlMachineTypes.h>
28 inline DtKeyValuePair() : key( 0 ), val( 0 ) {}
29 inline ~DtKeyValuePair() {}
30 inline DtKeyValuePair(
unsigned int _key,
unsigned int _val ) :
31 key( _key ), val( _val ) {}
32 inline DtKeyValuePair(
const DtKeyValuePair& src ) :
33 key( src.key ), val( src.val ) {}
36 inline DtKeyValuePair& operator=(
const DtKeyValuePair& src )
40 key = src.key; val = src.val;
45 inline bool operator==(
const DtKeyValuePair& rhs )
47 if (
this == &rhs )
return ( 1 == 1 );
48 return ( key == rhs.key && val == rhs.val );
50 inline bool operator!=(
const DtKeyValuePair& rhs )
52 if (
this == &rhs )
return ( 1 == 0 );
53 return ( key != rhs.key || val != rhs.val );
56 inline unsigned int operator[](
int ix )
const
58 if ( ix < 0 || ix > 1 )
60 return (~(
unsigned int)0);
64 return ( ( ix ) ? val : key );
91 ~DtUniqueEntryArray();
93 DtUniqueEntryArray(
const DtUniqueEntryArray& src );
95 DtUniqueEntryArray& operator=(
const DtUniqueEntryArray& src );
99 bool operator==(
const DtUniqueEntryArray& rhs )
const;
100 bool operator!=(
const DtUniqueEntryArray& rhs )
const;
102 inline unsigned int operator[](
int ix )
const;
105 inline int count()
const;
106 inline bool isOK()
const;
107 inline unsigned int error()
const;
108 inline unsigned int minVal()
const;
109 inline unsigned int maxVal()
const;
112 int lookup(
unsigned int val )
const;
113 int remove(
unsigned int val );
114 int append(
unsigned int val );
118 void removeAt(
int ix );
119 bool insertAt(
int ix );
120 bool resizeTo(
int ix );
123 unsigned int* myArray;
124 int sz_nu, sz_na, _isOK;
133 inline unsigned int DtUniqueEntryArray::operator[](
int ix )
const
135 return ( ( ix < 0 || ix >= sz_nu ) ? (~(
unsigned int)0) : myArray[ix] );
139 inline int DtUniqueEntryArray::count()
const
145 inline bool DtUniqueEntryArray::isOK()
const
147 return ( _isOK != 0 );
151 inline unsigned int DtUniqueEntryArray::error()
const
157 inline unsigned int DtUniqueEntryArray::minVal()
const
159 return ( ( sz_nu <= 0 ) ? (~(
unsigned int)0) : myArray[0] );
163 inline unsigned int DtUniqueEntryArray::maxVal()
const
165 return ( ( sz_nu <= 0 ) ? (~(
unsigned int)0) : myArray[( sz_nu - 1 )] );
191 DtUniqueEntryArrWData();
193 ~DtUniqueEntryArrWData();
195 DtUniqueEntryArrWData(
const DtUniqueEntryArrWData& src );
197 DtUniqueEntryArrWData& operator=(
const DtUniqueEntryArrWData& src );
200 bool operator==(
const DtUniqueEntryArrWData& rhs )
const;
201 bool operator!=(
const DtUniqueEntryArrWData& rhs )
const;
203 inline const DtKeyValuePair& operator[](
int ix )
const;
204 inline unsigned int operator()(
int ix,
int jx )
const;
206 inline int count()
const;
207 inline bool isOK()
const;
208 inline unsigned int error()
const;
209 inline unsigned int minVal()
const;
210 inline unsigned int maxVal()
const;
212 int lookup(
unsigned int key,
unsigned int* pval=0 )
const;
213 int remove(
unsigned int key,
unsigned int* pval=0 );
214 int append(
unsigned int key,
unsigned int val,
unsigned int* pval=0 );
215 bool setVal(
int ix,
unsigned int val,
unsigned int* pval=0 );
219 void removeAt(
int ix );
220 bool insertAt(
int ix );
221 bool resizeTo(
int ix );
223 static const DtKeyValuePair dfltDummyEntry;
227 int sz_nu, sz_na, _isOK;
236 inline const DtKeyValuePair& DtUniqueEntryArrWData::operator[](
int ix )
const
238 return ( ( ix < 0 || ix >= sz_nu ) ?
239 DtUniqueEntryArrWData::dfltDummyEntry : arr[ix] );
243 inline unsigned int DtUniqueEntryArrWData::operator()(
int ix,
int jx )
const
245 return ( ( ix < 0 || ix >= sz_nu ) ?
246 DtUniqueEntryArrWData::dfltDummyEntry[jx] : arr[ix][jx] );
250 inline int DtUniqueEntryArrWData::count()
const
256 inline bool DtUniqueEntryArrWData::isOK()
const
258 return ( _isOK != 0 );
262 inline unsigned int DtUniqueEntryArrWData::error()
const
268 inline unsigned int DtUniqueEntryArrWData::minVal()
const
270 return ( ( sz_nu <= 0 ) ? (~(
unsigned int)0) : arr[0].key );
274 inline unsigned int DtUniqueEntryArrWData::maxVal()
const
276 return ( ( sz_nu <= 0 ) ? (~(
unsigned int)0) : arr[( sz_nu - 1 )].key );
298 typedef int ( *cmpEntries )(
void*,
void* );
299 typedef void* ( *copyEntry )(
void* );
300 typedef void ( *deleteEntry )(
void* );
303 DtUniqueEntryArrayVPtr();
305 ~DtUniqueEntryArrayVPtr();
307 DtUniqueEntryArrayVPtr(
const DtUniqueEntryArrayVPtr& src );
309 DtUniqueEntryArrayVPtr& operator=(
const DtUniqueEntryArrayVPtr& src );
312 bool operator==(
const DtUniqueEntryArrayVPtr& rhs )
const;
313 bool operator!=(
const DtUniqueEntryArrayVPtr& rhs )
const;
315 inline void* operator[](
int ix )
const;
319 bool init( cmpEntries cmpFnc, copyEntry cpyFnc, deleteEntry delFnc );
321 inline int count()
const;
322 inline bool isOK()
const;
323 inline unsigned int error()
const;
324 inline void* minVal()
const;
325 inline void* maxVal()
const;
327 int lookup(
void* val )
const;
328 int remove(
void* val );
329 int append(
void* val );
334 bool duplicate(
const DtUniqueEntryArrayVPtr& src );
335 void reset(
bool all );
336 void removeAt(
int ix );
337 bool insertAt(
int ix );
338 bool resizeTo(
int ix );
342 deleteEntry myDelFnc;
344 int sz_nu, sz_na, myOkFlag;
345 unsigned int myErrorFlag;
353 inline void* DtUniqueEntryArrayVPtr::operator[](
int ix )
const
355 return ( ( ix < 0 || ix >= sz_nu ) ? 0 : myEntries[ix] );
359 inline int DtUniqueEntryArrayVPtr::count()
const
365 inline bool DtUniqueEntryArrayVPtr::isOK()
const
367 return ( myOkFlag != 0 );
371 inline unsigned int DtUniqueEntryArrayVPtr::error()
const
377 inline void* DtUniqueEntryArrayVPtr::minVal()
const
379 return ( ( sz_nu <= 0 ) ? 0 : myEntries[0] );
383 inline void* DtUniqueEntryArrayVPtr::maxVal()
const
385 return ( ( sz_nu <= 0 ) ? 0 : myEntries[( sz_nu - 1 )] );
Defines IMPORT/EXPORT macros for lgrSim library.
#define DT_DLL_LGRSIM
Definition: lgrSim.h:21