PTLib  Version 2.14.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
array.h File Reference
#include <vector>
#include <ptlib/contain.h>
Include dependency graph for array.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  PAbstractArray
 This class contains a variable length array of arbitrary memory blocks. More...
 
class  PBaseArray< T >
 This template class maps the PAbstractArray to a specific element type. More...
 
class  PScalarArray< T >
 This template class maps the PAbstractArray to a specific element type. More...
 
class  PCharArray
 Array of characters. More...
 
class  PBYTEArray
 Array of unsigned characters. More...
 
class  PArrayObjects
 An array of objects. More...
 
class  PArray< T >
 This template class maps the PArrayObjects to a specific object type. More...
 
class  PBitArray
 This class represents a dynamic bit array. More...
 

Macros

#define PBASEARRAY(cls, T)   typedef PBaseArray<T> cls
 Declare a dynamic array base type. More...
 
#define PDECLARE_BASEARRAY(cls, T)
 Begin a declaration of an array of base types. More...
 
#define PSCALAR_ARRAY(cls, T)   typedef PScalarArray<T> cls
 Declare a dynamic array base type. More...
 
#define PARRAY(cls, T)   typedef PArray<T> cls
 Declare an array to a specific type of object. More...
 
#define PDECLARE_ARRAY(cls, T)
 Begin declaration an array to a specific type of object. More...
 

Typedefs

typedef PScalarArray< short > PShortArray
 Array of short integers. More...
 
typedef PScalarArray< int > PIntArray
 Array of integers. More...
 
typedef PScalarArray< long > PLongArray
 Array of long integers. More...
 
typedef PScalarArray< WORD > PWORDArray
 Array of unsigned short integers. More...
 
typedef PScalarArray< unsigned > PUnsignedArray
 Array of unsigned integers. More...
 
typedef PScalarArray< DWORD > PDWORDArray
 Array of unsigned long integers. More...
 

Macro Definition Documentation

#define PARRAY (   cls,
 
)    typedef PArray<T> cls

Declare an array to a specific type of object.

This macro is used to declare a descendent of PArrayObjects class, customised for a particular object type T. This macro closes the class declaration off so no additional members can be added.

If the compilation is using templates then this macro produces a typedef of the PArray template class.

See the PBaseArray class and PDECLARE_ARRAY macro for more information.

#define PBASEARRAY (   cls,
 
)    typedef PBaseArray<T> cls

Declare a dynamic array base type.

This macro is used to declare a descendent of PAbstractArray class, customised for a particular element type T. This macro closes the class declaration off so no additional members can be added.

If the compilation is using templates then this macro produces a typedef of the PBaseArray template class.

#define PDECLARE_ARRAY (   cls,
 
)
Value:
PARRAY(cls##_PTemplate, T); \
PDECLARE_CLASS(cls, cls##_PTemplate) \
protected: \
inline cls(int dummy, const cls * c) \
: cls##_PTemplate(dummy, c) { } \
public: \
inline cls(PINDEX initialSize = 0) \
: cls##_PTemplate(initialSize) { } \
virtual PObject * Clone() const \
{ return PNEW cls(0, this); } \

Begin declaration an array to a specific type of object.

This macro is used to declare a descendent of PArrayObjects class, customised for a particular object type T.

If the compilation is using templates then this macro produces a descendent of the PArray template class. If templates are not being used then the macro defines a set of inline functions to do all casting of types. The resultant classes have an identical set of functions in either case.

See the PBaseArray and PAbstractArray classes for more information.

#define PDECLARE_BASEARRAY (   cls,
 
)
Value:
cls(PINDEX initialSize = 0) \
: PBaseArray<T>(initialSize) { } \
cls(PContainerReference & reference_) \
: PBaseArray<T>(reference_) { } \
cls(T const * buffer, PINDEX length, PBoolean dynamic = true) \
: PBaseArray<T>(buffer, length, dynamic) { } \
virtual PObject * Clone() const \
{ return PNEW cls(*this, GetSize()); } \

Begin a declaration of an array of base types.

This macro is used to declare a descendent of PAbstractArray class, customised for a particular element type T.

If the compilation is using templates then this macro produces a descendent of the PBaseArray template class. If templates are not being used then the macro defines a set of inline functions to do all casting of types. The resultant classes have an identical set of functions in either case.

See the PBaseArray and PAbstractArray classes for more information.

#define PSCALAR_ARRAY (   cls,
 
)    typedef PScalarArray<T> cls

Declare a dynamic array base type.

This macro is used to declare a descendent of PAbstractArray class, customised for a particular element type T. This macro closes the class declaration off so no additional members can be added.

If the compilation is using templates then this macro produces a typedef of the PBaseArray template class.

Typedef Documentation

typedef PScalarArray<DWORD> PDWORDArray

Array of unsigned long integers.

typedef PScalarArray<int> PIntArray

Array of integers.

typedef PScalarArray<long> PLongArray

Array of long integers.

typedef PScalarArray<short> PShortArray

Array of short integers.

typedef PScalarArray<unsigned> PUnsignedArray

Array of unsigned integers.

typedef PScalarArray<WORD> PWORDArray

Array of unsigned short integers.