contentstorage/cautils/inc/caarraycleanup.inl
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 03 May 2010 12:48:45 +0300
changeset 66 32469d7d46ff
parent 60 f62f87b200ec
permissions -rw-r--r--
Revision: 201015 Kit: 201018

/*
 * 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:  ?Description
 *
 */

#ifndef CA_CLENAUPARRAY_
#define CA_CLENAUPARRAY_

/**
 * Cleanup support method. Call ResetAndDestroy() on the array.
 * @param RPointerArray* as TAny*
 */
template<class T>
inline void ArrayResetAndDestroy( TAny* aArray )
    {
    ( reinterpret_cast<RPointerArray<T>*> ( aArray ) )->ResetAndDestroy();
    }

/**
 * Push a ResetAndDestroy() on the cleanup stack.
 * @param aArray Array.
 */
template<class T>
inline void CleanupResetAndDestroyPushL( RPointerArray<T>& aArray )
    {
    void(*pointerToFunction)( TAny* ) = ArrayResetAndDestroy<T>;
    TCleanupItem item( pointerToFunction,
            reinterpret_cast<TAny*> ( &aArray ) );
    CleanupStack::PushL( item );
    }

#endif