MemoryManager Class Reference

#include <mw/MemoryManager.h>

Link against: memman.lib

class MemoryManager
Public Member Functions
IMPORT_C voidAddCollector(MMemoryCollector *)
IMPORT_C voidAddStopper(MOOMStopper *)
IMPORT_C voidCloseFastAllocator(RAllocator *)
IMPORT_C voidCreateFastAllocator()
IMPORT_C voidDumpMemoryLogs()
IMPORT_C voidFreeRam()
IMPORT_C voidInitFastAllocator()
IMPORT_C voidInitOOMDialog()
IMPORT_C TUintMemorySize(TAny *)
IMPORT_C TUintPostCheck()
IMPORT_C TBoolPreCheck(TUint, TUint, const TDesC8 &)
IMPORT_C voidPrepareForExit()
IMPORT_C voidRemoveCollector(MMemoryCollector *)
IMPORT_C voidRemoveStopper(MOOMStopper *)
IMPORT_C voidResetOOMDialogDisplayed()
IMPORT_C voidRestoreCollectors()
IMPORT_C voidSetNotifier(MOOMNotifier *)
IMPORT_C voidSetRescueBufferSize(TInt)
IMPORT_C voidSetStatus(TOOMCheckResult)
IMPORT_C TUintStatus()
IMPORT_C RAllocator *SwitchToFastAllocator()

Detailed Description

A class handles all memory operations and OOM issues
Since
3.1

Member Function Documentation

AddCollector ( MMemoryCollector * )

IMPORT_C voidAddCollector(MMemoryCollector *aCollector)[static]
register a memory collector, memory manager doesn't own this collector
Since
3.1
ParameterDescription
aCollectorthe collector to be registered

AddStopper ( MOOMStopper * )

IMPORT_C voidAddStopper(MOOMStopper *aStopper)[static]
register a stopper, memory manager doesn't own this stopper.
Since
3.1
ParameterDescription
aStopperthe stopper to be registered

CloseFastAllocator ( RAllocator * )

IMPORT_C voidCloseFastAllocator(RAllocator *aDefaultAllocator)[static]
switch to the default allocator provided by Symbian OS, and close the current fast allocator.
Since
3.1

CreateFastAllocator ( )

IMPORT_C voidCreateFastAllocator()[static]

Create fast allocator and switch as default heap. Special case if fast allocator has to be created from SetupThreadHeap().

Since
9.2

DumpMemoryLogs ( )

IMPORT_C voidDumpMemoryLogs()[static]
Dumps the memory logs i.e. heap allocated, heap free, system free, heap size etc to log file c:.log
Since
9.2

FreeRam ( )

IMPORT_C voidFreeRam()[static]
Free some RAM. Calls collect on registered collectors
Since
3.1

InitFastAllocator ( )

IMPORT_C voidInitFastAllocator()[static]

Initialize MemoryManager library. Special case if CreateFastAllocator is called from SetupThreadHeap().

Since
9.2

InitOOMDialog ( )

IMPORT_C voidInitOOMDialog()[static]
initialize the OOM handler in the memorypool
Since
9.2

MemorySize ( TAny * )

IMPORT_C TUintMemorySize(TAny *aPtr)[static]
retrieve the size of an allocated memory cell
Since
3.1

PostCheck ( )

IMPORT_C TUintPostCheck()[static]
An additional check after an operation is completed.
Since
3.1

Returns: the status of memory during this operation.

PreCheck ( TUint, TUint, const TDesC8 & )

IMPORT_C TBoolPreCheck(TUintaTotalSize,
TUintaMaxBufSize,
const TDesC8 &aChecker =  KNullDesC8
)[static]
check if the memory manager is able to reserve enough memory for the coming operation.
Since
3.1
ParameterDescription
aTotalSizetotal amount of memory
aCheckerthe name of operation

Returns: result of prechecking, ETrue = successful

PrepareForExit ( )

IMPORT_C voidPrepareForExit()[static]
Prepare Memory manager for the coming application exit.
Since
3.1

RemoveCollector ( MMemoryCollector * )

IMPORT_C voidRemoveCollector(MMemoryCollector *aCollector)[static]
unregister a memory collector
Since
3.1
ParameterDescription
aCollectorthe collector to be unregistered

RemoveStopper ( MOOMStopper * )

IMPORT_C voidRemoveStopper(MOOMStopper *aStopper)[static]
unregister a stopper
Since
3.1
ParameterDescription
aStopperthe stopper to be unregistered

ResetOOMDialogDisplayed ( )

IMPORT_C voidResetOOMDialogDisplayed()[static]
Reset the OOM dialog display flag in the memorypool; we want to pop the OOM dialog once per page, so we need to clear this when we are either done with the page (it unloads) or when we load a new one, so that it will display again when we run out of memory
Since
9.2

RestoreCollectors ( )

IMPORT_C voidRestoreCollectors()[static]
Called when application is no longer in OOM situation.
Since
3.1

SetNotifier ( MOOMNotifier * )

IMPORT_C voidSetNotifier(MOOMNotifier *aNotifier)[static]
set the OOM notifier, memory manager doesn't own this notifier
Since
3.1
ParameterDescription
aNotifierthe notifier

SetRescueBufferSize ( TInt )

IMPORT_C voidSetRescueBufferSize(TIntaSize)[static]
Called when application wants to change the rescue buffer size
Since
3.1

SetStatus ( TOOMCheckResult )

IMPORT_C voidSetStatus(TOOMCheckResultaType = ENoOOM)[static]
Trigger an OOM event, this function is only for debugging purpose
Since
3.1
ParameterDescription
aTypedefines where memory allocation fails

Status ( )

IMPORT_C TUintStatus()[static]
Get the status of memory manager, specific state could be retrieve by AND (&) operator with TOOMCheckResult enum
Since
3.1

Returns: the status of memory during this operation.

SwitchToFastAllocator ( )

IMPORT_C RAllocator *SwitchToFastAllocator()[static]
switch to the allocator using fast dlmalloc
Since
3.1