|
QGroundControl
Ground Control Station for MAVLink Drones
|
Qt event-loop implementation; no callback runs inside schedule(). More...
#include <QtRuntimeScheduler.h>
Inheritance diagram for QtRuntimeScheduler:
Collaboration diagram for QtRuntimeScheduler:Public Member Functions | |
| QtRuntimeScheduler (QObject *parent=nullptr) | |
| ~QtRuntimeScheduler () override | |
| quint64 | nowUs () const override |
| TaskId | schedule (QObject *context, std::chrono::microseconds delay, Callback callback) override |
| void | cancel (TaskId task) override |
| Cancellation from another thread is ignored. All other access and destruction must occur on the owner thread. | |
Public Member Functions inherited from RuntimeScheduler | |
| RuntimeScheduler (QObject *parent=nullptr) | |
| ~RuntimeScheduler () override | |
| qint64 | nowMs () const |
Protected Member Functions | |
| void | timerEvent (QTimerEvent *event) override |
Protected Member Functions inherited from RuntimeScheduler | |
| bool | _canSchedule (QObject *context, std::chrono::microseconds delay, const Callback &callback) const |
| bool | _isCurrentThread () const |
Additional Inherited Members | |
Public Types inherited from RuntimeScheduler | |
| using | TaskId = quint64 |
| using | Callback = std::function< void()> |
Static Public Member Functions inherited from RuntimeScheduler | |
| static RuntimeScheduler * | orDefault (RuntimeScheduler *scheduler, QObject *owner) |
| scheduler, or a QtRuntimeScheduler owned by owner when it is null. | |
Static Public Attributes inherited from RuntimeScheduler | |
| static constexpr auto | MAX_DELAY |
Qt event-loop implementation; no callback runs inside schedule().
Definition at line 9 of file QtRuntimeScheduler.h.
|
explicit |
Definition at line 13 of file QtRuntimeScheduler.cc.
|
override |
Definition at line 18 of file QtRuntimeScheduler.cc.
|
overridevirtual |
Cancellation from another thread is ignored. All other access and destruction must occur on the owner thread.
Implements RuntimeScheduler.
Definition at line 45 of file QtRuntimeScheduler.cc.
References RuntimeScheduler::_isCurrentThread().
Referenced by schedule().
|
overridevirtual |
Implements RuntimeScheduler.
Definition at line 23 of file QtRuntimeScheduler.cc.
References MonotonicClock::nowUs().
|
overridevirtual |
Nonpositive delays defer until the next dispatch. Context must share this object's thread. Calls from other threads and delays above MAX_DELAY are rejected with task ID zero. Destroying context suppresses its callback. No ordering is promised for equal deadlines.
Implements RuntimeScheduler.
Definition at line 28 of file QtRuntimeScheduler.cc.
References RuntimeScheduler::_canSchedule(), and cancel().
|
overrideprotected |
Definition at line 59 of file QtRuntimeScheduler.cc.