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// Qt-Security score:significant reason:default
4
5#ifndef QGEOAREAMONITORPOLLING_H
6#define QGEOAREAMONITORPOLLING_H
7
8#include <QtPositioning/qgeoareamonitorsource.h>
9#include <QtPositioning/qgeopositioninfosource.h>
10#include <QtCore/qmutex.h>
11
12/**
13 * QGeoAreaMonitorPolling
14 *
15 */
16
18
21{
23public :
26
27 void setPositionInfoSource(QGeoPositionInfoSource *source) override;
29
30 Error error() const override;
31
32 bool startMonitoring(const QGeoAreaMonitorInfo &monitor) override;
33 bool requestUpdate(const QGeoAreaMonitorInfo &monitor,
34 const char *signal) override;
35 bool stopMonitoring(const QGeoAreaMonitorInfo &monitor) override;
36
38 QList<QGeoAreaMonitorInfo> activeMonitors(const QGeoShape &region) const override;
39
41
42 inline bool isValid() { return positionInfoSource(); }
43
44private Q_SLOTS:
46 void timeout(const QGeoAreaMonitorInfo &monitor);
47 void processAreaEvent(const QGeoAreaMonitorInfo &minfo, const QGeoPositionInfo &pinfo, bool isEnteredEvent);
48
49private:
51 QGeoAreaMonitorSource::Error lastError = QGeoAreaMonitorSource::NoError;
53
54 int signalConnections = 0;
55 // connectNotify() and disconnectNotify() can be called from a different
56 // thread, so we need to synchronize the access to signalConnections
57 QMutex connectionMutex;
58
59 void connectNotify(const QMetaMethod &signal) override;
60 void disconnectNotify(const QMetaMethod &signal) override;
61
62 int idForSignal(const char *signal);
63
64 bool hasConnections() const;
65};
66
67QT_END_NAMESPACE
68
69#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
Combined button and popup list for selecting options.