swift
Signals | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
swift::misc::CWorkerBase Class Reference

Base class for CWorker and CContinuousWorker. More...

Inheritance diagram for swift::misc::CWorkerBase:
[legend]

Signals

void aboutToStart ()
 Emitted when the task is about to start.
 
void finished ()
 Emitted when the task is finished. More...
 

Public Member Functions

 ~CWorkerBase ()
 Destructor.
 
 CWorkerBase (const CWorkerBase &)=delete
 Copy constructor.
 
CWorkerBaseoperator= (const CWorkerBase &)=delete
 Copy assignment.
 
 CWorkerBase (CWorkerBase &&)=delete
 Move constructor.
 
CWorkerBaseoperator= (CWorkerBase &&)=delete
 Move assignment.
 
template<typename T , typename F >
void then (T *context, F functor)
 Connects to a functor or method which will be called when the task is finished. More...
 
template<typename F >
void then (F functor)
 Connects to a functor which will be called when the task is finished. More...
 
bool isFinished () const
 Returns true if the task has finished. More...
 
template<typename F >
void doIfFinished (F functor) const
 Executes some code (in the caller's thread) if the task has finished. More...
 
template<typename F >
void doIfNotFinished (F functor) const
 Executes some code (in the caller's thread) if the task has not finished. More...
 
template<typename F1 , typename F2 >
void doIfFinishedElse (F1 ifFunctor, F2 elseFunctor) const
 Executes some code (in the caller's thread) if the task has finished and some different code if it has not finished. More...
 
void waitForFinished () noexcept
 Blocks until the task is finished. More...
 
void abandon () noexcept
 Notify the task that its result is no longer needed, so it can finish early. More...
 
void abandonAndWait () noexcept
 Convenience to call abandon() followed by waitForFinished().
 

Static Public Member Functions

static const QStringList & getLogCategories ()
 Log categories.
 
static const QSet< CWorkerBase * > & allWorkers ()
 All workers currently existing.
 

Protected Member Functions

 CWorkerBase ()
 Constructor.
 
bool isAbandoned () const
 For the task to check whether it can finish early. More...
 
bool hasStarted () const
 True if the worker has started.
 
void setStarted ()
 Mark the task as started.
 
void setFinished ()
 Mark the task as finished.
 

Detailed Description

Base class for CWorker and CContinuousWorker.

Definition at line 71 of file worker.h.

Member Function Documentation

◆ abandon()

void swift::misc::CWorkerBase::abandon ( )
noexcept

Notify the task that its result is no longer needed, so it can finish early.

Remarks
This function is thread safe.

Definition at line 141 of file worker.cpp.

◆ doIfFinished()

template<typename F >
void swift::misc::CWorkerBase::doIfFinished ( functor) const
inline

Executes some code (in the caller's thread) if the task has finished.

Remarks
This function is thread safe. The functor may not call any method that observes the worker's finished flag.

Definition at line 126 of file worker.h.

◆ doIfFinishedElse()

template<typename F1 , typename F2 >
void swift::misc::CWorkerBase::doIfFinishedElse ( F1  ifFunctor,
F2  elseFunctor 
) const
inline

Executes some code (in the caller's thread) if the task has finished and some different code if it has not finished.

Remarks
This function is thread safe. The functor may not call any method that observes the worker's finished flag.

Definition at line 144 of file worker.h.

◆ doIfNotFinished()

template<typename F >
void swift::misc::CWorkerBase::doIfNotFinished ( functor) const
inline

Executes some code (in the caller's thread) if the task has not finished.

Remarks
This function is thread safe. The functors may not call any methods that observe the worker's finished flag.

Definition at line 135 of file worker.h.

◆ finished

void swift::misc::CWorkerBase::finished ( )
signal

Emitted when the task is finished.

Note
Slots connected to this signal may not call any methods that observe the worker's finished flag.

◆ isAbandoned()

bool swift::misc::CWorkerBase::isAbandoned ( ) const
protected

For the task to check whether it can finish early.

Remarks
This function is thread safe.

Definition at line 153 of file worker.cpp.

◆ isFinished()

bool swift::misc::CWorkerBase::isFinished ( ) const
inline

Returns true if the task has finished.

Remarks
This function is thread safe. But don't rely on this condition remaining true for any length of time.

Definition at line 117 of file worker.h.

◆ then() [1/2]

template<typename F >
void swift::misc::CWorkerBase::then ( functor)
inline

Connects to a functor which will be called when the task is finished.

Remarks
This function is thread safe. The functor may not call any method that observes the worker's finished flag.

Definition at line 108 of file worker.h.

◆ then() [2/2]

template<typename T , typename F >
void swift::misc::CWorkerBase::then ( T *  context,
functor 
)
inline

Connects to a functor or method which will be called when the task is finished.

Remarks
This function is thread safe. The functor may not call any method that observes the worker's finished flag.

Definition at line 97 of file worker.h.

◆ waitForFinished()

void swift::misc::CWorkerBase::waitForFinished ( )
noexcept

Blocks until the task is finished.

Remarks
This function is thread safe. Will deadlock if called by the worker thread.

Definition at line 134 of file worker.cpp.


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