QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
EventQueuedState.h
Go to the documentation of this file.
1#pragma once
2
3#include "WaitStateBase.h"
4
5#include <QtCore/QSet>
6#include <QtCore/QString>
7
30{
31 Q_OBJECT
32 Q_DISABLE_COPY(EventQueuedState)
33
34public:
40 EventQueuedState(const QString& stateName, QState* parent,
41 const QString& eventName, int timeoutMsecs = 0);
42
48 EventQueuedState(const QString& stateName, QState* parent,
49 const QSet<QString>& eventNames, int timeoutMsecs = 0);
50
53 void addExpectedEvent(const QString& eventName);
54
57 void removeExpectedEvent(const QString& eventName);
58
60 QSet<QString> expectedEvents() const { return _expectedEvents; }
61
63 QString receivedEvent() const { return _receivedEvent; }
64
65signals:
68 void eventReceived(const QString& eventName);
69
70protected:
71 void connectWaitSignal() override;
72 void disconnectWaitSignal() override;
73 void onWaitEntered() override;
74
75private slots:
76 void _onMachineEvent(const QString& eventName);
77
78private:
79 QSet<QString> _expectedEvents;
80 QString _receivedEvent;
81 QMetaObject::Connection _eventConnection;
82};
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.
QSet< QString > expectedEvents() const
Get the set of expected event names.
void disconnectWaitSignal() override
Subclasses override to tear down their signal connections.
void eventReceived(const QString &eventName)
QString receivedEvent() const
Get the event that triggered completion (valid after completed() signal)
void addExpectedEvent(const QString &eventName)
QString stateName() const
int timeoutMsecs() const