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
qdbusextratypes.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
5#ifndef QDBUSEXTRATYPES_H
6#define QDBUSEXTRATYPES_H
7
8// define some useful types for D-Bus
9
10#include <QtDBus/qtdbusglobal.h>
11#include <QtCore/qvariant.h>
12#include <QtCore/qstring.h>
13#include <QtCore/qhashfunctions.h>
14
15#ifndef QT_NO_DBUS
16
18
20{
21 QString m_path;
22public:
23 QDBusObjectPath() noexcept : m_path() {}
24 // compiler-generated copy/move constructor/assignment operators are ok!
25 // compiler-generated destructor is ok!
26
27 inline explicit QDBusObjectPath(const char *path);
28 inline explicit QDBusObjectPath(QLatin1StringView path);
29 inline explicit QDBusObjectPath(const QString &path);
30 explicit QDBusObjectPath(QString &&p) : m_path(std::move(p)) { doCheck(); }
31
32 void swap(QDBusObjectPath &other) noexcept { m_path.swap(other.m_path); }
33
34 inline void setPath(const QString &path);
35
36 inline QString path() const
37 { return m_path; }
38
39 operator QVariant() const;
40
41private:
42#ifndef QT_NO_DEBUG_STREAM
43 Q_DBUS_EXPORT friend QDebug operator<<(QDebug, const QDBusObjectPath &);
44#endif
45 void doCheck();
46};
48
49inline QDBusObjectPath::QDBusObjectPath(const char *objectPath)
50 : m_path(QString::fromLatin1(objectPath))
51{ doCheck(); }
52
53inline QDBusObjectPath::QDBusObjectPath(QLatin1StringView objectPath)
54 : m_path(objectPath)
55{ doCheck(); }
56
57inline QDBusObjectPath::QDBusObjectPath(const QString &objectPath)
58 : m_path(objectPath)
59{ doCheck(); }
60
61inline void QDBusObjectPath::setPath(const QString &objectPath)
62{ m_path = objectPath; doCheck(); }
63
64inline bool operator==(const QDBusObjectPath &lhs, const QDBusObjectPath &rhs)
65{ return lhs.path() == rhs.path(); }
66
67inline bool operator!=(const QDBusObjectPath &lhs, const QDBusObjectPath &rhs)
68{ return lhs.path() != rhs.path(); }
69
70inline bool operator<(const QDBusObjectPath &lhs, const QDBusObjectPath &rhs)
71{ return lhs.path() < rhs.path(); }
72
73inline size_t qHash(const QDBusObjectPath &objectPath, size_t seed = 0)
74{ return qHash(objectPath.path(), seed); }
75
76
77class Q_DBUS_EXPORT QDBusSignature
78{
79 QString m_signature;
80public:
81 QDBusSignature() noexcept;
82 // compiler-generated copy/move constructor/assignment operators are ok!
83 // compiler-generated destructor is ok!
84
85 inline explicit QDBusSignature(const char *signature);
86 inline explicit QDBusSignature(QLatin1StringView signature);
87 inline explicit QDBusSignature(const QString &signature);
88 explicit QDBusSignature(QString &&sig) : m_signature(std::move(sig)) { doCheck(); }
89
90 void swap(QDBusSignature &other) noexcept { m_signature.swap(other.m_signature); }
91
92 inline void setSignature(const QString &signature);
93
94 inline QString signature() const
95 { return m_signature; }
96
97private:
98 void doCheck();
99};
101
102inline QDBusSignature::QDBusSignature(const char *dBusSignature)
103 : m_signature(QString::fromLatin1(dBusSignature))
104{ doCheck(); }
105
106inline QDBusSignature::QDBusSignature(QLatin1StringView dBusSignature)
107 : m_signature(dBusSignature)
108{ doCheck(); }
109
110inline QDBusSignature::QDBusSignature(const QString &dBusSignature)
111 : m_signature(dBusSignature)
112{ doCheck(); }
113
114inline void QDBusSignature::setSignature(const QString &dBusSignature)
115{ m_signature = dBusSignature; doCheck(); }
116
117inline bool operator==(const QDBusSignature &lhs, const QDBusSignature &rhs)
118{ return lhs.signature() == rhs.signature(); }
119
120inline bool operator!=(const QDBusSignature &lhs, const QDBusSignature &rhs)
121{ return lhs.signature() != rhs.signature(); }
122
123inline bool operator<(const QDBusSignature &lhs, const QDBusSignature &rhs)
124{ return lhs.signature() < rhs.signature(); }
125
126inline size_t qHash(const QDBusSignature &signature, size_t seed = 0)
127{ return qHash(signature.signature(), seed); }
128
130{
131 QVariant m_variant;
132public:
133 QDBusVariant() noexcept : m_variant() {}
134 // compiler-generated copy/move constructor/assignment operators are ok!
135 // compiler-generated destructor is ok!
136
137 inline explicit QDBusVariant(const QVariant &variant);
138 explicit QDBusVariant(QVariant &&v) noexcept : m_variant(std::move(v)) {}
139
140 void swap(QDBusVariant &other) noexcept { m_variant.swap(other.m_variant); }
141
142 inline void setVariant(const QVariant &variant);
143
144 inline QVariant variant() const
145 { return m_variant; }
146};
147Q_DECLARE_SHARED(QDBusVariant)
148
149inline QDBusVariant::QDBusVariant(const QVariant &dBusVariant)
151
152inline void QDBusVariant::setVariant(const QVariant &dBusVariant)
153{ m_variant = dBusVariant; }
154
155inline bool operator==(const QDBusVariant &v1, const QDBusVariant &v2)
156{ return v1.variant() == v2.variant(); }
157
158QT_END_NAMESPACE
159
160QT_DECL_METATYPE_EXTERN(QDBusVariant, Q_DBUS_EXPORT)
161QT_DECL_METATYPE_EXTERN(QDBusObjectPath, Q_DBUS_EXPORT)
162QT_DECL_METATYPE_EXTERN(QDBusSignature, Q_DBUS_EXPORT)
163
164#endif // QT_NO_DBUS
165#endif
friend bool operator==(const QByteArray::FromBase64Result &lhs, const QByteArray::FromBase64Result &rhs) noexcept
Returns true if lhs and rhs are equal, otherwise returns false.
Definition qbytearray.h:801
friend bool operator!=(const QByteArray::FromBase64Result &lhs, const QByteArray::FromBase64Result &rhs) noexcept
Returns true if lhs and rhs are different, otherwise returns false.
Definition qbytearray.h:812
\inmodule QtDBus
\inmodule QtDBus
\inmodule QtDBus
QDBusVariant(QVariant &&v) noexcept
void setVariant(const QVariant &variant)
Assigns the value of the given Qt variant to this D-Bus variant.
void swap(QDBusVariant &other) noexcept
\memberswap{variant}
QDBusVariant(const QVariant &variant)
Constructs a new D-Bus variant from the given Qt variant.
QVariant variant() const
Returns this D-Bus variant as a QVariant object.
QDBusVariant() noexcept
Constructs a new D-Bus variant.
bool operator==(const QDBusVariant &v1, const QDBusVariant &v2)
bool operator<(const QElapsedTimer &lhs, const QElapsedTimer &rhs) noexcept
constexpr size_t qHash(const QSize &s, size_t seed=0) noexcept
Definition qsize.h:191