CCleanup Class Reference

class CCleanup : public CBase

Implements the cleanup stack.

An object of this type is created and used by the cleanup stack interface, CTrapCleanup .

Inherits from

Public Member Functions
~CCleanup ()
IMPORT_C void Check ( TAny *)
IMPORT_C CCleanup * New ()
IMPORT_C CCleanup * NewL ()
IMPORT_C void NextLevel ()
IMPORT_C void Pop ()
IMPORT_C void Pop ( TInt )
IMPORT_C void PopAll ()
IMPORT_C void PopAndDestroy ()
IMPORT_C void PopAndDestroy ( TInt )
IMPORT_C void PopAndDestroyAll ()
IMPORT_C void PreviousLevel ()
IMPORT_C void PushL ( TAny *)
IMPORT_C void PushL ( CBase *)
IMPORT_C void PushL ( TCleanupItem )
Protected Member Functions
CCleanup ()
IMPORT_C void DoPop ( TInt , TBool )
IMPORT_C void DoPopAll ( TBool )
Inherited Functions
CBase::CBase()
CBase::Delete(CBase *)
CBase::Extension_(TUint,TAny *&,TAny *)
CBase::operator new(TUint)
CBase::operator new(TUint,TAny *)
CBase::operator new(TUint,TLeave)
CBase::operator new(TUint,TLeave,TUint)
CBase::operator new(TUint,TUint)
CBase::~CBase()
Protected Attributes
TCleanupStackItem * iBase
TCleanupStackItem * iNext
TCleanupStackItem * iTop

Constructor & Destructor Documentation

CCleanup()

IMPORT_C CCleanup ( ) [protected]

Default constructor.

~CCleanup()

IMPORT_C ~CCleanup ( )

Destructor.

Pops and destroys all items from the cleanup stack and then destroys the cleanup stack itself.

Member Functions Documentation

Check(TAny *)

IMPORT_C void Check ( TAny * aExpectedItem )

Checks that the cleanup item at the top of the cleanup stack represents a cleanup operation for the specified object.

Parameters

TAny * aExpectedItem The object which is the subject of the test.

DoPop(TInt, TBool)

IMPORT_C void DoPop ( TInt aCount,
TBool aDestroy
) [protected]

Provides an implementation for Pop() and PopAndDestroy() .

Parameters

TInt aCount The number of cleanup items to be popped from the cleanup stack.
TBool aDestroy ETrue, if cleanup is to be performed; EFalse, otherwise.

DoPopAll(TBool)

IMPORT_C void DoPopAll ( TBool aDestroy ) [protected]

Provides an implementation for PopAll() and PopAndDestroyAll() .

Parameters

TBool aDestroy ETrue, if cleanup is to be performed; EFalse, otherwise.

New()

IMPORT_C CCleanup * New ( ) [static]

Creates a new cleanup stack object.

The cleanup stack itself is allocated with enough space initially to hold a number of stack items.

NewL()

IMPORT_C CCleanup * NewL ( ) [static]

Creates a new cleanup stack object, and leaves if there is insufficient memory to create it.

The cleanup stack itself is allocated with enough space initially to hold a number of stack items.

NextLevel()

IMPORT_C void NextLevel ( )

Goes to the next cleanup level.

Pop()

IMPORT_C void Pop ( )

Pops a single cleanup item from the cleanup stack.

panic
E32USER-CBase 64 If there are no items on the cleanup stack.
panic
E32USER-CBase 63 If a cleanup level is crossed.

Pop(TInt)

IMPORT_C void Pop ( TInt aCount )

Pops the specified number of cleanup items from the cleanup stack.

panic
E32USER-CBase 70 If the specified number of cleanup items is negative.
panic
E32USER-CBase 64 If the specifed number of items is greater than the number of items on the cleanup stack.
panic
E32USER-CBase 63 If the specified number of items is such that it causes a cleanup level to be crossed.

Parameters

TInt aCount The number of cleanup items to be popped from the cleanup stack.

PopAll()

IMPORT_C void PopAll ( )

Pops all cleanup items at the current level, and then decrements the level.

PopAndDestroy()

IMPORT_C void PopAndDestroy ( )

Pops a single cleanup item from the cleanup stack, and invokes its cleanup operation.

panic
E32USER-CBase 64 If there are no items on the cleanup stack.
panic
E32USER-CBase 63 If a cleanup level is crossed.

PopAndDestroy(TInt)

IMPORT_C void PopAndDestroy ( TInt aCount )

Pops the specified number of cleanup items from the cleanup stack, and invokes their cleanup operations.

panic
E32USER-CBase 70 If the specified number of cleanup items is negative.
panic
E32USER-CBase 64 If the specifed number of items is greater than the number of items on the cleanup stack.
panic
E32USER-CBase 63 If the specified number of items is such that it causes a cleanup level to be crossed.

Parameters

TInt aCount The number of cleanup items to be popped from the cleanup stack.

PopAndDestroyAll()

IMPORT_C void PopAndDestroyAll ( )

Pops all cleanup items at the current level, invokes their cleanup operations and then decrements the level.

PreviousLevel()

IMPORT_C void PreviousLevel ( )

Goes to the previous cleanup level.

panic
E32USER-CBase 71 If the previous stack item does not represent a cleanup level.

PushL(TAny *)

IMPORT_C void PushL ( TAny * aPtr )

Pushes a cleanup item onto the cleanup stack.

The cleanup item represents an operation that frees the specified heap cell.

Parameters

TAny * aPtr A pointer to a heap cell that will be freed by the cleanup operation.

PushL(CBase *)

IMPORT_C void PushL ( CBase * anObject )

Pushes a cleanup item onto the cleanup stack.

The cleanup item represents an operation that deletes the specified CBase derived object.

Parameters

CBase * anObject A pointer to CBase derived object that will be deleted by the cleanup operation.

PushL(TCleanupItem)

IMPORT_C void PushL ( TCleanupItem anItem )

Pushes a cleanup item onto the cleanup stack.

The cleanup item represents a call back operation that performs the required cleanup.

CleanupClosePushL CleanupReleasePushL CleanupDeletePushL

Parameters

TCleanupItem anItem Encapsulates a cleanup operation and an object on which the cleanup operation is to be performed.

Member Data Documentation

TCleanupStackItem * iBase

TCleanupStackItem * iBase [protected]

Pointer to the bottom of the cleanup stack.

TCleanupStackItem * iNext

TCleanupStackItem * iNext [protected]

Pointer to the next availaible slot in the cleanup stack.

TCleanupStackItem * iTop

TCleanupStackItem * iTop [protected]

Pointer to the top of the cleanup stack.