williamr@2: /*
williamr@2: * Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@2: * All rights reserved.
williamr@2: * This component and the accompanying materials are made available
williamr@2: * under the terms of the License "Eclipse Public License v1.0"
williamr@2: * which accompanies this distribution, and is available
williamr@2: * at the URL "http://www.eclipse.org/legal/epl-v10.html".
williamr@2: *
williamr@2: * Initial Contributors:
williamr@2: * Nokia Corporation - initial contribution.
williamr@2: *
williamr@2: * Contributors:
williamr@2: *
williamr@2: * Description: 
williamr@2: *
williamr@2: */
williamr@2: 
williamr@2: 
williamr@2: /**
williamr@2:  @file
williamr@2:  @publishedAll
williamr@2:  @released
williamr@2: */
williamr@2: 
williamr@2: 
williamr@2: #ifndef __RCPOINTERARRAY_H
williamr@2: #define __RCPOINTERARRAY_H
williamr@2: #include <e32cmn.h>
williamr@2: 
williamr@2: /** 
williamr@2:  * An array of pointers to objects, that adds close type behaviour.
williamr@2:  *
williamr@2:  * For use with C class pointers that are owned by the array. 
williamr@2:  * @see RCPointerArray
williamr@2:  * @since v7.0 
williamr@2:  */
williamr@2: template<class T> class RCPointerArray : public RPointerArray<T>
williamr@2: 	{
williamr@2:  public:
williamr@2: 	/** Constructor */
williamr@2: 	inline RCPointerArray();
williamr@2: 	/** Closes the array and frees all resources (including deleting objects in the array). */
williamr@2: 	inline void Close();
williamr@2: 	};
williamr@2: 
williamr@2: /** Default constructor. */
williamr@2: template <class T>
williamr@2: inline RCPointerArray<T>::RCPointerArray()
williamr@2: 	{
williamr@2: 	}
williamr@2: 
williamr@2: /**
williamr@2:  * Closes the array and frees all resources; this includes deleting the objects 
williamr@2:  * whose pointers are held by the array (i.e. it's the same as ResetAndDestroy()).
williamr@2:  */
williamr@2: template <class T>
williamr@2: inline void RCPointerArray<T>::Close()
williamr@2: 	{
williamr@2: 	this->ResetAndDestroy();
williamr@2: 	}
williamr@2: 
williamr@2: #endif