6 const QString& eventName,
int timeoutMsecs)
9 _expectedEvents.insert(eventName);
13 const QSet<QString>& eventNames,
int timeoutMsecs)
15 , _expectedEvents(eventNames)
21 _expectedEvents.insert(eventName);
26 _expectedEvents.remove(eventName);
33 this, &EventQueuedState::_onMachineEvent);
39 if (_eventConnection) {
40 disconnect(_eventConnection);
41 _eventConnection = {};
48 _receivedEvent.clear();
50 qCDebug(QGCStateMachineLog) <<
stateName() <<
"waiting for events:"
51 << _expectedEvents.values().join(
", ");
54void EventQueuedState::_onMachineEvent(
const QString& eventName)
56 if (_expectedEvents.contains(eventName)) {
57 qCDebug(QGCStateMachineLog) <<
stateName() <<
"received expected event:" << eventName;
59 _receivedEvent = eventName;
void onWaitEntered() override
Called when the state is entered - subclasses should call base implementation.
void removeExpectedEvent(const QString &eventName)
void connectWaitSignal() override
Subclasses override to set up their signal connections.
void disconnectWaitSignal() override
Subclasses override to tear down their signal connections.
EventQueuedState(const QString &stateName, QState *parent, const QString &eventName, int timeoutMsecs=0)
void eventReceived(const QString &eventName)
void addExpectedEvent(const QString &eventName)
QString stateName() const
QGCStateMachine * machine() const
void machineEvent(const QString &eventName)
virtual void onWaitEntered()
Called when the state is entered - subclasses should call base implementation.