summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIvan Solovev <ivan.solovev@qt.io>2021-07-15 12:28:53 +0200
committerIvan Solovev <ivan.solovev@qt.io>2021-07-19 13:45:56 +0200
commit2bf5bf8caf01311eac9218a31af27f82bfc063d6 (patch)
tree3fb7012c899603163125636c291f9bf22501dd4d /src
parent4fc52ffe0b236f7f15841d881102f8b485d50df7 (diff)
downloadqtlocation-2bf5bf8caf01311eac9218a31af27f82bfc063d6.tar.gz
QtPositioning: convert streaming operators to hidden friends
This patch changes all streaming operators in QtPositioning to hidden friends, so that they can be found only by ADL and do not pollute the global namespace. It also updates couple of tests to make sure that we cover the streaming operators with test cases. Task-number: QTBUG-95163 Pick-to: 6.2 Change-Id: Ie78b31301d9fb6f658e82114d9637b197e72710a Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r--src/positioning/qgeoareamonitorinfo.cpp7
-rw-r--r--src/positioning/qgeoareamonitorinfo.h28
-rw-r--r--src/positioning/qgeocoordinate.cpp6
-rw-r--r--src/positioning/qgeocoordinate.h27
-rw-r--r--src/positioning/qgeopositioninfo.cpp12
-rw-r--r--src/positioning/qgeopositioninfo.h40
-rw-r--r--src/positioning/qgeosatelliteinfo.cpp6
-rw-r--r--src/positioning/qgeosatelliteinfo.h28
-rw-r--r--src/positioning/qgeoshape.cpp6
-rw-r--r--src/positioning/qgeoshape.h26
10 files changed, 116 insertions, 70 deletions
diff --git a/src/positioning/qgeoareamonitorinfo.cpp b/src/positioning/qgeoareamonitorinfo.cpp
index 817d91dd..828286b2 100644
--- a/src/positioning/qgeoareamonitorinfo.cpp
+++ b/src/positioning/qgeoareamonitorinfo.cpp
@@ -361,7 +361,7 @@ bool QGeoAreaMonitorInfo::equals(const QGeoAreaMonitorInfo &lhs, const QGeoAreaM
\sa {Serializing Qt Data Types}
*/
-QDataStream &operator<<(QDataStream &ds, const QGeoAreaMonitorInfo &monitor)
+QDataStream &QGeoAreaMonitorInfo::dataStreamOut(QDataStream &ds, const QGeoAreaMonitorInfo &monitor)
{
ds << monitor.name() << monitor.d->uid << monitor.area()
<< monitor.isPersistent() << monitor.notificationParameters() << monitor.expiration();
@@ -377,8 +377,7 @@ QDataStream &operator<<(QDataStream &ds, const QGeoAreaMonitorInfo &monitor)
\sa {Serializing Qt Data Types}
*/
-
-QDataStream &operator>>(QDataStream &ds, QGeoAreaMonitorInfo &monitor)
+QDataStream &QGeoAreaMonitorInfo::dataStreamIn(QDataStream &ds, QGeoAreaMonitorInfo &monitor)
{
QString s;
ds >> s;
@@ -410,7 +409,7 @@ QDataStream &operator>>(QDataStream &ds, QGeoAreaMonitorInfo &monitor)
#endif
#ifndef QT_NO_DEBUG_STREAM
-QDebug operator<<(QDebug dbg, const QGeoAreaMonitorInfo &monitor)
+QDebug QGeoAreaMonitorInfo::debugStreaming(QDebug dbg, const QGeoAreaMonitorInfo &monitor)
{
QDebugStateSaver saver(dbg);
dbg.nospace() << "QGeoAreaMonitorInfo(\"" << qPrintable(monitor.name())
diff --git a/src/positioning/qgeoareamonitorinfo.h b/src/positioning/qgeoareamonitorinfo.h
index 01322036..def03b8b 100644
--- a/src/positioning/qgeoareamonitorinfo.h
+++ b/src/positioning/qgeoareamonitorinfo.h
@@ -51,11 +51,6 @@ QT_BEGIN_NAMESPACE
class QDataStream;
class QGeoAreaMonitorInfo;
-#ifndef QT_NO_DATASTREAM
-Q_POSITIONING_EXPORT QDataStream &operator<<(QDataStream &, const QGeoAreaMonitorInfo &);
-Q_POSITIONING_EXPORT QDataStream &operator>>(QDataStream &, QGeoAreaMonitorInfo &);
-#endif
-
Q_POSITIONING_EXPORT size_t qHash(const QGeoAreaMonitorInfo &key, size_t seed = 0) noexcept;
namespace QTest
{
@@ -113,19 +108,30 @@ private:
friend class QGeoAreaMonitorInfoPrivate;
#ifndef QT_NO_DATASTREAM
- friend Q_POSITIONING_EXPORT QDataStream &operator<<(QDataStream &, const QGeoAreaMonitorInfo &);
- friend Q_POSITIONING_EXPORT QDataStream &operator>>(QDataStream &, QGeoAreaMonitorInfo &);
+ friend QDataStream &operator<<(QDataStream &ds, const QGeoAreaMonitorInfo &monitor)
+ {
+ return dataStreamOut(ds, monitor);
+ }
+ friend QDataStream &operator>>(QDataStream &ds, QGeoAreaMonitorInfo &monitor)
+ {
+ return dataStreamIn(ds, monitor);
+ }
+ static QDataStream &dataStreamOut(QDataStream &ds, const QGeoAreaMonitorInfo &monitor);
+ static QDataStream &dataStreamIn(QDataStream &ds, QGeoAreaMonitorInfo &monitor);
#endif
friend Q_POSITIONING_EXPORT size_t qHash(const QGeoAreaMonitorInfo &key, size_t seed) noexcept;
friend Q_POSITIONING_EXPORT char *QTest::toString(const QGeoAreaMonitorInfo& info);
+#ifndef QT_NO_DEBUG_STREAM
+ friend QDebug operator<<(QDebug dbg, const QGeoAreaMonitorInfo &monitor)
+ {
+ return debugStreaming(dbg, monitor);
+ }
+ static QDebug debugStreaming(QDebug dbg, const QGeoAreaMonitorInfo &monitor);
+#endif
};
Q_DECLARE_SHARED(QGeoAreaMonitorInfo)
-#ifndef QT_NO_DEBUG_STREAM
-Q_POSITIONING_EXPORT QDebug operator<<(QDebug, const QGeoAreaMonitorInfo &);
-#endif
-
QT_END_NAMESPACE
Q_DECLARE_METATYPE(QGeoAreaMonitorInfo)
diff --git a/src/positioning/qgeocoordinate.cpp b/src/positioning/qgeocoordinate.cpp
index 63697b40..0dff0925 100644
--- a/src/positioning/qgeocoordinate.cpp
+++ b/src/positioning/qgeocoordinate.cpp
@@ -681,7 +681,7 @@ QGeoCoordinate::QGeoCoordinate(QGeoCoordinatePrivate &dd):
}
#ifndef QT_NO_DEBUG_STREAM
-QDebug operator<<(QDebug dbg, const QGeoCoordinate &coord)
+QDebug QGeoCoordinate::debugStreaming(QDebug dbg, const QGeoCoordinate &coord)
{
QDebugStateSaver saver(dbg);
double lat = coord.latitude();
@@ -719,7 +719,7 @@ QDebug operator<<(QDebug dbg, const QGeoCoordinate &coord)
\sa {Serializing Qt Data Types}
*/
-QDataStream &operator<<(QDataStream &stream, const QGeoCoordinate &coordinate)
+QDataStream &QGeoCoordinate::dataStreamOut(QDataStream &stream, const QGeoCoordinate &coordinate)
{
stream << coordinate.latitude();
stream << coordinate.longitude();
@@ -739,7 +739,7 @@ QDataStream &operator<<(QDataStream &stream, const QGeoCoordinate &coordinate)
\sa {Serializing Qt Data Types}
*/
-QDataStream &operator>>(QDataStream &stream, QGeoCoordinate &coordinate)
+QDataStream &QGeoCoordinate::dataStreamIn(QDataStream &stream, QGeoCoordinate &coordinate)
{
double value;
stream >> value;
diff --git a/src/positioning/qgeocoordinate.h b/src/positioning/qgeocoordinate.h
index b50c74ae..03c59235 100644
--- a/src/positioning/qgeocoordinate.h
+++ b/src/positioning/qgeocoordinate.h
@@ -43,6 +43,7 @@
#include <QtCore/QMetaType>
#include <QtCore/QString>
#include <QtCore/QSharedDataPointer>
+#include <QtCore/QDebug>
#include <QtPositioning/qpositioningglobal.h>
QT_BEGIN_NAMESPACE
@@ -120,20 +121,32 @@ private:
QSharedDataPointer<QGeoCoordinatePrivate> d;
friend class QGeoCoordinatePrivate;
friend class QQuickGeoCoordinateAnimation;
+#ifndef QT_NO_DEBUG_STREAM
+ friend QDebug operator<<(QDebug dbg, const QGeoCoordinate &coord)
+ {
+ return debugStreaming(dbg, coord);
+ }
+ static QDebug debugStreaming(QDebug dbg, const QGeoCoordinate &coord);
+#endif
+#ifndef QT_NO_DATASTREAM
+ friend QDataStream &operator<<(QDataStream &stream, const QGeoCoordinate &coordinate)
+ {
+ return dataStreamOut(stream, coordinate);
+ }
+ friend QDataStream &operator>>(QDataStream &stream, QGeoCoordinate &coordinate)
+ {
+ return dataStreamIn(stream, coordinate);
+ }
+ static QDataStream &dataStreamOut(QDataStream &stream, const QGeoCoordinate &coordinate);
+ static QDataStream &dataStreamIn(QDataStream &stream, QGeoCoordinate &coordinate);
+#endif
};
Q_DECLARE_TYPEINFO(QGeoCoordinate, Q_RELOCATABLE_TYPE);
-#ifndef QT_NO_DEBUG_STREAM
-Q_POSITIONING_EXPORT QDebug operator<<(QDebug, const QGeoCoordinate &);
-#endif
Q_POSITIONING_EXPORT size_t qHash(const QGeoCoordinate &coordinate, size_t seed = 0);
-#ifndef QT_NO_DATASTREAM
-Q_POSITIONING_EXPORT QDataStream &operator<<(QDataStream &stream, const QGeoCoordinate &coordinate);
-Q_POSITIONING_EXPORT QDataStream &operator>>(QDataStream &stream, QGeoCoordinate &coordinate);
-#endif
QT_END_NAMESPACE
diff --git a/src/positioning/qgeopositioninfo.cpp b/src/positioning/qgeopositioninfo.cpp
index fed091d5..abb672f5 100644
--- a/src/positioning/qgeopositioninfo.cpp
+++ b/src/positioning/qgeopositioninfo.cpp
@@ -285,7 +285,7 @@ bool QGeoPositionInfo::equals(const QGeoPositionInfo &lhs, const QGeoPositionInf
}
#ifndef QT_NO_DEBUG_STREAM
-QDebug operator<<(QDebug dbg, const QGeoPositionInfo &info)
+QDebug QGeoPositionInfo::debugStreaming(QDebug dbg, const QGeoPositionInfo &info)
{
QDebugStateSaver saver(dbg);
dbg.nospace() << "QGeoPositionInfo(" << info.d->timestamp;
@@ -326,25 +326,27 @@ QDebug operator<<(QDebug dbg, const QGeoPositionInfo &info)
#ifndef QT_NO_DATASTREAM
/*!
+ \fn QDataStream &operator<<(QDataStream &stream, QGeoPositionInfo::Attribute attr)
\relates QGeoPositionInfo
Writes the given \a attr enumeration to the specified \a stream.
\sa {Serializing Qt Data Types}
*/
-QDataStream &operator<<(QDataStream &stream, QGeoPositionInfo::Attribute attr)
+QDataStream &QGeoPositionInfo::dataStreamOut(QDataStream &stream, QGeoPositionInfo::Attribute attr)
{
return stream << int(attr);
}
/*!
+ \fn QDataStream &operator>>(QDataStream &stream, QGeoPositionInfo::Attribute &attr)
\relates QGeoPositionInfo
Reads an attribute enumeration from the specified \a stream info the given \a attr.
\sa {Serializing Qt Data Types}
*/
-QDataStream &operator>>(QDataStream &stream, QGeoPositionInfo::Attribute &attr)
+QDataStream &QGeoPositionInfo::dataStreamIn(QDataStream &stream, QGeoPositionInfo::Attribute &attr)
{
int a;
stream >> a;
@@ -361,7 +363,7 @@ QDataStream &operator>>(QDataStream &stream, QGeoPositionInfo::Attribute &attr)
\sa {Serializing Qt Data Types}
*/
-QDataStream &operator<<(QDataStream &stream, const QGeoPositionInfo &info)
+QDataStream &QGeoPositionInfo::dataStreamOut(QDataStream &stream, const QGeoPositionInfo &info)
{
stream << info.d->timestamp;
stream << info.d->coord;
@@ -379,7 +381,7 @@ QDataStream &operator<<(QDataStream &stream, const QGeoPositionInfo &info)
\sa {Serializing Qt Data Types}
*/
-QDataStream &operator>>(QDataStream &stream, QGeoPositionInfo &info)
+QDataStream &QGeoPositionInfo::dataStreamIn(QDataStream &stream, QGeoPositionInfo &info)
{
stream >> info.d->timestamp;
stream >> info.d->coord;
diff --git a/src/positioning/qgeopositioninfo.h b/src/positioning/qgeopositioninfo.h
index 276b5d99..76f667b7 100644
--- a/src/positioning/qgeopositioninfo.h
+++ b/src/positioning/qgeopositioninfo.h
@@ -112,11 +112,34 @@ public:
private:
static bool equals(const QGeoPositionInfo &lhs, const QGeoPositionInfo &rhs);
#ifndef QT_NO_DEBUG_STREAM
- friend Q_POSITIONING_EXPORT QDebug operator<<(QDebug dbg, const QGeoPositionInfo &info);
+ friend QDebug operator<<(QDebug dbg, const QGeoPositionInfo &info)
+ {
+ return debugStreaming(dbg, info);
+ }
+ static QDebug debugStreaming(QDebug dbg, const QGeoPositionInfo &info);
#endif
#ifndef QT_NO_DATASTREAM
- friend Q_POSITIONING_EXPORT QDataStream &operator<<(QDataStream &stream, const QGeoPositionInfo &info);
- friend Q_POSITIONING_EXPORT QDataStream &operator>>(QDataStream &stream, QGeoPositionInfo &info);
+ friend QDataStream &operator<<(QDataStream &stream, const QGeoPositionInfo &info)
+ {
+ return dataStreamOut(stream, info);
+ }
+ friend QDataStream &operator>>(QDataStream &stream, QGeoPositionInfo &info)
+ {
+ return dataStreamIn(stream, info);
+ }
+ static QDataStream &dataStreamOut(QDataStream &stream, const QGeoPositionInfo &info);
+ static QDataStream &dataStreamIn(QDataStream &stream, QGeoPositionInfo &info);
+
+ friend QDataStream &operator<<(QDataStream &stream, QGeoPositionInfo::Attribute attr)
+ {
+ return dataStreamOut(stream, attr);
+ }
+ friend QDataStream &operator>>(QDataStream &stream, QGeoPositionInfo::Attribute &attr)
+ {
+ return dataStreamIn(stream, attr);
+ }
+ static QDataStream &dataStreamOut(QDataStream &stream, QGeoPositionInfo::Attribute attr);
+ static QDataStream &dataStreamIn(QDataStream &stream, QGeoPositionInfo::Attribute &attr);
#endif
QExplicitlySharedDataPointer<QGeoPositionInfoPrivate> d;
friend class QGeoPositionInfoPrivate;
@@ -127,17 +150,6 @@ private:
Q_DECLARE_SHARED(QGeoPositionInfo)
-#ifndef QT_NO_DEBUG_STREAM
-Q_POSITIONING_EXPORT QDebug operator<<(QDebug dbg, const QGeoPositionInfo &info);
-#endif
-
-#ifndef QT_NO_DATASTREAM
-Q_POSITIONING_EXPORT QDataStream &operator<<(QDataStream &stream, QGeoPositionInfo::Attribute attr);
-Q_POSITIONING_EXPORT QDataStream &operator>>(QDataStream &stream, QGeoPositionInfo::Attribute &attr);
-Q_POSITIONING_EXPORT QDataStream &operator<<(QDataStream &stream, const QGeoPositionInfo &info);
-Q_POSITIONING_EXPORT QDataStream &operator>>(QDataStream &stream, QGeoPositionInfo &info);
-#endif
-
QT_END_NAMESPACE
Q_DECLARE_METATYPE(QGeoPositionInfo)
diff --git a/src/positioning/qgeosatelliteinfo.cpp b/src/positioning/qgeosatelliteinfo.cpp
index 2a780c4b..da89b355 100644
--- a/src/positioning/qgeosatelliteinfo.cpp
+++ b/src/positioning/qgeosatelliteinfo.cpp
@@ -314,7 +314,7 @@ bool QGeoSatelliteInfo::equals(const QGeoSatelliteInfo &lhs, const QGeoSatellite
}
#ifndef QT_NO_DEBUG_STREAM
-QDebug operator<<(QDebug dbg, const QGeoSatelliteInfo &info)
+QDebug QGeoSatelliteInfo::debugStreaming(QDebug dbg, const QGeoSatelliteInfo &info)
{
QDebugStateSaver saver(dbg);
dbg.nospace() << "QGeoSatelliteInfo(system=" << info.d->system;
@@ -351,7 +351,7 @@ QDebug operator<<(QDebug dbg, const QGeoSatelliteInfo &info)
*/
-QDataStream &operator<<(QDataStream &stream, const QGeoSatelliteInfo &info)
+QDataStream &QGeoSatelliteInfo::dataStreamOut(QDataStream &stream, const QGeoSatelliteInfo &info)
{
stream << info.d->signal;
stream << info.d->doubleAttribs;
@@ -372,7 +372,7 @@ QDataStream &operator<<(QDataStream &stream, const QGeoSatelliteInfo &info)
\sa {Serializing Qt Data Types}
*/
-QDataStream &operator>>(QDataStream &stream, QGeoSatelliteInfo &info)
+QDataStream &QGeoSatelliteInfo::dataStreamIn(QDataStream &stream, QGeoSatelliteInfo &info)
{
int system;
stream >> info.d->signal;
diff --git a/src/positioning/qgeosatelliteinfo.h b/src/positioning/qgeosatelliteinfo.h
index e42d700e..cb4c7b25 100644
--- a/src/positioning/qgeosatelliteinfo.h
+++ b/src/positioning/qgeosatelliteinfo.h
@@ -42,6 +42,7 @@
#include <QtPositioning/qpositioningglobal.h>
#include <QtCore/QSharedData>
#include <QtCore/QMetaType>
+#include <QtCore/QDebug>
QT_BEGIN_NAMESPACE
@@ -119,11 +120,23 @@ public:
private:
static bool equals(const QGeoSatelliteInfo &lhs, const QGeoSatelliteInfo &rhs);
#ifndef QT_NO_DEBUG_STREAM
- friend Q_POSITIONING_EXPORT QDebug operator<<(QDebug dbg, const QGeoSatelliteInfo &info);
+ friend QDebug operator<<(QDebug dbg, const QGeoSatelliteInfo &info)
+ {
+ return debugStreaming(dbg, info);
+ }
+ static QDebug debugStreaming(QDebug dbg, const QGeoSatelliteInfo &info);
#endif
#ifndef QT_NO_DATASTREAM
- friend Q_POSITIONING_EXPORT QDataStream &operator<<(QDataStream &stream, const QGeoSatelliteInfo &info);
- friend Q_POSITIONING_EXPORT QDataStream &operator>>(QDataStream &stream, QGeoSatelliteInfo &info);
+ friend QDataStream &operator<<(QDataStream &stream, const QGeoSatelliteInfo &info)
+ {
+ return dataStreamOut(stream, info);
+ }
+ friend QDataStream &operator>>(QDataStream &stream, QGeoSatelliteInfo &info)
+ {
+ return dataStreamIn(stream, info);
+ }
+ static QDataStream &dataStreamOut(QDataStream &stream, const QGeoSatelliteInfo &info);
+ static QDataStream &dataStreamIn(QDataStream &stream, QGeoSatelliteInfo &info);
#endif
QExplicitlySharedDataPointer<QGeoSatelliteInfoPrivate> d;
friend class QGeoSatelliteInfoPrivate;
@@ -134,15 +147,6 @@ private:
Q_DECLARE_SHARED(QGeoSatelliteInfo)
-#ifndef QT_NO_DEBUG_STREAM
-Q_POSITIONING_EXPORT QDebug operator<<(QDebug dbg, const QGeoSatelliteInfo &info);
-#endif
-
-#ifndef QT_NO_DATASTREAM
-Q_POSITIONING_EXPORT QDataStream &operator<<(QDataStream &stream, const QGeoSatelliteInfo &info);
-Q_POSITIONING_EXPORT QDataStream &operator>>(QDataStream &stream, QGeoSatelliteInfo &info);
-#endif
-
QT_END_NAMESPACE
Q_DECLARE_METATYPE(QGeoSatelliteInfo)
diff --git a/src/positioning/qgeoshape.cpp b/src/positioning/qgeoshape.cpp
index c3201c02..58df873b 100644
--- a/src/positioning/qgeoshape.cpp
+++ b/src/positioning/qgeoshape.cpp
@@ -310,7 +310,7 @@ QString QGeoShape::toString() const
}
#ifndef QT_NO_DEBUG_STREAM
-QDebug operator<<(QDebug dbg, const QGeoShape &shape)
+QDebug QGeoShape::debugStreaming(QDebug dbg, const QGeoShape &shape)
{
QDebugStateSaver saver(dbg);
dbg.nospace() << "QGeoShape(";
@@ -338,7 +338,7 @@ QDebug operator<<(QDebug dbg, const QGeoShape &shape)
#endif
#ifndef QT_NO_DATASTREAM
-QDataStream &operator<<(QDataStream &stream, const QGeoShape &shape)
+QDataStream &QGeoShape::dataStreamOut(QDataStream &stream, const QGeoShape &shape)
{
stream << quint32(shape.type());
switch (shape.type()) {
@@ -374,7 +374,7 @@ QDataStream &operator<<(QDataStream &stream, const QGeoShape &shape)
return stream;
}
-QDataStream &operator>>(QDataStream &stream, QGeoShape &shape)
+QDataStream &QGeoShape::dataStreamIn(QDataStream &stream, QGeoShape &shape)
{
quint32 type;
stream >> type;
diff --git a/src/positioning/qgeoshape.h b/src/positioning/qgeoshape.h
index 95f20d94..ffabf4dc 100644
--- a/src/positioning/qgeoshape.h
+++ b/src/positioning/qgeoshape.h
@@ -100,18 +100,28 @@ private:
static bool equals(const QGeoShape &lhs, const QGeoShape &rhs);
inline QGeoShapePrivate *d_func();
inline const QGeoShapePrivate *d_func() const;
-};
-
-Q_DECLARE_TYPEINFO(QGeoShape, Q_RELOCATABLE_TYPE);
-
#ifndef QT_NO_DEBUG_STREAM
-Q_POSITIONING_EXPORT QDebug operator<<(QDebug, const QGeoShape &);
+ friend QDebug operator<<(QDebug dbg, const QGeoShape &shape)
+ {
+ return debugStreaming(dbg, shape);
+ }
+ static QDebug debugStreaming(QDebug dbg, const QGeoShape &shape);
#endif
-
#ifndef QT_NO_DATASTREAM
-Q_POSITIONING_EXPORT QDataStream &operator<<(QDataStream &stream, const QGeoShape &shape);
-Q_POSITIONING_EXPORT QDataStream &operator>>(QDataStream &stream, QGeoShape &shape);
+ friend QDataStream &operator<<(QDataStream &stream, const QGeoShape &shape)
+ {
+ return dataStreamOut(stream, shape);
+ }
+ friend QDataStream &operator>>(QDataStream &stream, QGeoShape &shape)
+ {
+ return dataStreamIn(stream, shape);
+ }
+ static QDataStream &dataStreamOut(QDataStream &stream, const QGeoShape &shape);
+ static QDataStream &dataStreamIn(QDataStream &stream, QGeoShape &shape);
#endif
+};
+
+Q_DECLARE_TYPEINFO(QGeoShape, Q_RELOCATABLE_TYPE);
QT_END_NAMESPACE