widgetmodel/alfwidgetmodel/src/alfsort.cpp
changeset 17 3eca7e70b1b8
parent 3 4526337fb576
--- 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")
-    }
-