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

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

#include <qtconcurrentmapkernel.h>

Class 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.

+ Inheritance diagram for MappedReducedKernel< ReducedResultType, Iterator, MapFunctor, ReduceFunctor, Reducer >:

Public Types

typedef ReducedResultType ReturnType
 
typedef ReducedResultType ResultType
 
- Public Types inherited from IterateKernel< Iterator, ReducedResultType >
typedef ReducedResultType ResultType
 
- Public Types inherited from ThreadEngine< ReducedResultType >
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 ()
 
- Public Member Functions inherited from IterateKernel< Iterator, ReducedResultType >
 IterateKernel (Iterator _begin, Iterator _end)
 
virtual ~IterateKernel ()
 
void start ()
 
bool shouldStartThread ()
 
ThreadFunctionResult threadFunction ()
 
ThreadFunctionResult forThreadFunction ()
 
ThreadFunctionResult whileThreadFunction ()
 
- Public Member Functions inherited from ThreadEngine< ReducedResultType >
QFutureInterface< ReducedResultType > * futureInterfaceTyped ()
 
ReducedResultType * startSingleThreaded ()
 
ReducedResultType * startBlocking ()
 
QFuture< ReducedResultType > startAsynchronously ()
 
void asynchronousFinish ()
 
void reportResult (const ReducedResultType *_result, int index=-1)
 
void reportResults (const QVector< ReducedResultType > &_result, int index=-1, int count=-1)
 
- Public Member Functions inherited from ThreadEngineBase
 ThreadEngineBase ()
 
virtual ~ThreadEngineBase ()
 
void startSingleThreaded ()
 
void startBlocking ()
 
void startThread ()
 
bool isCanceled ()
 
void waitForResume ()
 
bool isProgressReportingEnabled ()
 
void setProgressValue (int progress)
 
void setProgressRange (int minimum, int maximum)
 
void acquireBarrierSemaphore ()
 
- Public Member Functions inherited from QRunnable
 QRunnable ()
 
virtual ~QRunnable ()
 
bool autoDelete () const
 
void setAutoDelete (bool _autoDelete)
 

Additional Inherited Members

- Public Attributes inherited from IterateKernel< Iterator, ReducedResultType >
const Iterator begin
 
const Iterator end
 
Iterator current
 
QAtomicInt currentIndex
 
bool forIteration
 
QAtomicInt iteratorThreads
 
int iterationCount
 
bool progressReportingEnabled
 
QAtomicInt completed
 
- Protected Attributes inherited from ThreadEngineBase
QFutureInterfaceBasefutureInterface
 
QThreadPoolthreadPool
 
ThreadEngineBarrier barrier
 
QtConcurrent::internal::ExceptionStore exceptionStore
 

Member Typedef Documentation

typedef ReducedResultType ReturnType

Definition at line 104 of file qtconcurrentmapkernel.h.

typedef ReducedResultType ResultType

Definition at line 159 of file qtconcurrentmapkernel.h.

Constructor & Destructor Documentation

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

Definition at line 105 of file qtconcurrentmapkernel.h.

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

Definition at line 109 of file qtconcurrentmapkernel.h.

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

Member Function Documentation

bool runIteration ( Iterator  it,
int  index,
ReducedResultType *   
)
inlinevirtual

Reimplemented from IterateKernel< Iterator, ReducedResultType >.

Definition at line 115 of file qtconcurrentmapkernel.h.

116  {
117  IntermediateResults<typename MapFunctor::result_type> results;
118  results.begin = index;
119  results.end = index + 1;
120 
121  results.vector.append(map(*it));
122  reducer.runReduce(reduce, reducedResult, results);
123  return false;
124  }
GLuint index
Definition: GLee.h:1704
bool runIterations ( Iterator  sequenceBeginIterator,
int  begin,
int  end,
ReducedResultType *   
)
inlinevirtual

Reimplemented from IterateKernel< Iterator, ReducedResultType >.

Definition at line 126 of file qtconcurrentmapkernel.h.

127  {
128  IntermediateResults<typename MapFunctor::result_type> results;
129  results.begin = begin;
130  results.end = end;
131  results.vector.reserve(end - begin);
132 
133  Iterator it = sequenceBeginIterator;
134  advance(it, begin);
135  for (int i = begin; i < end; ++i) {
136  results.vector.append(map(*(it)));
137  advance(it, 1);
138  }
139 
140  reducer.runReduce(reduce, reducedResult, results);
141  return false;
142  }
GLuint GLuint end
Definition: GLee.h:872
void finish ( )
inlinevirtual

Reimplemented from ThreadEngineBase.

Definition at line 144 of file qtconcurrentmapkernel.h.

145  {
146  reducer.finish(reduce, reducedResult);
147  }
bool shouldThrottleThread ( )
inlinevirtual

Reimplemented from ThreadEngineBase.

Definition at line 149 of file qtconcurrentmapkernel.h.

150  {
151  return IterateKernel<Iterator, ReducedResultType>::shouldThrottleThread() || reducer.shouldThrottle();
152  }
bool shouldStartThread ( )
inlinevirtual

Reimplemented from ThreadEngineBase.

Definition at line 154 of file qtconcurrentmapkernel.h.

155  {
156  return IterateKernel<Iterator, ReducedResultType>::shouldStartThread() && reducer.shouldStartThread();
157  }
ReducedResultType* result ( )
inlinevirtual

Reimplemented from ThreadEngine< ReducedResultType >.

Definition at line 160 of file qtconcurrentmapkernel.h.

161  {
162  return &reducedResult;
163  }

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