ThreadEngine< T > Class Template Reference

ThreadEngine< T > Class Template Reference

#include <qtconcurrentthreadengine.h>

Class Description

template<typename T>
class QtConcurrent::ThreadEngine< T >

Definition at line 138 of file qtconcurrentthreadengine.h.

+ Inheritance diagram for ThreadEngine< T >:

Public Types

typedef T ResultType
 

Public Member Functions

virtual T * result ()
 
QFutureInterface< T > * futureInterfaceTyped ()
 
T * startSingleThreaded ()
 
T * startBlocking ()
 
QFuture< T > startAsynchronously ()
 
void asynchronousFinish ()
 
void reportResult (const T *_result, int index=-1)
 
void reportResults (const QVector< T > &_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

- Protected Member Functions inherited from ThreadEngineBase
virtual void start ()
 
virtual void finish ()
 
virtual ThreadFunctionResult threadFunction ()
 
virtual bool shouldStartThread ()
 
virtual bool shouldThrottleThread ()
 
- Protected Attributes inherited from ThreadEngineBase
QFutureInterfaceBasefutureInterface
 
QThreadPoolthreadPool
 
ThreadEngineBarrier barrier
 
QtConcurrent::internal::ExceptionStore exceptionStore
 

Member Typedef Documentation

typedef T ResultType

Definition at line 141 of file qtconcurrentthreadengine.h.

Member Function Documentation

QFutureInterface<T>* futureInterfaceTyped ( )
inline

Definition at line 145 of file qtconcurrentthreadengine.h.

146  {
147  return static_cast<QFutureInterface<T> *>(futureInterface);
148  }
T* startSingleThreaded ( )
inline

Definition at line 151 of file qtconcurrentthreadengine.h.

T* startBlocking ( )
inline

Definition at line 160 of file qtconcurrentthreadengine.h.

161  {
163  return result();
164  }
QFuture<T> startAsynchronously ( )
inline

Definition at line 168 of file qtconcurrentthreadengine.h.

169  {
171 
172  // reportStart() must be called before starting threads, otherwise the
173  // user algorithm might finish while reportStart() is running, which
174  // is very bad.
177  start();
178 
180  threadPool->start(this);
181  return future;
182  }
QFutureInterface< T > * futureInterfaceTyped()
void start(QRunnable *runnable, int priority=0)
void asynchronousFinish ( )
inlinevirtual

Implements ThreadEngineBase.

Definition at line 184 of file qtconcurrentthreadengine.h.

185  {
186  finish();
187  futureInterfaceTyped()->reportFinished(result());
188  delete futureInterfaceTyped();
189  delete this;
190  }
QFutureInterface< T > * futureInterfaceTyped()
void reportResult ( const T *  _result,
int  index = -1 
)
inline

Definition at line 193 of file qtconcurrentthreadengine.h.

194  {
195  if (futureInterface)
196  futureInterfaceTyped()->reportResult(_result, index);
197  }
QFutureInterface< T > * futureInterfaceTyped()
GLuint index
Definition: GLee.h:1704
void reportResults ( const QVector< T > &  _result,
int  index = -1,
int  count = -1 
)
inline

Definition at line 199 of file qtconcurrentthreadengine.h.

200  {
201  if (futureInterface)
202  futureInterfaceTyped()->reportResults(_result, index, count);
203  }
QFutureInterface< T > * futureInterfaceTyped()
GLuint GLuint GLsizei count
Definition: GLee.h:872
GLuint index
Definition: GLee.h:1704

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