PTLib
Version 2.18.8
|
This template class maps the PAbstractArray
to a specific element type.
More...
#include <array.h>
Public Member Functions | |
Construction | |
PScalarArray (PINDEX initialSize=0) | |
Construct a new dynamic array of elements of the specified type. More... | |
PScalarArray (T const *buffer, PINDEX length, PBoolean dynamic=true) | |
Construct a new dynamic array of elements of the specified type. More... | |
![]() | |
PBaseArray (PINDEX initialSize=0) | |
Construct a new dynamic array of elements of the specified type. More... | |
PBaseArray (T const *buffer, PINDEX length, PBoolean dynamic=true) | |
Construct a new dynamic array of elements of the specified type. More... | |
virtual PObject * | Clone () const |
Clone the object. More... | |
PBoolean | SetAt (PINDEX index, T val) |
Set the specific element in the array. More... | |
T | GetAt (PINDEX index) const |
Get a value from the array. More... | |
void | Attach (const T *buffer, PINDEX bufferSize) |
Attach a pointer to a static block to the base array type. More... | |
T * | GetPointer (PINDEX minSize=0) |
Get a pointer to the internal array and assure that it is of at least the specified size. More... | |
T | operator[] (PINDEX index) const |
Get a value from the array. More... | |
T & | operator[] (PINDEX index) |
Get a reference to value from the array. More... | |
operator T const * () const | |
Get a pointer to the internal array. More... | |
PBoolean | Concatenate (const PBaseArray &array) |
Concatenate one array to the end of this array. More... | |
![]() | |
PAbstractArray (PINDEX elementSizeInBytes, PINDEX initialSize=0) | |
Create a new dynamic array of initalSize elements of elementSizeInBytes bytes each. More... | |
PAbstractArray (PINDEX elementSizeInBytes, const void *buffer, PINDEX bufferSizeInElements, PBoolean dynamicAllocation) | |
Create a new dynamic array of bufferSizeInElements elements of elementSizeInBytes bytes each. More... | |
virtual void | PrintOn (ostream &strm) const |
Output the contents of the object to the stream. More... | |
virtual void | ReadFrom (istream &strm) |
Input the contents of the object from the stream. More... | |
virtual Comparison | Compare (const PObject &obj) const |
Get the relative rank of the two arrays. More... | |
virtual PBoolean | SetSize (PINDEX newSize) |
Set the size of the array in elements. More... | |
void | Attach (const void *buffer, PINDEX bufferSize) |
Attach a pointer to a static block to the base array type. More... | |
void * | GetPointer (PINDEX minSize=1) |
Get a pointer to the internal array and assure that it is of at least the specified size. More... | |
const void * | GetPointer () const |
virtual PINDEX | GetLength () const |
Retrun the length in bytes for the array. More... | |
PBoolean | Concatenate (const PAbstractArray &array) |
Concatenate one array to the end of this array. More... | |
![]() | |
PContainer (PINDEX initialSize=0) | |
Create a new unique container. More... | |
PContainer (const PContainer &cont) | |
Create a new refernce to container. More... | |
PContainer & | operator= (const PContainer &cont) |
Assign one container reference to another. More... | |
virtual | ~PContainer () |
Destroy the container class. More... | |
virtual PINDEX | GetSize () const |
Get the current size of the container. More... | |
__inline size_t | size () const |
PBoolean | SetMinSize (PINDEX minSize) |
Set the minimum size of container. More... | |
virtual PBoolean | IsEmpty () const |
Determine if the container is empty. More... | |
__inline bool | empty () const |
PBoolean | IsUnique () const |
Determine if container is unique reference. More... | |
virtual PBoolean | MakeUnique () |
Make this instance to be the one and only reference to the container contents. More... | |
![]() | |
__inline unsigned | GetTraceContextIdentifier () const |
Get PTRACE context identifier. More... | |
__inline void | SetTraceContextIdentifier (unsigned id) |
__inline void | SetTraceContextIdentifier (const PObject &obj) |
__inline void | SetTraceContextIdentifier (const PObject *obj) |
__inline void | CopyTraceContextIdentifier (PObject &obj) const |
__inline void | CopyTraceContextIdentifier (PObject *obj) const |
virtual | ~PObject () |
__inline const char * | GetClass () const |
__inline bool | IsClass (const char *name) const |
__inline const PObject * | PTraceObjectInstance () const |
template<class CLS > | |
CLS * | CloneAs () const |
As for Clone() but converts to specified type. More... | |
virtual PINDEX | HashFunction () const |
This function yields a hash value required by the PDictionary class. More... | |
virtual Comparison | CompareObjectMemoryDirect (const PObject &obj) const |
Determine the byte wise comparison of two objects. More... | |
bool | operator== (const PObject &obj) const |
Compare the two objects. More... | |
bool | operator!= (const PObject &obj) const |
Compare the two objects. More... | |
bool | operator< (const PObject &obj) const |
Compare the two objects. More... | |
bool | operator> (const PObject &obj) const |
Compare the two objects. More... | |
bool | operator<= (const PObject &obj) const |
Compare the two objects. More... | |
bool | operator>= (const PObject &obj) const |
Compare the two objects. More... | |
Protected Member Functions | |
virtual void | ReadElementFrom (istream &stream, PINDEX index) |
![]() | |
virtual void | PrintElementOn (ostream &stream, PINDEX index) const |
PBaseArray (PContainerReference &reference_) | |
![]() | |
PBoolean | InternalSetSize (PINDEX newSize, PBoolean force) |
PAbstractArray (PContainerReference &reference, PINDEX elementSizeInBytes) | |
![]() | |
PContainer (int dummy, const PContainer *cont) | |
Constructor used in support of the Clone() function. More... | |
PContainer (PContainerReference &reference) | |
Construct using static PContainerReference. More... | |
virtual void | DestroyContents ()=0 |
Destroy the container contents. More... | |
virtual void | AssignContents (const PContainer &c) |
Copy the container contents. More... | |
void | CopyContents (const PContainer &c) |
Copy the container contents. More... | |
void | CloneContents (const PContainer *src) |
Create a duplicate of the container contents. More... | |
void | Destruct () |
Internal function called from container destructors. More... | |
virtual void | DestroyReference () |
Destroy the PContainerReference instance. More... | |
![]() | |
PObject () | |
Constructor for PObject, made protected so cannot ever create one on its own. More... | |
Additional Inherited Members | |
![]() | |
enum | Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 } |
Result of the comparison operation performed by the Compare() function. More... | |
![]() | |
static __inline void | CopyTraceContextIdentifier (PObject &to, const PObject &from) |
static __inline void | CopyTraceContextIdentifier (PObject &to, const PObject *from) |
static __inline void | CopyTraceContextIdentifier (PObject *to, const PObject &from) |
static __inline void | CopyTraceContextIdentifier (PObject *to, const PObject *from) |
static __inline const char * | Class () |
static __inline const PObject * | PTraceObjectInstance (const char *) |
static __inline const PObject * | PTraceObjectInstance (const PObject *obj) |
template<typename T > | |
static Comparison | Compare2 (T v1, T v2) |
Compare two types, returning Comparison type. More... | |
static Comparison | InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size) |
Internal function caled from CompareObjectMemoryDirect() More... | |
![]() | |
PINDEX | elementSize |
Size of an element in bytes. More... | |
char * | theArray |
Pointer to the allocated block of memory. More... | |
PBoolean | allocatedDynamically |
Flag indicating the array was allocated on the heap. More... | |
![]() | |
PContainerReference * | reference |
![]() | |
unsigned | m_traceContextIdentifier |
This template class maps the PAbstractArray
to a specific element type.
The functions in this class primarily do all the appropriate casting of types.
Note that if templates are not used the PSCALAR_ARRAY
macro will simulate the template instantiation.
The following classes are instantiated automatically for the basic scalar types:
PBYTEArray
PShortArray
PWORDArray
PIntArray
PUnsignedArray
PLongArray
PDWORDArray
|
inline |
Construct a new dynamic array of elements of the specified type.
The array is initialised to all zero bytes. Note that this may not be logically equivalent to the zero value for the type, though this would be very rare.
initialSize | Initial number of elements in the array. |
|
inline |
Construct a new dynamic array of elements of the specified type.
buffer | Pointer to an array of the elements of type T. |
length | Number of elements pointed to by buffer . |
dynamic | Buffer is copied and dynamically allocated. |
|
inlineprotectedvirtual |
Reimplemented from PAbstractArray.