| author | Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> | 
| Tue, 27 Apr 2010 17:51:07 +0300 | |
| branch | RCL_3 | 
| changeset 9 | 2492a6e4aed7 | 
| parent 0 | 3553901f7fa8 | 
| permissions | -rw-r--r-- | 
| 0 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 1 | // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 2 | // All rights reserved. | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 3 | // This component and the accompanying materials are made available | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 4 | // under the terms of "Eclipse Public License v1.0" | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 5 | // which accompanies this distribution, and is available | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 6 | // at the URL "http://www.eclipse.org/legal/epl-v10.html". | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 7 | // | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 8 | // Initial Contributors: | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 9 | // Nokia Corporation - initial contribution. | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 10 | // | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 11 | // Contributors: | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 12 | // | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 13 | // Description: | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 14 | // | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 15 | |
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 16 | /** | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 17 | @file | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 18 | @internalComponent | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 19 | */ | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 20 | |
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 21 | #ifndef SMSSTACKUTILS_H | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 22 | #define SMSSTACKUTILS_H | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 23 | |
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 24 | template <class T> | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 25 | class CleanupResetAndDestroy | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 26 |     {
 | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 27 | public: | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 28 | /** | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 29 | Puts an item on the cleanup stack. | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 30 | |
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 31 | @param aRef | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 32 | The implementation information to be put on the cleanup stack. | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 33 | */ | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 34 | inline static void PushL(T& aRef); | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 35 | private: | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 36 | static void ResetAndDestroy(TAny *aPtr); | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 37 | }; | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 38 | template <class T> | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 39 | inline void CleanupResetAndDestroyPushL(T& aRef); | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 40 | template <class T> | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 41 | inline void CleanupResetAndDestroy<T>::PushL(T& aRef) | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 42 |     {CleanupStack::PushL(TCleanupItem(&ResetAndDestroy,&aRef));}
 | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 43 | template <class T> | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 44 | void CleanupResetAndDestroy<T>::ResetAndDestroy(TAny *aPtr) | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 45 |     {(STATIC_CAST(T*,aPtr))->ResetAndDestroy();}
 | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 46 | template <class T> | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 47 | inline void CleanupResetAndDestroyPushL(T& aRef) | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 48 |     {CleanupResetAndDestroy<T>::PushL(aRef);}
 | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 49 | |
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 50 | #endif /* SMSSTACKUTILS_H */ | 
| 
3553901f7fa8
Revision: 201005
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 51 |