Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qgeoareamonitor_polling.h
Go to the documentation of this file.
1// Copyright (C) 2021 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QGEOAREAMONITORPOLLING_H
5#define QGEOAREAMONITORPOLLING_H
6
7#include <QtPositioning/qgeoareamonitorsource.h>
8#include <QtPositioning/qgeopositioninfosource.h>
9#include <QtCore/qmutex.h>
10
11/**
12 * QGeoAreaMonitorPolling
13 *
14 */
15
17
20{
22public :
25
26 void setPositionInfoSource(QGeoPositionInfoSource *source) override;
28
29 Error error() const override;
30
31 bool startMonitoring(const QGeoAreaMonitorInfo &monitor) override;
32 bool requestUpdate(const QGeoAreaMonitorInfo &monitor,
33 const char *signal) override;
34 bool stopMonitoring(const QGeoAreaMonitorInfo &monitor) override;
35
37 QList<QGeoAreaMonitorInfo> activeMonitors(const QGeoShape &region) const override;
38
40
41 inline bool isValid() { return positionInfoSource(); }
42
43private Q_SLOTS:
45 void timeout(const QGeoAreaMonitorInfo &monitor);
46 void processAreaEvent(const QGeoAreaMonitorInfo &minfo, const QGeoPositionInfo &pinfo, bool isEnteredEvent);
47
48private:
50 QGeoAreaMonitorSource::Error lastError = QGeoAreaMonitorSource::NoError;
52
53 int signalConnections = 0;
54 // connectNotify() and disconnectNotify() can be called from a different
55 // thread, so we need to synchronize the access to signalConnections
56 QMutex connectionMutex;
57
58 void connectNotify(const QMetaMethod &signal) override;
59 void disconnectNotify(const QMetaMethod &signal) override;
60
61 int idForSignal(const char *signal);
62
63 bool hasConnections() const;
64};
65
66QT_END_NAMESPACE
67
68#endif // QGEOAREAMONITORPOLLING_H
Error error() const override
Returns the type of error that last occurred.
QGeoPositionInfoSource * positionInfoSource() const override
Returns the current QGeoPositionInfoSource used by this QGeoAreaMonitorSource object.
void connectNotify(const QMetaMethod &signal) override
QGeoAreaMonitorSource::AreaMonitorFeatures supportedAreaMonitorFeatures() const override
Returns the area monitoring features available to this source.
QList< QGeoAreaMonitorInfo > activeMonitors() const override
Returns the list of all active monitors known to the QGeoAreaMonitorSource object.
bool stopMonitoring(const QGeoAreaMonitorInfo &monitor) override
Returns true if monitor was successfully removed from the list of \l activeMonitors(); otherwise retu...
void setPositionInfoSource(QGeoPositionInfoSource *source) override
Sets the new \l QGeoPositionInfoSource to be used by this QGeoAreaMonitorSource object.
bool requestUpdate(const QGeoAreaMonitorInfo &monitor, const char *signal) override
Enables single shot area monitoring.
QList< QGeoAreaMonitorInfo > activeMonitors(const QGeoShape &region) const override
Returns the list of all active monitors known to the QGeoAreaMonitorSource object whose center lies w...
bool startMonitoring(const QGeoAreaMonitorInfo &monitor) override
Returns true if the monitoring of monitor could be successfully started; otherwise returns false.
void disconnectNotify(const QMetaMethod &signal) override