Symbian
Symbian Developer Library

SYMBIAN OS V9.4

Feedback

[Index] [Previous] [Next]

#include <e32base.inl>

CleanupDeletePushL(T *)

inline void CleanupDeletePushL(T *aPtr);

Description

Constructs and pushes a TCleanupItemTCleanupItem object onto the cleanup stack.

The TCleanupItemTCleanupItem encapsulates:

The cleanup operation is the private static function Delete() of the templated class CleanupDeleteCleanupDelete, and is called as a result of a subsequent call to CleanupStack::PopAndDestroy().

CleanupDelete::Delete(TAny *) is passed a pointer to the class T object to be cleaned up, and the function implements cleanup by deleting the passed object.

An example of its use:

...
CTestOne* one = new (ELeave) CTestOne;
CleanupDeletePushL(one);
...
CleanupStack::PopAndDestroy(); // <--- results in "one" being deleted.
...

Parameters

T *aPtr

A pointer to a templated class T type object for which the cleanup item is being created.

See also:

[Top]


CleanupArrayDeletePushL(T *)

inline void CleanupArrayDeletePushL(T *aPtr);

Description

Constructs and pushes a TCleanupItemTCleanupItem object onto the cleanup stack.

The TCleanupItemTCleanupItem encapsulates:

The cleanup operation is the private static function ArrayDelete() of the templated class CleanupArrayDeleteCleanupArrayDelete, and is called as a result of a subsequent call to CleanupStack::PopAndDestroy().

CleanupArrayDelete::ArrayDelete(TAny *) is passed a pointer to the array of class T objects to be cleaned up, and the function implements cleanup by deleting the passed array using the delete [] operator.

An example of its use:

...
RTestOne* one = new (ELeave) RTestOne [KSomeArraySize];
CleanupArrayDeletePushL(one);
... // Do something with the object.........
CleanupStack::PopAndDestroy(); // <--- results in the array "one" being deleted.
...

Parameters

T *aPtr

A pointer to an array of class T type objects for which the cleanup item is being created.

See also:

[Top]


CleanupClosePushL(T &)

inline void CleanupClosePushL(T &aRef);

Description

Constructs and pushes a TCleanupItemTCleanupItem object onto the cleanup stack.

The TCleanupItemTCleanupItem encapsulates:

1. a reference aRef to the object of type class T which is to be cleaned up

2. an associated cleanup operation.

The cleanup operation is the private static function Close() of the templated class CleanupCloseCleanupClose and is invoked as a result of a subsequent call to CleanupStack::PopAndDestroy().

CleanupClose::Close(TAny *) is passed a pointer to the class T object to be cleaned up, and the function implements cleanup by calling Close() on the passed object. The class T object must, therefore, define and implement (or inherit) a Close() member function.

An example of its use:

class RTestTwo;
    {
public :
    ...
    IMPORT_C void Close();
    ...
    }
...
RTestTwo two;
CleanupClosePushL(two);
...
CleanupStack::PopAndDestroy(); // <--- results in Close() being called on "two".
......

In practice, this type of cleanup operation is commonly applied to handles to resources; if such handles are constructed on the program stack, then it is important that such handles are closed.

Parameters

T &aRef

A reference to a class T type object for which the cleanup item is being created.

See also:

[Top]


CleanupReleasePushL(T &)

inline void CleanupReleasePushL(T &aRef);

Description

Constructs and pushes a TCleanupItemTCleanupItem object onto the cleanup stack.

The TCleanupItemTCleanupItem encapsulates:

1. a reference aRef to the object of type class T which is to be cleaned up

2. an associated cleanup operation.

The cleanup operation is the private static function Release() of the templated class CleanupReleaseCleanupRelease and is invoked as a result of a subsequent call to CleanupStack::PopAndDestroy().

CleanupRelease::Release(TAny *) is passed a pointer to the class T object to be cleaned up, and the function implements cleanup by calling Release() on the passed object. The class T object must, therefore, define and implement (or inherit) a Release() member function.

An example of its use:

class RTestThree;
    {
public :
    ...
    IMPORT_C void Release();
    ...
    }
...
RTestThree three;
CleanupReleasePushL(three);
...
CleanupStack::PopAndDestroy(); // <--- results in Release() being called on "three".
......

Parameters

T &aRef

A reference to a class T type object for which the cleanup item is being created.

See also: