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
qgeopositioninfo.h
Go to the documentation of this file.
1// Copyright (C) 2016 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#ifndef QGEOPOSITIONINFO_H
5#define QGEOPOSITIONINFO_H
6
7#include <QtPositioning/QGeoCoordinate>
8#include <QtCore/QExplicitlySharedDataPointer>
9#include <QtCore/QMetaType>
10#include <QtCore/QDateTime>
11
12QT_BEGIN_NAMESPACE
13
14class QDebug;
15class QDataStream;
16
17class QGeoPositionInfo;
18Q_POSITIONING_EXPORT size_t qHash(const QGeoPositionInfo &key, size_t seed = 0) noexcept;
19namespace QTest
20{
21
22Q_POSITIONING_EXPORT char *toString(const QGeoPositionInfo &info);
23
24} // namespace QTest
25
27QT_DECLARE_QESDP_SPECIALIZATION_DTOR_WITH_EXPORT(QGeoPositionInfoPrivate, Q_POSITIONING_EXPORT)
28
29class Q_POSITIONING_EXPORT QGeoPositionInfo
30{
31public:
32 enum Attribute {
33 Direction,
34 GroundSpeed,
35 VerticalSpeed,
36 MagneticVariation,
37 HorizontalAccuracy,
38 VerticalAccuracy,
39 DirectionAccuracy
40 };
41
42 QGeoPositionInfo();
43 QGeoPositionInfo(const QGeoCoordinate &coordinate, const QDateTime &updateTime);
44 QGeoPositionInfo(const QGeoPositionInfo &other);
45 QGeoPositionInfo(QGeoPositionInfo &&other) noexcept = default;
46 QGeoPositionInfo(QGeoPositionInfoPrivate &dd);
47 ~QGeoPositionInfo();
48
49 QGeoPositionInfo &operator=(const QGeoPositionInfo &other);
50 QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_PURE_SWAP(QGeoPositionInfo)
51
52 void swap(QGeoPositionInfo &other) noexcept { d.swap(other.d); }
53
54 friend bool operator==(const QGeoPositionInfo &lhs, const QGeoPositionInfo &rhs)
55 {
56 return equals(lhs, rhs);
57 }
58 friend bool operator!=(const QGeoPositionInfo &lhs, const QGeoPositionInfo &rhs)
59 {
60 return !equals(lhs, rhs);
61 }
62
63 bool isValid() const;
64
65 void setTimestamp(const QDateTime &timestamp);
66 QDateTime timestamp() const;
67
68 void setCoordinate(const QGeoCoordinate &coordinate);
69 QGeoCoordinate coordinate() const;
70
71 void setAttribute(Attribute attribute, qreal value);
72 qreal attribute(Attribute attribute) const;
73 void removeAttribute(Attribute attribute);
74 bool hasAttribute(Attribute attribute) const;
75
76 void detach();
77
78private:
79 static bool equals(const QGeoPositionInfo &lhs, const QGeoPositionInfo &rhs);
80#ifndef QT_NO_DEBUG_STREAM
81 friend QDebug operator<<(QDebug dbg, const QGeoPositionInfo &info)
82 {
83 return debugStreaming(dbg, info);
84 }
85 static QDebug debugStreaming(QDebug dbg, const QGeoPositionInfo &info);
86#endif
87#ifndef QT_NO_DATASTREAM
88 friend QDataStream &operator<<(QDataStream &stream, const QGeoPositionInfo &info)
89 {
90 return dataStreamOut(stream, info);
91 }
92 friend QDataStream &operator>>(QDataStream &stream, QGeoPositionInfo &info)
93 {
94 return dataStreamIn(stream, info);
95 }
96 static QDataStream &dataStreamOut(QDataStream &stream, const QGeoPositionInfo &info);
97 static QDataStream &dataStreamIn(QDataStream &stream, QGeoPositionInfo &info);
98
99 friend QDataStream &operator<<(QDataStream &stream, QGeoPositionInfo::Attribute attr)
100 {
101 return dataStreamOut(stream, attr);
102 }
103 friend QDataStream &operator>>(QDataStream &stream, QGeoPositionInfo::Attribute &attr)
104 {
105 return dataStreamIn(stream, attr);
106 }
107 static QDataStream &dataStreamOut(QDataStream &stream, QGeoPositionInfo::Attribute attr);
108 static QDataStream &dataStreamIn(QDataStream &stream, QGeoPositionInfo::Attribute &attr);
109#endif
110 QExplicitlySharedDataPointer<QGeoPositionInfoPrivate> d;
111 friend class QGeoPositionInfoPrivate;
112
113 friend Q_POSITIONING_EXPORT size_t qHash(const QGeoPositionInfo &key, size_t seed) noexcept;
114 friend Q_POSITIONING_EXPORT char *QTest::toString(const QGeoPositionInfo &info);
115};
116
118
119QT_END_NAMESPACE
120
121QT_DECL_METATYPE_EXTERN(QGeoPositionInfo, Q_POSITIONING_EXPORT)
122
123#endif // QGEOPOSITIONINFO_H
\inmodule QtPositioning
\inmodule QtPositioning
#define MINIMUM_UPDATE_INTERVAL