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
31{
32 Q_OBJECT
33 Q_DISABLE_COPY(EventQueuedState)
34
35public:
41 EventQueuedState(const QString& stateName, QState* parent,
42 const QString& eventName, int timeoutMsecs = 0);
43
49 EventQueuedState(const QString& stateName, QState* parent,
50 const QSet<QString>& eventNames, int timeoutMsecs = 0);
51
54 void addExpectedEvent(const QString& eventName);
55
58 void removeExpectedEvent(const QString& eventName);
59
61 QSet<QString> expectedEvents() const { return _expectedEvents; }
62
64 QString receivedEvent() const { return _receivedEvent; }
65
66signals:
69 void eventReceived(const QString& eventName);
70
71protected:
72 void connectWaitSignal() override;
73 void disconnectWaitSignal() override;
74 void onWaitEntered() override;
75
76private slots:
77 void _onMachineEvent(const QString& eventName);
78
79private:
80 QSet<QString> _expectedEvents;
81 QString _receivedEvent;
82 QMetaObject::Connection _eventConnection;
83};
A state that waits for one or more named events before advancing.
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
Base class for states that wait for something with optional timeout.
int timeoutMsecs() const