--- a/widgetmodel/alfwidgetmodel/src/alfsort.cpp Tue Feb 02 00:28:09 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,179 +0,0 @@
-/*
-* Copyright (c) 2006 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: sorting routine. uses Symbian services: User::QuickSort
-*
-*/
-
-
-//INCLUDES
-#include <e32std.h>
-#include <alf/ialfmap.h>
-#include <alf/alfvarianttype.h>
-#include <alf/ialfsortfunction.h>
-//#include "alf/alfperf.h"
-#include "alfsort.h"
-
-using namespace Alf;
-
-/**
-* Defines the characteristics of a key used
-* to access the elements of an array. Used for sort.
-* @since S60 ?S60_version
-*/
-NONSHARABLE_CLASS(AlfSortKey) : public TKey
- {
-public:
-
- /**
- * constructor
- *
- * @since S60 ?S60_version
- * @param aSortFunction callback interface for sort.
- * @param aArr array to sort.
- * @param aCount. count of items in the array.
- */
- AlfSortKey( const IAlfSortFunction& aSortFunction,
- IAlfVariantType** aArr, uint aCount );
-
- /**
- * returns data from array
- *
- * @since S60 ?S60_version
- * @param anIndex index to element to return
- * @return element at index anIndex.
- */
- TAny *At(TInt anIndex) const;
-
- /**
- * compares two items.
- *
- * @since S60 ?S60_version
- * @param aLeft index to the array for left parameter.
- * @return the value returned from sort function:
- * < 0, if aFirst is less than aSecond,
- * > 0 if aFirst is more than aSecond,
- * 0, if aFirst equals aSecond.
- */
- TInt Compare(TInt aLeft, TInt aRight) const;
-private:
-
- //sort function not owned.
- const IAlfSortFunction& iSortFunction;
-
- //array to sort. not owned
- IAlfVariantType** iArr;
-
- //count of items in array.
- uint iCount;
- };
-
-/**
-* Defines the basic behaviour for swapping two elements of an array.
-* Used for sort
-* @since S60 ?S60_version
-*/
-NONSHARABLE_CLASS(AlfSortSwap) : public TSwap
- {
-public:
-
- /**
- * constructor
- *
- * @since S60 ?S60_version
- * @param aArr array, which elements are to be swapped.
- * @param aCount. count of items in the array.
- */
- AlfSortSwap( IAlfVariantType** aArr, uint aCount );
-
- /**
- * swaps two items in the array.
- *
- * @since S60 ?S60_version
- * @param aLeft left index
- * @param aRight right index.
- */
- void Swap(TInt aLeft, TInt aRight) const;
-private:
-
- //array, which elements are to be swapped. Not owned.
- IAlfVariantType** iArr;
-
- //count of items in the array.
- uint iCount;
- };
-
-// ---------------------------------------------------------------------------
-// Description : constructor
-// ---------------------------------------------------------------------------
-//
-AlfSortKey::AlfSortKey( const IAlfSortFunction& aSortFunction,
- IAlfVariantType** aArr, uint aCount ) :
- iSortFunction(aSortFunction), iArr(aArr), iCount(aCount)
- {
- }
-
-// ---------------------------------------------------------------------------
-// Description : return element from index anIndex.
-// ---------------------------------------------------------------------------
-//
-TAny *AlfSortKey::At(TInt anIndex) const
- {
- return iArr[anIndex];
- }
-
-// ---------------------------------------------------------------------------
-// Description : compares two items.
-// ---------------------------------------------------------------------------
-//
-TInt AlfSortKey::Compare(TInt aLeft, TInt aRight) const
- {
- const IAlfMap* leftMap = iArr[aLeft]->map();
- const IAlfMap* rightMap = iArr[aRight]->map();
- return iSortFunction.compareLeafs( leftMap, rightMap );
- }
-
-// ---------------------------------------------------------------------------
-// Description : constructor
-// ---------------------------------------------------------------------------
-//
-AlfSortSwap::AlfSortSwap( IAlfVariantType** aArr, uint aCount ) :
- iArr(aArr), iCount(aCount)
- {
- }
-
-// ---------------------------------------------------------------------------
-// Description : swaps two items
-// ---------------------------------------------------------------------------
-//
-void AlfSortSwap::Swap(TInt aLeft, TInt aRight) const
- {
- IAlfVariantType* tmp = iArr[aLeft];
- iArr[aLeft] = iArr[aRight];
- iArr[aRight] = tmp;
- }
-
-// ---------------------------------------------------------------------------
-// Description : The sorting routine.
-// ---------------------------------------------------------------------------
-//
-void AlfSort::sort(IAlfVariantType** aArr, uint aCount,
- const IAlfSortFunction& aSortFunction )
- {
- //ALF_PERF_START( perfdata, "AlfSort-Sort-Sorting")
- AlfSortKey key(aSortFunction, aArr, aCount);
- AlfSortSwap swap(aArr, aCount);
- User::QuickSort( aCount, key, swap );
- //ALF_PERF_STOP( perfdata, "AlfSort-Sort-Sorting")
- }
-