class PBitArray

This class represents a dynamic bit array

Inheritance:


Public Methods

[more] Construction
[more] Overrides from class PObject
[more] Overrides from class PContainer
[more] New functions for class


Inherited from PBYTEArray:


Inherited from PBaseArray:


Inherited from PAbstractArray:

Protected Fields

oPINDEX elementSize
ochar* theArray
oBOOL allocatedDynamically


Inherited from PContainer:

Public Methods

Common functions for containers

Protected Methods

ovirtual void DestroyContents()
ovirtual void AssignContents(const PContainer & c)
ovoid CopyContents(const PContainer & c)
ovoid CloneContents(const PContainer* src)
ovoid Destruct()


Inherited from PObject:

Public Methods

Run Time Type functions

I/O functions

Miscellaneous functions

Public Members

Comparison functions


Documentation

This class represents a dynamic bit array
o Construction

o PBitArray( PINDEX initialSize = 0 )
Construct a new dynamic array of bits.
Parameters:
initialSize - Initial number of bits in the array.

o PBitArray( const void* buffer, PINDEX length, BOOL dynamic = TRUE )
Construct a new dynamic array of elements of the specified type.
Parameters:
- buffer Pointer to an array of the elements of type T.
length - Number of bits (not bytes!) pointed to by buffer.
dynamic - Buffer is copied and dynamically allocated.

o Overrides from class PObject

ovirtual PObject* Clone() const
Clone the object

o Overrides from class PContainer

ovirtual PINDEX GetSize() const
Get the current size of the container. This represents the number of things the container contains. For some types of containers this will always return 1.

Returns:
number of objects in container.

ovirtual BOOL SetSize( PINDEX newSize )
Set the size of the array in bits. A new array may be allocated to accomodate the new number of bits. If the array increases in size then the new bytes are initialised to zero. If the array is made smaller then the data beyond the new size is lost.

Parameters:
newSize - New size of the array in bits, not bytes.
Returns:
TRUE if the memory for the array was allocated successfully.

oBOOL SetAt( PINDEX index, BOOL val )
Set the specific bit in the array. The array will automatically expand, if necessary, to fit the new element in.

Parameters:
index - Position in the array to set the new value.
val - Value to set in the array.
Returns:
TRUE if new memory for the array was successfully allocated.

oBOOL GetAt( PINDEX index ) const
Get a bit from the array. If the index is beyond the end of the allocated array then FALSE is returned.

Parameters:
index - Position on the array to get value from.
Returns:
value at the array position.

ovoid Attach( const void* buffer, PINDEX bufferSize )
Attach a pointer to a static block to the bit array type. The pointer is used directly and will not be copied to a dynamically allocated buffer. If the SetSize() function is used to change the size of the buffer, the object will be converted to a dynamic form with the contents of the static buffer copied to the allocated buffer.

Any dynamically allocated buffer will be freed.

Parameters:
- buffer Pointer to an array of elements.
- bufferSize Number of bits (not bytes!) pointed to by buffer.

oBYTE* GetPointer( PINDEX minSize = 0 )
Get a pointer to the internal array and assure that it is of at least the specified size. This is useful when the array contents are being set by some external or system function eg file read.

It is unsafe to assume that the pointer is valid for very long after return from this function. The array may be resized or otherwise changed and the pointer returned invalidated. It should be used for simple calls to atomic functions, or very careful examination of the program logic must be performed.

Parameters:
minSize - Minimum size in bits (not bytes!) for returned buffer pointer.
Returns:
pointer to the array memory.

o New functions for class

oBOOL operator[]( PINDEX index ) const
Get a value from the array. If the index is beyond the end of the allocated array then a zero value is returned.

This is functionally identical to the PContainer::GetAt() function.

Parameters:
index - Position on the array to get value from.
Returns:
value at the array position.

oPBitArray& operator+=( PINDEX index )
Set a bit to the array.

This is functionally identical to the PContainer::SetAt(index, TRUE) function.

Parameters:
index - Position on the array to get value from.

oPBitArray& operator-=( PINDEX index )
Set a bit to the array.

This is functionally identical to the PContainer::SetAt(index, TRUE) function.

Parameters:
index - Position on the array to get value from.

oBOOL Concatenate( const PBitArray & array )
Concatenate one array to the end of this array. This function will allocate a new array large enough for the existing contents and the contents of the parameter. The paramters contents is then copied to the end of the existing array.

Note this does nothing and returns FALSE if the target array is not dynamically allocated.

Parameters:
array - Other array to concatenate
Returns:
TRUE if the memory allocation succeeded.


This class has no child classes.

Alphabetic index HTML hierarchy of classes or Java



This page was generated with the help of DOC++.