|
||
typedef void(* TCleanupOperation)(TAny*);
Defines a function which takes a single argument of type TAny* and returns void.
An argument of this type is required by the constructors of a TCleanupItem
TCleanupItem
object.
inline void CleanupDeletePushL(T *aPtr);
Constructs and pushes a TCleanupItem
TCleanupItem
object onto the cleanup stack.
The TCleanupItem
TCleanupItem
encapsulates:
the pointer aPtr to the object of type class T which is to be cleaned up
an associated cleanup operation.
The cleanup operation is the private static function Delete() of the templated class CleanupDelete
CleanupDelete
, 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.
...
|
TCleanupItem
TCleanupItem
...CleanupDelete
CleanupDelete
A utility class used by the templated function CleanupDeletePushL(T *) to create...CleanupStack::PopAndDestroy()
Pops and cleans up an item pushed onto the stack.inline void CleanupArrayDeletePushL(T *aPtr);
Constructs and pushes a TCleanupItem
TCleanupItem
object onto the cleanup stack.
The TCleanupItem
TCleanupItem
encapsulates:
the pointer aPtr to an array of type class T objects to be cleaned up
an associated cleanup operation.
The cleanup operation is the private static function ArrayDelete() of the templated class CleanupArrayDelete
CleanupArrayDelete
, 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.
...
|
TCleanupItem
TCleanupItem
...CleanupArrayDelete
CleanupArrayDelete
A utility class used by the templated function CleanupArrayDeletePushL(T *) to c...CleanupStack::PopAndDestroy()
Pops and cleans up an item pushed onto the stack.inline void CleanupClosePushL(T &aRef);
Constructs and pushes a TCleanupItem
TCleanupItem
object onto the cleanup stack.
The TCleanupItem
TCleanupItem
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 CleanupClose
CleanupClose
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.
|
TCleanupItem
TCleanupItem
...CleanupClose
CleanupClose
A utility class used by the templated function CleanupClosePushL(T &) to cre...CleanupStack::PopAndDestroy()
Pops and cleans up an item pushed onto the stack.inline void CleanupReleasePushL(T &aRef);
Constructs and pushes a TCleanupItem
TCleanupItem
object onto the cleanup stack.
The TCleanupItem
TCleanupItem
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 CleanupRelease
CleanupRelease
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".
......
|
TCleanupItem
TCleanupItem
...CleanupRelease
CleanupRelease
A utility class used by the templated function CleanupReleasePushL(T &) to c...CleanupStack::PopAndDestroy()
Pops and cleans up an item pushed onto the stack.