A DispatchGroup is a group of QRunnables dispatched on queues. More...
#include <QtDispatch/qdispatchgroup.h>
Public Slots | |
void | resume () |
Resumes the invocation of work items belonging to this group. | |
void | suspend () |
Suspends the invocation of work items belonging to this group. | |
Signals | |
void | allFinished () |
This will be emitted additionally to any function or block submitted via notify(). | |
Public Member Functions | |
QDispatchGroup () | |
Creates a new QDispatchGroup. | |
QDispatchGroup (dispatch_group_t) | |
QDispatchGroup (const QDispatchGroup &) | |
QDispatchGroup (const xdispatch::group &) | |
~QDispatchGroup () | |
void | async (QRunnable *r, const xdispatch::queue &=xdispatch::global_queue()) |
Dispatches a Runnable on the given Queue. | |
bool | wait (const QTime &t) |
Waits until the given time has passed or all dispatched runnables in the group were executed. | |
void | notify (QRunnable *r, const xdispatch::queue &=xdispatch::global_queue()) |
This function schedules a notification runnable to be submitted to the specified queue once all runnables associated with the dispatch group have completed. | |
void | notify (xdispatch::operation *, const xdispatch::queue &=xdispatch::global_queue()) |
void | notify (dispatch_block_t, const xdispatch::queue &=xdispatch::global_queue()) |
void | enableAllFinishedSignal () |
Activates the allFinished() signal or this QDispatchGroup. | |
void | async (operation *r, const queue &q=global_queue()) |
Dispatches an operation on the given Queue. | |
void | async (dispatch_block_t b, const queue &q=global_queue()) |
Same as dispatch(operation* r, ...) Will wrap the given block in an operation and put it on the queue. | |
bool | wait (dispatch_time_t=DISPATCH_TIME_FOREVER) |
Waits until the given time has passed or all dispatched operations in the group were executed. | |
bool | wait (struct tm *t) |
Waits until the given time has passed or all dispatched operations in the group were executed. | |
dispatch_object_t | native () const |
bool | operator== (const object &) |
bool | operator== (const dispatch_object_t &) |
bool | operator!= (const object &) |
bool | operator!= (const dispatch_object_t &) |
Friends | |
Q_DECL_EXPORT QDebug | operator<< (QDebug, const QDispatchGroup &) |
A DispatchGroup is a group of QRunnables dispatched on queues.
This class provides a way to track all these QRunnables and notify you if all of them finished executing.
See also Apple's Documentation of Dispatch Groups
Definition at line 50 of file qdispatchgroup.h.
QDispatchGroup::QDispatchGroup | ( | ) |
Creates a new QDispatchGroup.
QDispatchGroup::QDispatchGroup | ( | dispatch_group_t | ) |
QDispatchGroup::QDispatchGroup | ( | const QDispatchGroup & | ) |
QDispatchGroup::QDispatchGroup | ( | const xdispatch::group & | ) |
QDispatchGroup::~QDispatchGroup | ( | ) |
void QDispatchGroup::allFinished | ( | ) | [signal] |
This will be emitted additionally to any function or block submitted via notify().
Every time the all work dispatched to the group (i.e. the group is empty) this signal will be emitted.
void QDispatchGroup::async | ( | QRunnable * | r, |
const xdispatch::queue & | = xdispatch::global_queue() |
||
) |
Dispatches a Runnable on the given Queue.
r | The QRunnable to be dispatched |
q | The Queue to use. If no Queue is given, the system default queue will be used |
Dispatches an operation on the given Queue.
r | The operation to be dispatched |
q | The Queue to use. If no Queue is given, the system default queue will be used |
void xdispatch::group::async | ( | dispatch_block_t | b, |
const queue & | q = global_queue() |
||
) | [inherited] |
Same as dispatch(operation* r, ...) Will wrap the given block in an operation and put it on the queue.
void QDispatchGroup::enableAllFinishedSignal | ( | ) |
Activates the allFinished() signal or this QDispatchGroup.
Needs to be called everytime all scheduled work on the group finished and new work was submitted which was not finished yet.
Note: All installed notification handlers will be disabled and all other QDispatchGroup objects working on the same group will stop to emit the signal, i.e. only one QDispatchGroup object can emit the signal at a time.
Note2: When assigning a new notification handler by using notify() the signal of this object will be enabled by default
dispatch_object_t xdispatch::group::native | ( | ) | const [virtual, inherited] |
Implements xdispatch::object.
void QDispatchGroup::notify | ( | xdispatch::operation * | , |
const xdispatch::queue & | = xdispatch::global_queue() |
||
) |
Reimplemented from xdispatch::group.
void QDispatchGroup::notify | ( | dispatch_block_t | , |
const xdispatch::queue & | = xdispatch::global_queue() |
||
) |
Reimplemented from xdispatch::group.
void QDispatchGroup::notify | ( | QRunnable * | r, |
const xdispatch::queue & | = xdispatch::global_queue() |
||
) |
This function schedules a notification runnable to be submitted to the specified queue once all runnables associated with the dispatch group have completed.
If no runnables are associated with the dispatch group (i.e. the group is empty) then the notification runnable will be submitted immediately.
The runnable will be empty at the time the notification block is submitted to the target queue. The group may either be deleted or reused for additional operations.
bool xdispatch::object::operator!= | ( | const object & | ) | [inherited] |
bool xdispatch::object::operator!= | ( | const dispatch_object_t & | ) | [inherited] |
bool xdispatch::object::operator== | ( | const dispatch_object_t & | ) | [inherited] |
bool xdispatch::object::operator== | ( | const object & | ) | [inherited] |
void QDispatchGroup::resume | ( | ) | [virtual, slot] |
Resumes the invocation of work items belonging to this group.
Calls to suspend() must be balanced with calls to resume().
Reimplemented from xdispatch::group.
void QDispatchGroup::suspend | ( | ) | [virtual, slot] |
Suspends the invocation of work items belonging to this group.
A suspended group will not invoke any blocks associated with it. The suspension of a group will occur after any running work item associated with the group completes.
Calls to suspend() must be balanced with calls to resume().
Reimplemented from xdispatch::group.
bool xdispatch::group::wait | ( | struct tm * | t | ) | [inherited] |
Waits until the given time has passed or all dispatched operations in the group were executed.
timeout | give a timeout here |
bool xdispatch::group::wait | ( | dispatch_time_t | = DISPATCH_TIME_FOREVER | ) | [inherited] |
Waits until the given time has passed or all dispatched operations in the group were executed.
t | give a time here or a DISPATCH_TIME_FOREVER to wait until all operations are done |
bool QDispatchGroup::wait | ( | const QTime & | t | ) |
Waits until the given time has passed or all dispatched runnables in the group were executed.
timeout | give a timeout here or a QTime of zero to wait until all runnables are done |
Q_DECL_EXPORT QDebug operator<< | ( | QDebug | , |
const QDispatchGroup & | |||
) | [friend] |