MappedReducedKernel< ReducedResultType, Iterator, MapFunctor, ReduceFunctor, Reducer > Class Template Reference


Detailed Description

template<typename ReducedResultType, typename Iterator, typename MapFunctor, typename ReduceFunctor, typename Reducer = ReduceKernel<ReduceFunctor, ReducedResultType, typename MapFunctor::result_type>>
class QtConcurrent::MappedReducedKernel< ReducedResultType, Iterator, MapFunctor, ReduceFunctor, Reducer >

Definition at line 97 of file qtconcurrentmapkernel.h.

#include <qtconcurrentmapkernel.h>

Inheritance diagram for MappedReducedKernel< ReducedResultType, Iterator, MapFunctor, ReduceFunctor, Reducer >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef ReducedResultType  ReturnType
typedef ReducedResultType  ResultType

Public Member Functions

  MappedReducedKernel (Iterator begin, Iterator end, MapFunctor _map, ReduceFunctor _reduce, ReduceOptions reduceOptions)
  MappedReducedKernel (ReducedResultType initialValue, MapFunctor _map, ReduceFunctor _reduce)
bool  runIteration (Iterator it, int index, ReducedResultType *)
bool  runIterations (Iterator sequenceBeginIterator, int begin, int end, ReducedResultType *)
void  finish ()
bool  shouldThrottleThread ()
bool  shouldStartThread ()
ReducedResultType *  result ()

Member Typedef Documentation

typedef ReducedResultType ReturnType
typedef ReducedResultType ResultType

Constructor & Destructor Documentation

MappedReducedKernel ( Iterator  begin,
Iterator  end,
MapFunctor  _map,
ReduceFunctor  _reduce,
ReduceOptions  reduceOptions 
) [inline]

Definition at line 105 of file qtconcurrentmapkernel.h.

        : IterateKernel<Iterator, ReducedResultType>(begin, end), reducedResult(), map(_map), reduce(_reduce), reducer(reduceOptions)
    { }
MappedReducedKernel ( ReducedResultType  initialValue,
MapFunctor  _map,
ReduceFunctor  _reduce 
) [inline]

Definition at line 109 of file qtconcurrentmapkernel.h.

        : reducedResult(initialValue), map(_map), reduce(_reduce)
    { }

Member Function Documentation

bool runIteration ( Iterator  it,
int  index,
ReducedResultType *   
) [inline, virtual]

Reimplemented from IterateKernel< Iterator, ReducedResultType >.

Definition at line 115 of file qtconcurrentmapkernel.h.

    {
        IntermediateResults<typename MapFunctor::result_type> results;
        results.begin = index;
        results.end = index + 1;

        results.vector.append(map(*it));
        reducer.runReduce(reduce, reducedResult, results);
        return false;
    }
bool runIterations ( Iterator  sequenceBeginIterator,
int  begin,
int  end,
ReducedResultType *   
) [inline, virtual]

Reimplemented from IterateKernel< Iterator, ReducedResultType >.

Definition at line 126 of file qtconcurrentmapkernel.h.

    {
        IntermediateResults<typename MapFunctor::result_type> results;
        results.begin = begin;
        results.end = end;
        results.vector.reserve(end - begin);

        Iterator it = sequenceBeginIterator;
        advance(it, begin);
        for (int i = begin; i < end; ++i) {
            results.vector.append(map(*(it)));
            advance(it, 1);
        }

        reducer.runReduce(reduce, reducedResult, results);
        return false;
    }
void finish ( ) [inline, virtual]

Reimplemented from ThreadEngineBase.

Definition at line 144 of file qtconcurrentmapkernel.h.

    {
        reducer.finish(reduce, reducedResult);
    }
bool shouldThrottleThread ( ) [inline, virtual]

Reimplemented from ThreadEngineBase.

Definition at line 149 of file qtconcurrentmapkernel.h.

    {
        return IterateKernel<Iterator, ReducedResultType>::shouldThrottleThread() || reducer.shouldThrottle();
    }
bool shouldStartThread ( ) [inline, virtual]
ReducedResultType* result ( ) [inline, virtual]

Reimplemented from ThreadEngine< ReducedResultType >.

Definition at line 160 of file qtconcurrentmapkernel.h.

    {
        return &reducedResult;
    }

The documentation for this class was generated from the following file: