4#include <QtCore/QMetaObject>
13 , _skipPredicate(std::move(skipPredicate))
14 , _setupFunction(std::move(setupFunc))
15 , _skipAction(std::move(skipAction))
26 if (_completionConnection) {
27 disconnect(_completionConnection);
28 _completionConnection = {};
37 if (_skipPredicate && _skipPredicate()) {
38 qCDebug(QGCStateMachineLog) <<
"Skip condition met, skipping" <<
stateName();
53 qCDebug(QGCStateMachineLog) <<
"Condition not met, executing" <<
stateName();
QString stateName() const
std::function< void()> SkipAction
void skipped()
Emitted when skip predicate returns true and the state is skipped.
std::function< bool()> SkipPredicate
void onWaitEntered() override
Called when the state is entered - subclasses should call base implementation.
std::function< void(SkippableAsyncState *state)> SetupFunction
SkippableAsyncState(const QString &stateName, QState *parent, SkipPredicate skipPredicate, SetupFunction setupFunc, SkipAction skipAction=nullptr, int timeoutMsecs=0)
void connectWaitSignal() override
Subclasses override to set up their signal connections.
void disconnectWaitSignal() override
Subclasses override to tear down their signal connections.
Base class for states that wait for something with optional timeout.