array.h File Reference

#include <ptlib/contain.h>

Go to the source code of this file.

Classes

class  PAbstractArray
class  PBaseArray< T >
class  PScalarArray< T >
class  PCharArray
 Array of characters. More...
class  PShortArray
 Array of short integers. More...
class  PIntArray
 Array of integers. More...
class  PLongArray
 Array of long integers. More...
class  PBYTEArray
 Array of unsigned characters. More...
class  PWORDArray
 Array of unsigned short integers. More...
class  PUnsignedArray
 Array of unsigned integers. More...

Overrides from class PObject

virtual void PrintOn (ostream &strm) const
 Print the array.
virtual void ReadFrom (istream &strm)
 Read the array.

Defines

#define PBASEARRAY(cls, T)   typedef PBaseArray<T> cls
#define PDECLARE_BASEARRAY(cls, T)
#define PSCALAR_ARRAY(cls, T)   typedef PScalarArray<T> cls
#define PARRAY(cls, T)   typedef PArray<T> cls
#define PDECLARE_ARRAY(cls, T)

Functions

 PSCALAR_ARRAY (PShortArray, short)
 PSCALAR_ARRAY (PIntArray, int)
 PSCALAR_ARRAY (PLongArray, long)
 PDECLARE_BASEARRAY (PBYTEArray, BYTE)
 PSCALAR_ARRAY (PWORDArray, WORD)
 PSCALAR_ARRAY (PUnsignedArray, unsigned)


Define Documentation

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

#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); } \

#define PDECLARE_BASEARRAY ( cls,
 ) 

Value:

PDECLARE_CLASS(cls, PBaseArray<T>) \
    cls(PINDEX initialSize = 0) \
      : PBaseArray<T>(initialSize) { } \
    cls(T const * buffer, PINDEX length, PBoolean dynamic = PTrue) \
      : 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.


Function Documentation

PDECLARE_BASEARRAY ( PBYTEArray  ,
BYTE   
)

virtual void PrintOn ( ostream &  strm  )  const [virtual]

Print the array.

Parameters:
strm  Stream to output to.

PSCALAR_ARRAY ( PUnsignedArray  ,
unsigned   
)

PSCALAR_ARRAY ( PWORDArray  ,
WORD   
)

PSCALAR_ARRAY ( PLongArray  ,
long   
)

PSCALAR_ARRAY ( PIntArray  ,
int   
)

PSCALAR_ARRAY ( PShortArray  ,
short   
)

virtual void ReadFrom ( istream &  strm  )  [virtual]

Read the array.

Parameters:
strm  Stream to read the objects contents from.


Generated on Thu May 27 01:36:48 2010 for PTLib by  doxygen 1.4.7