FilterKernel< Sequence, KeepFunctor, ReduceFunctor > Class Template Reference

FilterKernel< Sequence, KeepFunctor, ReduceFunctor > Class Template Reference

#include <qtconcurrentfilterkernel.h>

Class Description

template<typename Sequence, typename KeepFunctor, typename ReduceFunctor>
class QtConcurrent::FilterKernel< Sequence, KeepFunctor, ReduceFunctor >

Definition at line 82 of file qtconcurrentfilterkernel.h.

+ Inheritance diagram for FilterKernel< Sequence, KeepFunctor, ReduceFunctor >:

Public Types

typedef void ReturnType
 
typedef void ResultType
 
- Public Types inherited from IterateKernel< Sequence::const_iterator, void >
typedef void ResultType
 
- Public Types inherited from ThreadEngine< void >
typedef void ResultType
 

Public Member Functions

 FilterKernel (Sequence &_sequence, KeepFunctor _keep, ReduceFunctor _reduce)
 
bool runIteration (typename Sequence::const_iterator it, int index, T *)
 
bool runIterations (typename Sequence::const_iterator sequenceBeginIterator, int begin, int end, T *)
 
void finish ()
 
bool shouldThrottleThread ()
 
bool shouldStartThread ()
 
- Public Member Functions inherited from IterateKernel< Sequence::const_iterator, void >
 IterateKernel (Sequence::const_iterator _begin, Sequence::const_iterator _end)
 
virtual ~IterateKernel ()
 
virtual bool runIteration (Sequence::const_iterator it, int index, void *result)
 
virtual bool runIterations (Sequence::const_iterator _begin, int beginIndex, int endIndex, void *results)
 
void start ()
 
bool shouldStartThread ()
 
ThreadFunctionResult threadFunction ()
 
ThreadFunctionResult forThreadFunction ()
 
ThreadFunctionResult whileThreadFunction ()
 
- Public Member Functions inherited from ThreadEngine< void >
virtual voidresult ()
 
QFutureInterface< void > * futureInterfaceTyped ()
 
voidstartSingleThreaded ()
 
voidstartBlocking ()
 
QFuture< voidstartAsynchronously ()
 
void asynchronousFinish ()
 
void reportResult (const void *_result, int index=-1)
 
void reportResults (const QVector< void > &_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< Sequence::const_iterator, void >
const Sequence::const_iterator begin
 
const Sequence::const_iterator end
 
Sequence::const_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 void ReturnType

Definition at line 152 of file qtconcurrentfilterkernel.h.

typedef void ResultType

Definition at line 153 of file qtconcurrentfilterkernel.h.

Constructor & Destructor Documentation

FilterKernel ( Sequence &  _sequence,
KeepFunctor  _keep,
ReduceFunctor  _reduce 
)
inline

Definition at line 95 of file qtconcurrentfilterkernel.h.

96  : IterateKernelType(const_cast<const Sequence &>(_sequence).begin(), const_cast<const Sequence &>(_sequence).end()), reducedResult(),
97  sequence(_sequence),
98  keep(_keep),
99  reduce(_reduce),
100  reducer(OrderedReduce)
101  { }

Member Function Documentation

bool runIteration ( typename Sequence::const_iterator  it,
int  index,
T *   
)
inline

Definition at line 103 of file qtconcurrentfilterkernel.h.

104  {
105  IntermediateResults<typename Sequence::value_type> results;
106  results.begin = index;
107  results.end = index + 1;
108 
109  if (keep(*it))
110  results.vector.append(*it);
111 
112  reducer.runReduce(reduce, reducedResult, results);
113  return false;
114  }
void runReduce(ReduceFunctor &reduce, ReduceResultType &r, const IntermediateResults< T > &result)
GLuint index
Definition: GLee.h:1704
bool runIterations ( typename Sequence::const_iterator  sequenceBeginIterator,
int  begin,
int  end,
T *   
)
inline

Definition at line 116 of file qtconcurrentfilterkernel.h.

117  {
118  IntermediateResults<typename Sequence::value_type> results;
119  results.begin = begin;
120  results.end = end;
121  results.vector.reserve(end - begin);
122 
123 
124  typename Sequence::const_iterator it = sequenceBeginIterator;
125  advance(it, begin);
126  for (int i = begin; i < end; ++i) {
127  if (keep(*it))
128  results.vector.append(*it);
129  advance(it, 1);
130  }
131 
132  reducer.runReduce(reduce, reducedResult, results);
133  return false;
134  }
GLuint GLuint end
Definition: GLee.h:872
void runReduce(ReduceFunctor &reduce, ReduceResultType &r, const IntermediateResults< T > &result)
void finish ( )
inlinevirtual

Reimplemented from ThreadEngineBase.

Definition at line 136 of file qtconcurrentfilterkernel.h.

137  {
138  reducer.finish(reduce, reducedResult);
139  sequence = reducedResult;
140  }
void finish(ReduceFunctor &reduce, ReduceResultType &r)
bool shouldThrottleThread ( )
inlinevirtual

Reimplemented from ThreadEngineBase.

Definition at line 142 of file qtconcurrentfilterkernel.h.

bool shouldStartThread ( )
inlinevirtual

Reimplemented from ThreadEngineBase.

Definition at line 147 of file qtconcurrentfilterkernel.h.


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