#include <e32base.h>
template <> |
class CArrayPak< TAny > : public CArrayPakBase |
Public Member Functions | |
---|---|
CArrayPak(TBufRep, TInt) | |
void | AppendL(const TAny *, TInt) |
const TAny * | At(TInt) |
TAny * | At(TInt) |
TAny * | ExtendL(TInt) |
A template specialisation base class for variable length, packed, arrays.
The array buffer organisation is defined at construction.
The class is useful for constructing an array of variable length buffers, where the length is decided at run time.
This class is also useful as a data member of a base class in a thin template class/base class pair where the type of the array element is not known until the owning thin template class is instantiated.
Constructs a variable array with the specified granularity and buffer organisation.
Note that no memory is allocated to the array buffer by this constructor.
Parameters | |
---|---|
aRep | A pointer to a function used to expand the array buffer. The organisation of the array buffer is implied by the choice of this function. For a flat array buffer, pass (TBufRep)CBufFlat::NewL. For a segmented array buffer, pass (TBufRep)CBufSeg::NewL. |
aGranularity | The granularity of the array. |
Panic Codes | |
---|---|
E32USER-CBase | 19, if aGranularity is not positive. |
Appends the untyped element of the specified length onto the end of the array.
Parameters | |
---|---|
aPtr | A pointer to an untyped element to be appended. |
aLength | The length of the untyped element. |
Leave Codes | |
---|---|
KErrNoMemory | The function attempted to expand the array buffer and there is insufficient memory available. In this case, the array is left in the state it was in before the call. |
Reimplemented from CArrayPakBase::At(TInt)const
Gets a pointer to the untyped element located at the specified position within the array.
The compiler uses this variant of the function if the returned reference is used in an expression where that reference cannot be modified.
Parameters | |
---|---|
anIndex | The position of the element within the array, relative to zero; i.e. zero implies the first element. |
Panic Codes | |
---|---|
E32USER-CBase | 21, if anIndex is negative or greater than or equal to the number of objects currently within the array. |
Gets a pointer to the untyped element located at the specified position within the array.
The compiler uses this variant of the function if the returned reference is used in an expression where that reference can be modified.
Parameters | |
---|---|
anIndex | The position of the element within the array, relative to zero; i.e. zero implies the first element. |
Panic Codes | |
---|---|
E32USER-CBase | 21, if anIndex is negative or greater than or equal to the number of objects currently within the array. |
Expands the array by one element of the specified length at the end of the array, and returns a pointer to this new location.
As elements are untyped, no construction is possible and the content of the new location remains undefined.
Parameters | |
---|---|
aLength | The length of the new element. |
Leave Codes | |
---|---|
KErrNoMemory | The function attempted to expand the array buffer and there is insufficient memory available. In this case, the array is left in the state it was in before the call. |