diff -r 000000000000 -r 8466d47a6819 meetingrequest/mragnversit2/inc/esmrcleanuppointerarray.inl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/meetingrequest/mragnversit2/inc/esmrcleanuppointerarray.inl Thu Dec 17 08:39:21 2009 +0200 @@ -0,0 +1,55 @@ +/* +* Copyright (c) 2005 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: A class for simplifying cleanup of RPointerArrays +* +* +*/ + + +/** +Pushes an RPointerArray onto the cleanup stack. When popped with PopAndDestroy, +the array will be reset with ResetAndDestroy. +@param aRef The RPointerArray to be cleaned up. +@internalTechnology +*/ +template +inline void TCleanupPointerArray::PushL(T& aRef) + { + CleanupStack::PushL(TCleanupItem(&ResetAndDestroy, &aRef)); + } + +/** +Takes a pointer to an RPointerArray and calls ResetAndDestroy on it. +@param aPtr The RPointerArray +@internalTechnology +*/ +template +inline void TCleanupPointerArray::ResetAndDestroy(TAny* aPtr) + { + reinterpret_cast(aPtr)->ResetAndDestroy(); + } + +/** +Pushes an RPointerArray onto the cleanup stack. When popped with PopAndDestroy, +the array will be reset with ResetAndDestroy. +@param aRef The RPointerArray to be cleaned up. +@internalTechnology +*/ +template +inline void CleanupPointerArrayPushL(T& aRef) + { + TCleanupPointerArray::PushL(aRef); + } + +// End of file. \ No newline at end of file