Original Symbian headers
Selected EUSER, Window Server, networking, graphics and device declarations
Loading...
Searching...
No Matches
UserHeap Class Reference

A set of static functions for constructing fixed length heaps and local or global heaps. More...

#include <e32std.h>

Inheritance diagram for UserHeap:
User

Public Types

enum  TChunkHeapCreateMode { EChunkHeapSwitchTo = 0x1 , EChunkHeapDuplicate = 0x2 , EChunkHeapMask = EChunkHeapSwitchTo | EChunkHeapDuplicate }
 Flags to control the heap creation. More...
 

Static Public Member Functions

static IMPORT_C RHeap * FixedHeap (TAny *aBase, TInt aMaxLength, TInt aAlign=0, TBool aSingleThread=ETrue)
 Creates a fixed length heap at a specified location.
 
static IMPORT_C RHeap * ChunkHeap (const TDesC *aName, TInt aMinLength, TInt aMaxLength, TInt aGrowBy=1, TInt aAlign=0, TBool aSingleThread=EFalse)
 Creates a heap in a local or global chunk.
 
static IMPORT_C RHeap * ChunkHeap (RChunk aChunk, TInt aMinLength, TInt aGrowBy=1, TInt aMaxLength=0, TInt aAlign=0, TBool aSingleThread=EFalse, TUint32 aMode=0)
 Creates a heap in an existing chunk.
 
static IMPORT_C RHeap * OffsetChunkHeap (RChunk aChunk, TInt aMinLength, TInt aOffset, TInt aGrowBy=1, TInt aMaxLength=0, TInt aAlign=0, TBool aSingleThread=EFalse, TUint32 aMode=0)
 Creates a heap in an existing chunk, offset from the beginning of the chunk.
 
static IMPORT_C RHeap * ChunkHeap (const TChunkHeapCreateInfo &aCreateInfo)
 Creates a chunk heap of the type specified by the parameter aCreateInfo.
 
static IMPORT_C TInt SetupThreadHeap (TBool aNotFirst, SStdEpocThreadCreateInfo &aInfo)
 
static IMPORT_C TInt CreateThreadHeap (SStdEpocThreadCreateInfo &aInfo, RHeap *&aHeap, TInt aAlign=0, TBool aSingleThread=EFalse)
 

Detailed Description

A set of static functions for constructing fixed length heaps and local or global heaps.

See also
RHeap
RChunk
API status
Published to all clients. Released API.

Definition at line 3880 of file e32std.h.

Member Enumeration Documentation

◆ TChunkHeapCreateMode

Flags to control the heap creation.

Enumerator
EChunkHeapSwitchTo 

On successful creation of the heap this switches the calling thread to use the new heap.

EChunkHeapDuplicate 

On successful creation of the heap this causes the handle to the heap to be duplicated.

EChunkHeapMask 
API status
Internal component API.

Definition at line 3886 of file e32std.h.

Member Function Documentation

◆ ChunkHeap() [1/3]

static IMPORT_C RHeap * UserHeap::ChunkHeap ( const TChunkHeapCreateInfo &  aCreateInfo)
static

Creates a chunk heap of the type specified by the parameter aCreateInfo.

Parameters
aCreateInfoA reference to a TChunkHeapCreateInfo object specifying the type of chunk heap to create.

Panic condition: USER 41 if the heap's specified minimum length is greater than the specified maximum length.

Panic condition: USER 55 if the heap's specified minimum length is negative.

Panic condition: USER 172 if the heap's specified alignment is not a power of 2 or is less than the size of a TAny*.

(generated from Symbian Developer Library)

◆ ChunkHeap() [2/3]

static IMPORT_C RHeap * UserHeap::ChunkHeap ( const TDesC *  aName,
TInt  aMinLength,
TInt  aMaxLength,
TInt  aGrowBy = 1,
TInt  aAlign = 0,
TBool  aSingleThread = EFalse 
)
static

Creates a heap in a local or global chunk.

The chunk hosting the heap can be local or global.

A local chunk is one which is private to the process creating it and is not intended for access by other user processes. A global chunk is one which is visible to all processes.

The hosting chunk is local, if the pointer aName is NULL, otherwise the hosting chunk is global and the descriptor *aName is assumed to contain the name to be assigned to it.

Ownership of the host chunk is vested in the current process.

A minimum and a maximum size for the heap can be specified. On successful return from this function, the size of the heap is at least aMinLength. If subsequent requests for allocation of memory from the heap cannot be satisfied by compressing the heap, the size of the heap is extended in increments of aGrowBy until the request can be satisfied. Attempts to extend the heap causes the size of the host chunk to be adjusted.

Note that the size of the heap cannot be adjusted by more than aMaxLength.

