| author | William Roberts <williamr@symbian.org> |
| Wed, 31 Mar 2010 12:33:34 +0100 | |
| branch | Symbian3 |
| changeset 4 | 837f303aceeb |
| parent 2 | 2fe1408b6811 |
| permissions | -rw-r--r-- |
| williamr@2 | 1 |
/* |
| williamr@2 | 2 |
* Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies). |
| williamr@2 | 3 |
* All rights reserved. |
| williamr@2 | 4 |
* This component and the accompanying materials are made available |
| williamr@2 | 5 |
* under the terms of the License "Eclipse Public License v1.0" |
| williamr@2 | 6 |
* which accompanies this distribution, and is available |
| williamr@2 | 7 |
* at the URL "http://www.eclipse.org/legal/epl-v10.html". |
| williamr@2 | 8 |
* |
| williamr@2 | 9 |
* Initial Contributors: |
| williamr@2 | 10 |
* Nokia Corporation - initial contribution. |
| williamr@2 | 11 |
* |
| williamr@2 | 12 |
* Contributors: |
| williamr@2 | 13 |
* |
| williamr@2 | 14 |
* Description: |
| williamr@2 | 15 |
* |
| williamr@2 | 16 |
*/ |
| williamr@2 | 17 |
|
| williamr@2 | 18 |
|
| williamr@2 | 19 |
/** |
| williamr@2 | 20 |
@file |
| williamr@2 | 21 |
@publishedAll |
| williamr@2 | 22 |
@released |
| williamr@2 | 23 |
*/ |
| williamr@2 | 24 |
|
| williamr@2 | 25 |
#ifndef __RMPOINTERARRAY_H__ |
| williamr@2 | 26 |
#define __RMPOINTERARRAY_H__ |
| williamr@2 | 27 |
|
| williamr@2 | 28 |
|
| williamr@2 | 29 |
/** |
| williamr@2 | 30 |
* An array of pointers to objects, that adds close type behaviour. |
| williamr@2 | 31 |
* |
| williamr@2 | 32 |
* For use with M class pointers, which have a release method and are owned by |
| williamr@2 | 33 |
* the array. When the array is closed, the objects will be released. |
| williamr@2 | 34 |
* |
| williamr@2 | 35 |
* @see RMPointerArray |
| williamr@2 | 36 |
* @since v7.0 |
| williamr@2 | 37 |
*/ |
| williamr@2 | 38 |
template<class T> class RMPointerArray : public RPointerArray<T> |
| williamr@2 | 39 |
{
|
| williamr@2 | 40 |
public: |
| williamr@2 | 41 |
/** Constructor */ |
| williamr@2 | 42 |
inline RMPointerArray(); |
| williamr@2 | 43 |
/** Frees all resources, calling Release() on the contents of the array */ |
| williamr@2 | 44 |
inline void Close(); |
| williamr@2 | 45 |
}; |
| williamr@2 | 46 |
|
| williamr@2 | 47 |
/** Default constructor. */ |
| williamr@2 | 48 |
template <class T> |
| williamr@2 | 49 |
inline RMPointerArray<T>::RMPointerArray() |
| williamr@2 | 50 |
{
|
| williamr@2 | 51 |
} |
| williamr@2 | 52 |
|
| williamr@2 | 53 |
/** |
| williamr@2 | 54 |
* Closes the array and frees all resources; this includes deleting the objects |
| williamr@2 | 55 |
* whose pointers are held by the array. |
| williamr@2 | 56 |
*/ |
| williamr@2 | 57 |
template <class T> |
| williamr@2 | 58 |
inline void RMPointerArray<T>::Close() |
| williamr@2 | 59 |
{
|
| williamr@2 | 60 |
TInt count = this->Count(); |
| williamr@2 | 61 |
for (TInt ii = 0; ii < count; ii++) |
| williamr@2 | 62 |
(*this)[ii]->Release(); |
| williamr@2 | 63 |
this->Reset(); |
| williamr@2 | 64 |
} |
| williamr@2 | 65 |
|
| williamr@2 | 66 |
#endif |