5#ifndef TASKING_BARRIER_H
6#define TASKING_BARRIER_H
32 void setLimit(
int value);
33 int limit()
const {
return m_limit; }
41 std::optional<DoneResult>
result()
const {
return m_result; }
47 std::optional<DoneResult> m_result = {};
61template <
int Limit = 1>
65 static_assert(Limit > 0,
"SharedBarrier's limit should be 1 or more.");
67 m_barrier->setLimit(Limit);
73 std::shared_ptr<Barrier> m_barrier;
76template <
int Limit = 1>
88 SharedBarrier<Limit> *activeBarrier = sharedBarrier.activeStorage();
90 qWarning(
"The barrier referenced from WaitForBarrier element "
91 "is not reachable in the running tree. "
92 "It is possible that no barrier was added to the tree, "
93 "or the storage is not reachable from where it is referenced. "
94 "The WaitForBarrier task finishes with an error. ");
97 Barrier *activeSharedBarrier = activeBarrier->barrier();
98 const std::optional<DoneResult>
result = activeSharedBarrier->
result();
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
void start() final
This method is called by the running TaskTree for starting the Task instance.
std::optional< DoneResult > result() const
void stopWithResult(DoneResult result)
void done(DoneResult success)
\inheaderfile solutions/tasking/tasktree.h \inmodule TaskingSolution
Barrier * barrier() const
\inheaderfile solutions/tasking/tasktree.h \inmodule TaskingSolution
Combined button and popup list for selecting options.
\inmodule TaskingSolution
GroupItem waitForBarrierTask(const MultiBarrier< Limit > &sharedBarrier)
CustomTask< BarrierTaskAdapter > BarrierTask
MultiBarrier< 1 > SingleBarrier
Storage< SharedBarrier< Limit > > MultiBarrier
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
connect(quitButton, &QPushButton::clicked, &app, &QCoreApplication::quit, Qt::QueuedConnection)