Parameters
aNameIf NULL, the function constructs a local chunk to host the heap. If not NULL, a pointer to a descriptor containing the name to be assigned to the global chunk hosting the heap.
aMinLengthThe minimum length of the heap.
aMaxLengthThe maximum length to which the heap can grow. If the supplied value is less than KMinHeapSize, then it is discarded and the value KMinHeapSize used instead.
aGrowByThe increments to the size of the host chunk. If a value is not explicitly specified, the value KMinHeapGrowBy is taken by default
aAlignThe alignment of heap cells.
aSingleThreadIndicates whether single threaded or not.

Panic condition: USER 41 if aMinLength is greater than the supplied value of aMaxLength.

Panic condition: USER 55 if aMinLength is negative.

Panic condition: USER 172 if aAlign is not a power of 2 or is less than the size of a TAny*.

(generated from Symbian Developer Library)

◆ ChunkHeap() [3/3]

static IMPORT_C RHeap * UserHeap::ChunkHeap ( RChunk  aChunk,
TInt  aMinLength,
TInt  aGrowBy = 1,
TInt  aMaxLength = 0,
TInt  aAlign = 0,
TBool  aSingleThread = EFalse,
TUint32  aMode = 0 
)
static

Creates a heap in an existing chunk.

This function is intended to be used to create a heap in a user writable code chunk as created by a call to RChunk::CreateLocalCode(). This type of heap can be used to hold code fragments from a JIT compiler.

The maximum length to which the heap can grow is the same as the maximum size of the chunk.

Parameters
aChunkThe chunk that will host the heap.
aMinLengthThe minimum length of the heap.
aGrowByThe increments to the size of the host chunk.
aMaxLengthThe maximum length to which the heap can grow.
aAlignThe alignment of heap cells.
aSingleThreadIndicates whether single threaded or not.
aModeFlags controlling the heap creation. This should be set from one or more of the values in TChunkHeapCreateMode.

Panic condition: USER 172 if aAlign is not a power of 2 or is less than the size of a TAny*.

(generated from Symbian Developer Library)

◆ CreateThreadHeap()

static IMPORT_C TInt UserHeap::CreateThreadHeap ( SStdEpocThreadCreateInfo &  aInfo,
RHeap *&  aHeap,
TInt  aAlign = 0,
TBool  aSingleThread = EFalse 
)
static

◆ FixedHeap()

static IMPORT_C RHeap * UserHeap::FixedHeap ( TAny *  aBase,
TInt  aMaxLength,
TInt  aAlign = 0,
TBool  aSingleThread = ETrue 
)
static

Creates a fixed length heap at a specified location.

On successful return from this function, aMaxLength bytes are committed by the chunk. The heap cannot be extended.

Parameters
aBaseA pointer to the location where the heap is to be constructed.
aMaxLengthThe length of the heap. If the supplied value is less than KMinHeapSize, it is discarded and the value KMinHeapSize is used instead.
aAlignThe alignment of heap cells.
aSingleThreadIndicates whether single threaded or not.

Panic condition: USER 56 if aMaxLength is negative.

Panic condition: USER 172 if aAlign is not a power of 2 or is less than the size of a TAny*.

(generated from Symbian Developer Library)

◆ OffsetChunkHeap()

static IMPORT_C RHeap * UserHeap::OffsetChunkHeap ( RChunk  aChunk,
TInt  aMinLength,
TInt  aOffset,
TInt  aGrowBy = 1,
TInt  aMaxLength = 0,
TInt  aAlign = 0,
TBool  aSingleThread = EFalse,
TUint32  aMode = 0 
)
static

Creates a heap in an existing chunk, offset from the beginning of the chunk.

This function is intended to be used to create a heap where a fixed amount of additional data must be stored at a known location. The additional data can be placed at the base address of the chunk, allowing it to be located without depending on the internals of the heap structure.

The maximum length to which the heap can grow is the maximum size of the chunk, minus the offset.

Parameters
aChunkThe chunk that will host the heap.
aMinLengthThe minimum length of the heap.
aOffsetThe offset from the start of the chunk, to the start of the heap.
aGrowByThe increments to the size of the host chunk.
aMaxLengthThe maximum length to which the heap can grow.
aAlignThe alignment of heap cells.
aSingleThreadIndicates whether single threaded or not.
aModeFlags controlling the heap creation. This should be set from one or more of the values in TChunkHeapCreateMode.

Panic condition: USER 172 if aAlign is not a power of 2 or is less than the size of a TAny*.

(generated from Symbian Developer Library)

◆ SetupThreadHeap()

static IMPORT_C TInt UserHeap::SetupThreadHeap ( TBool  aNotFirst,
SStdEpocThreadCreateInfo &  aInfo 
)
static

The documentation for this class was generated from the following files: