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