diff options
| author | Frank Reininghaus <[email protected]> | 2013-01-15 18:47:00 +0100 |
|---|---|---|
| committer | Frank Reininghaus <[email protected]> | 2013-01-15 18:47:51 +0100 |
| commit | 87ac18f0310c12f031dc7c639737473643a6ddc9 (patch) | |
| tree | ef8bad75778594b05e9f384e789220628e8a3cab /src/kitemviews/private/kfileitemmodelsortalgorithm.h | |
| parent | c652807a195d82e85df7b3aafc924a5f83ca590e (diff) | |
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.
Diffstat (limited to 'src/kitemviews/private/kfileitemmodelsortalgorithm.h')
| -rw-r--r-- | src/kitemviews/private/kfileitemmodelsortalgorithm.h | 41 |
1 files changed, 16 insertions, 25 deletions
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<KFileItemModel::ItemData*>::iterator begin, QList<KFileItemModel::ItemData*>::iterator end); +}; -private: - static void sequentialSort(KFileItemModel* model, - QList<KFileItemModel::ItemData*>::iterator begin, - QList<KFileItemModel::ItemData*>::iterator end); - - static void parallelSort(KFileItemModel* model, - QList<KFileItemModel::ItemData*>::iterator begin, - QList<KFileItemModel::ItemData*>::iterator end, - const int numberOfThreads); - - static void merge(KFileItemModel* model, - QList<KFileItemModel::ItemData*>::iterator begin, - QList<KFileItemModel::ItemData*>::iterator pivot, - QList<KFileItemModel::ItemData*>::iterator end); +template <typename RandomAccessIterator, typename LessThan> +static void sequentialSort(RandomAccessIterator begin, + RandomAccessIterator end, + LessThan lessThan); - static QList<KFileItemModel::ItemData*>::iterator - lowerBound(KFileItemModel* model, - QList<KFileItemModel::ItemData*>::iterator begin, - QList<KFileItemModel::ItemData*>::iterator end, - const KFileItemModel::ItemData* value); +template <typename RandomAccessIterator, typename LessThan> +static void parallelSort(RandomAccessIterator begin, + RandomAccessIterator end, + LessThan lessThan, + int numberOfThreads, + int parallelSortingThreshold = 100); - static QList<KFileItemModel::ItemData*>::iterator - upperBound(KFileItemModel* model, - QList<KFileItemModel::ItemData*>::iterator begin, - QList<KFileItemModel::ItemData*>::iterator end, - const KFileItemModel::ItemData* value); -}; +template <typename RandomAccessIterator, typename LessThan> +static void merge(RandomAccessIterator begin, + RandomAccessIterator pivot, + RandomAccessIterator end, + LessThan lessThan); #endif |
