Symbian
Symbian Developer Library

SYMBIAN OS V9.4

Feedback

[Index] [Previous] [Next]

#include <e32base.h>

Class CArrayVar< TAny >

class CArrayVar< TAny > : public CArrayVarBase;

Description

A template specialisation base class for variable length 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.

Derivation

Members

Defined in CArrayVar< TAny >:

Inherited from CArrayVarBase:

Inherited from CBase:


Member functions


CArrayVar(TBufRep,TInt)

inline CArrayVar(TBufRep aRep, TInt aGranularity);

Description

Constructs a variable array with the specified granularity and buffer organization.

Note that no memory is allocated to the array buffer by this constructor.

Parameters

TBufRep 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(TInt). For a segmented array buffer, pass (TBufRep)CBufSeg::NewL(TInt).

TInt aGranularity

The granularity of the array.

Return value

Panic codes

E32USER-CBase

19, if aGranularity is not positive.


At(TInt)const

inline const TAny* At(TInt anIndex) const;

Description

Returns 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 pointer is used in an expression where it cannot be modified.

Parameters

TInt anIndex

The position of the element within the array, relative to zero; i.e. zero implies the first element.

Return value

const TAny *

A pointer to the const element located at position anIndex within the array.

Panic codes

E32USER-CBase

21, if anIndex is negative or greater than or equal to the number of objects currently within the array.


At(TInt)

inline TAny* At(TInt anIndex);

Description

Returns 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 pointer is used in an expression where it can be modified.

Parameters

TInt anIndex

The position of the element within the array, relative to zero; i.e. zero implies the first element.

Return value

TAny *

A pointer to the non-const element located at position anIndex within the array.

Panic codes

E32USER-CBase

21, if anIndex is negative or greater than or equal to the number of objects currently within the array.


AppendL(const TAny *,TInt)

inline void AppendL(const TAny *aPtr, TInt aLength);

Description

Appends an untyped element of specified length onto the end of the array.

Parameters

const TAny *aPtr

A pointer to an untyped element to be appended.

TInt aLength

The length of the untyped element.


ExtendL(TInt)

inline TAny* ExtendL(TInt aLength);

Description

Extends the array by one element of specified length at the end of the array, i.e. at position CArrayVarBase::Count()const, and returns a pointer to the new element location.

As elements are untyped, no construction is possible and the content of the new location remains undefined.

Note that the function always attempts to allocate a cell to contain the new element and may also attempt to expand the array buffer. If there is insufficient memory available, the function leaves. The leave code is one of the system wide error codes. If the function leaves, the array is left in the state it was in before the call.

Parameters

TInt aLength

The length of the new element.

Return value

TAny *

A pointer to the new element location at the end of the array.