From 87ac18f0310c12f031dc7c639737473643a6ddc9 Mon Sep 17 00:00:00 2001 From: Frank Reininghaus Date: Tue, 15 Jan 2013 18:47:00 +0100 Subject: Change the sort and merge functions to a more generic form. This might make it easier to reuse the parallel sorting code. Moreover, some the upperBound/lowerBound functions have been removed because equivalents are provided by the STL. --- .../private/kfileitemmodelsortalgorithm.h | 41 +++++++++------------- 1 file changed, 16 insertions(+), 25 deletions(-) (limited to 'src/kitemviews/private/kfileitemmodelsortalgorithm.h') diff --git a/src/kitemviews/private/kfileitemmodelsortalgorithm.h b/src/kitemviews/private/kfileitemmodelsortalgorithm.h index b86d490aa..6e6db7d5e 100644 --- a/src/kitemviews/private/kfileitemmodelsortalgorithm.h +++ b/src/kitemviews/private/kfileitemmodelsortalgorithm.h @@ -42,34 +42,25 @@ public: static void sort(KFileItemModel* model, QList::iterator begin, QList::iterator end); +}; -private: - static void sequentialSort(KFileItemModel* model, - QList::iterator begin, - QList::iterator end); - - static void parallelSort(KFileItemModel* model, - QList::iterator begin, - QList::iterator end, - const int numberOfThreads); - - static void merge(KFileItemModel* model, - QList::iterator begin, - QList::iterator pivot, - QList::iterator end); +template +static void sequentialSort(RandomAccessIterator begin, + RandomAccessIterator end, + LessThan lessThan); - static QList::iterator - lowerBound(KFileItemModel* model, - QList::iterator begin, - QList::iterator end, - const KFileItemModel::ItemData* value); +template +static void parallelSort(RandomAccessIterator begin, + RandomAccessIterator end, + LessThan lessThan, + int numberOfThreads, + int parallelSortingThreshold = 100); - static QList::iterator - upperBound(KFileItemModel* model, - QList::iterator begin, - QList::iterator end, - const KFileItemModel::ItemData* value); -}; +template +static void merge(RandomAccessIterator begin, + RandomAccessIterator pivot, + RandomAccessIterator end, + LessThan lessThan); #endif -- cgit v1.3.1