diff -r f5050f1da672 -r 04becd199f91 javaextensions/satsa/framework/inc/stscommon.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javaextensions/satsa/framework/inc/stscommon.h Tue Apr 27 16:30:29 2010 +0300 @@ -0,0 +1,50 @@ +/* +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: + * +*/ + + +#ifndef STSCOMMON_H +#define STSCOMMON_H + +// Enables pushing a call to ResetAndDestroy into cleanup stack + +template +class CleanupResetAndDestroy +{ +public: + inline static void PushL(T& aRef); +private: + static void ResetAndDestroy(TAny *aPtr); +}; +template +inline void CleanupResetAndDestroyPushL(T& aRef); +template +inline void CleanupResetAndDestroy::PushL(T& aRef) +{ + CleanupStack::PushL(TCleanupItem(&ResetAndDestroy, &aRef)); +} +template +void CleanupResetAndDestroy::ResetAndDestroy(TAny *aPtr) +{ + (STATIC_CAST(T*,aPtr))->ResetAndDestroy(); +} +template +inline void CleanupResetAndDestroyPushL(T& aRef) +{ + CleanupResetAndDestroy::PushL(aRef); +} + +#endif // STSCOMMON_H