85 PINDEX elementSizeInBytes,
87 PINDEX initialSize = 0
108 PINDEX elementSizeInBytes,
111 PINDEX bufferSizeInElements,
240 PINDEX elementSizeInBytes
288 PINDEX initialSize = 0
335 return index < GetSize() ? (reinterpret_cast<T *>(
theArray))[index] : T();
421 operator T
const *()
const {
448 stream <<
GetAt(index);
462 #define PBASEARRAY(cls, T) typedef PBaseArray<T> cls
476 #define PDECLARE_BASEARRAY(cls, T) \
477 PDECLARE_CLASS(cls, PBaseArray<T>) \
478 cls(PINDEX initialSize = 0) \
479 : PBaseArray<T>(initialSize) { } \
480 cls(PContainerReference & reference_) \
481 : PBaseArray<T>(reference_) { } \
482 cls(T const * buffer, PINDEX length, PBoolean dynamic = true) \
483 : PBaseArray<T>(buffer, length, dynamic) { } \
484 virtual PObject * Clone() const \
485 { return PNEW cls(*this, GetSize()); } \
515 PINDEX initialSize = 0
524 ) :
PBaseArray<T>(buffer, length, dynamic) { }
535 this->
SetAt(index, t);
548 #define PSCALAR_ARRAY(cls, T) typedef PScalarArray<T> cls
563 PINDEX initialSize = 0
616 PINDEX initialSize = 0
649 template <
typename T>
const T &
GetAs(PINDEX offset = 0)
652 return *(
const T *)(
theArray+offset);
704 PINDEX initialSize = 0
745 virtual PINDEX
GetSize()
const;
915 PINDEX initialSize = 0
942 return dynamic_cast<T &
>(*obj);
962 #define PARRAY(cls, T) typedef PArray<T> cls
977 #define PDECLARE_ARRAY(cls, T) \
978 PARRAY(cls##_PTemplate, T); \
979 PDECLARE_CLASS(cls, cls##_PTemplate) \
981 inline cls(int dummy, const cls * c) \
982 : cls##_PTemplate(dummy, c) { } \
984 inline cls(PINDEX initialSize = 0) \
985 : cls##_PTemplate(initialSize) { } \
986 virtual PObject * Clone() const \
987 { return PNEW cls(0, this); } \
1002 PINDEX initialSize = 0
1008 const void * buffer,
1029 virtual PINDEX
GetSize()
const;
1073 const void * buffer,
1108 )
const {
return GetAt(index); }
1117 ) {
SetAt(index,
true);
return *
this; }
1126 ) {
SetAt(index,
false);
return *
this; }
1146 #endif // PTLIB_ARRAY_H