class CleanupStack |
A collection of static functions that are used to add resources to and remove resources from the cleanup stack.
Public Member Functions | |
---|---|
IMPORT_C void | Check(TAny *) |
IMPORT_C void | Pop() |
IMPORT_C void | Pop(TInt) |
void | Pop(TAny *) |
void | Pop(TInt, TAny *) |
IMPORT_C void | PopAndDestroy() |
IMPORT_C void | PopAndDestroy(TInt) |
void | PopAndDestroy(TAny *) |
void | PopAndDestroy(TInt, TAny *) |
IMPORT_C void | PushL(TAny *) |
IMPORT_C void | PushL(CBase *) |
IMPORT_C void | PushL(TCleanupItem) |
IMPORT_C void | Check | ( | TAny * | aExpectedItem | ) | [static] |
Checks that the specified object is at the top of the cleanup stack.
If the specified item is not at the top of the cleanup stack, then the function raises an E32USER-CBase 90 panic.
The function is part of Symbian OS in both debug and release builds, and is an aid to debugging.
TAny * aExpectedItem | A pointer to the item expected to be at the top of the cleanup stack. |
IMPORT_C void | Pop | ( | ) | [static] |
Pops an object previously pushed onto the cleanup stack by CleanupStack::PushL().
After an object has been successfully constructed and stored within another object, it cannot be orphaned and, therefore, the object (i.e. a pointer or a cleanup item) can be popped from the cleanup stack.
If no cleanup stack has been allocated, or there is nothing on the stack, a panic is raised.
IMPORT_C void | Pop | ( | TInt | aCount | ) | [static] |
Pops a specified number of objects previously pushed onto the cleanup stack by CleanupStack::PushL().
After an object has been successfully constructed and stored within another object, it cannot be orphaned and, therefore, the object(s), that is, pointers and cleanup items can be popped from the cleanup stack.
If no cleanup stack has been allocated, or there is nothing on the stack, a panic is raised.
TInt aCount | The number of objects to be popped off the cleanup stack. |
void | Pop | ( | TAny * | aExpectedItem | ) | [static, inline] |
Pops an object from the top of the cleanup stack.
The function has two modes of operation, depending on whether it is part of a debug build or a release build.
1. In a debug build, the function checks that the specified item is at the top of the cleanup stack before attempting to pop it; an E32USER-CBase 90 panic is raised if the check fails.
2 In a release build, the function just pops the object which is at the top of the cleanup stack; no checking is done.
TAny * aExpectedItem | A pointer to the item expected to be at the top of the cleanup stack. In a release build, this parameter is not used. |
void | Pop | ( | TInt | aCount, |
TAny * | aLastExpectedItem | |||
) | [static, inline] |
Pops the specified number of objects from the top of the cleanup stack.
The function has two modes of operation, depending on whether it is part of a debug build or a release build.
1. In a debug build, the function pops (aCount-1) items from the cleanup stack, and then checks that the specified item is the next one on the cleanup stack before attempting to pop it; an E32USER-CBase 90 panic is raised if the check fails.
2. In a release build, the function just pops aCount items from the cleanup stack; no checking is done.
IMPORT_C void | PopAndDestroy | ( | ) | [static] |
Pops and cleans up an item pushed onto the stack.
If the item on the stack is a CBase* pointer, the pointer is removed from the stack and the object is destroyed with delete.
If the item on the stack is a TAny* pointer, the pointer is removed from the stack and the memory occupied by the object is freed with User::Free().
If the item on the stack is a cleanup item, i.e. an object of type TCleanupItem, the item is removed from the stack and the cleanup operation defined during construction of the TCleanupItem object is invoked.
If no cleanup stack has been allocated, or there is nothing on the stack, a panic occurs.
IMPORT_C void | PopAndDestroy | ( | TInt | aCount | ) | [static] |
Pops and cleans up the specified number of items pushed onto the stack.
If an item on the stack is a CBase* pointer, the pointer is removed from the stack and the object is destroyed with delete.
If an item on the stack is a TAny* pointer, the pointer is removed from the stack and the memory occupied by the object is freed with User::Free().
If an item on the stack is a cleanup item, i.e. an object of type TCleanupItem, the item is removed from the stack and the cleanup operation defined during construction of the TCleanupItem object is invoked.
If no cleanup stack has been allocated, or there is nothing on the stack, a panic occurs.
TInt aCount | The number of objects to be popped off the cleanup stack and destroyed. |
void | PopAndDestroy | ( | TAny * | aExpectedItem | ) | [static, inline] |
Pops an object from the top of the cleanup stack, and cleans it up.
The function has two modes of operation, depending on whether it is part of a debug build or a release build.
1. In a debug build, the function checks that the specified item is at the top of the cleanup stack before attempting to pop and clean it up; an E32USER-CBase 90 panic is raised if the check fails.
2. In a release build, the function just pops and cleans up the object at the top of the cleanup stack; no checking is done.
TAny * aExpectedItem | A pointer to the item expected to be at the top of the cleanup stack. In a release build, this parameter is not used. |
void | PopAndDestroy | ( | TInt | aCount, |
TAny * | aLastExpectedItem | |||
) | [static, inline] |
Pops the specified number of objects from the top of the cleanup stack, and cleans them up.
The function has two modes of operation, depending on whether it is part of a debug build or a release build.
1. In a debug build, the function pops and cleans up (aCount-1) items from the cleanup stack, and then checks that the specified item is the next one on the cleanup stack before attempting to pop it and clean it up; an E32USER-CBase 90 panic is raised if the check fails.
2. In a release build, the function just pops and cleans up aCount items from the cleanup stack; no checking is done.
IMPORT_C void | PushL | ( | TAny * | aPtr | ) | [static] |
Pushes a pointer to an object onto the cleanup stack.
If a leave occurs while an object is on the stack, it is cleaned up automatically. Untyped objects are cleaned up with User::Free() (a rather limited form of cleanup, not even the C++ destructor is called).
Typically, when an object has been fully constructed and it can be guaranteed that a pointer to this new object is stored in some other object before a leave occurs, issue CleanupStack::Pop() to pop it back off the stack.
If no cleanup stack has been allocated, a panic occurs.
It is guaranteed that the object is pushed onto the cleanup stack. However, this function may leave if a stack frame for the next PushL() cannot be allocated. In this case, the cleanup stack will be cleaned up as normal, and no extra programmer intervention is needed.
TAny * aPtr | Pointer to any object. If cleanup is necessary, the object will be freed by User::Free(), which does not invoke any destructor: it simply frees its memory |
IMPORT_C void | PushL | ( | CBase * | aPtr | ) | [static] |
Pushes a pointer to an object onto the cleanup stack.
If a leave occurs while an object is on the stack, it is cleaned up automatically. CBase derived objects are cleaned up with delete.
Typically, when an object has been fully constructed and it can be guaranteed that a pointer to this new object is stored in some other object before a leave occurs, issue CleanupStack::Pop() to pop it back off the stack.
If no cleanup stack has been allocated, a panic occurs.
It is guaranteed that the object is pushed onto the cleanup stack. However, this function may leave if a stack frame for the next PushL() cannot be allocated. In this case, the cleanup stack will be cleaned up as normal, and no extra programmer intervention is needed.
CBase * aPtr | Pointer to a CBase-derived object. If cleanup is necessary, the object will be freed by delete, thus invoking its destructor, and freeing its memory. |
IMPORT_C void | PushL | ( | TCleanupItem | anItem | ) | [static] |
Pushes a cleanup item onto the cleanup stack.
If a leave occurs while a cleanup item is on the stack, the cleanup operation defined in the construction of the TCleanupItem, is invoked.
Typically, when an object has been fully constructed and it can be guaranteed that a pointer to this new object is stored in some other object before a leave occurs, issue CleanupStack::Pop() to pop it back off the stack.
If no cleanup stack has been allocated, a panic occurs.
It is guaranteed that the object is pushed onto the cleanup stack. However, this function may leave if a stack frame for the next PushL() cannot be allocated. In this case, the cleanup stack will be cleaned up as normal, and no extra programmer intervention is needed.
TCleanupItem anItem | A cleanup item. If cleanup is necessary, the cleanup operation defined in the construction of anItem is called. |
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.