How to use CleanupClosePushL()

The CleanupClosePushL() templated function constructs and pushes a TCleanupItem onto the cleanup stack.

The CleanupClosePushL() templated function constructs and pushes a TCleanupItem onto the cleanup stack. When CleanupStack::PopAndDestroy() is called, the Close() member function of the object encapsulated by the TCleanupItem is called.

...
RTestTwo two;
CleanupClosePushL(two);
...
CleanupStack::PopAndDestroy();
...

The TCleanupItem object encapsulates a reference to the RTestTwo object; the cleanup operation is the static function Close() of the templated class CleanupClose<class T>. This is implemented by simply calling the Close() member function of RTestTwo. This means that RTestTwo must define or inherit a member function Close() which performs whatever clean up is required.

Note

  • In practice, this type of cleanup operation is commonly applied to handles which are constructed on the program stack.