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
qdbusutil_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// Copyright (C) 2016 Intel Corporation.
3// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
4// Qt-Security score:critical reason:data-parser
5
6//
7// W A R N I N G
8// -------------
9//
10// This file is not part of the Qt API. It exists for the convenience
11// of the QLibrary class. This header file may change from
12// version to version without notice, or even be removed.
13//
14// We mean it.
15//
16
17#ifndef QDBUSUTIL_P_H
18#define QDBUSUTIL_P_H
19
20#include <QtDBus/private/qtdbusglobal_p.h>
21#include <QtDBus/qdbuserror.h>
22#include <QtCore/qstring.h>
23#include <QtCore/qvariant.h>
24
26
27#ifndef QT_NO_DBUS
28
30
31#define Q_DBUS_NO_EXPORT // force syncqt looking into this namespace
33{
34 Q_DBUS_EXPORT bool isValidInterfaceName(const QString &ifaceName);
35
36 Q_DBUS_EXPORT bool isValidUniqueConnectionName(QStringView busName);
37
38 Q_DBUS_EXPORT bool isValidBusName(const QString &busName);
39
40 Q_DBUS_EXPORT bool isValidMemberName(QStringView memberName);
41
42 Q_DBUS_EXPORT bool isValidErrorName(const QString &errorName);
43
44 Q_DBUS_EXPORT bool isValidPartOfObjectPath(QStringView path);
45
46 Q_DBUS_EXPORT bool isValidObjectPath(const QString &path);
47
48 Q_DBUS_EXPORT bool isValidFixedType(int c);
49
50 Q_DBUS_EXPORT bool isValidBasicType(int c);
51
52 Q_DBUS_EXPORT bool isValidSignature(const QString &signature);
53
54 Q_DBUS_EXPORT bool isValidSingleSignature(const QString &signature);
55
56 Q_DBUS_EXPORT QString argumentToString(const QVariant &variant);
57
62
63 inline bool checkInterfaceName(const QString &name, AllowEmptyFlag empty, QDBusError *error)
64 {
65 if (name.isEmpty()) {
66 if (empty == EmptyAllowed) return true;
67 *error = QDBusError(QDBusError::InvalidInterface, QLatin1StringView("Interface name cannot be empty"));
68 return false;
69 }
70 if (isValidInterfaceName(name)) return true;
71 *error = QDBusError(QDBusError::InvalidInterface, QLatin1StringView("Invalid interface class: %1").arg(name));
72 return false;
73 }
74
75 inline bool checkBusName(const QString &name, AllowEmptyFlag empty, QDBusError *error)
76 {
77 if (name.isEmpty()) {
78 if (empty == EmptyAllowed) return true;
79 *error = QDBusError(QDBusError::InvalidService, QLatin1StringView("Service name cannot be empty"));
80 return false;
81 }
82 if (isValidBusName(name)) return true;
83 *error = QDBusError(QDBusError::InvalidService, QLatin1StringView("Invalid service name: %1").arg(name));
84 return false;
85 }
86
87 inline bool checkObjectPath(const QString &path, AllowEmptyFlag empty, QDBusError *error)
88 {
89 if (path.isEmpty()) {
90 if (empty == EmptyAllowed) return true;
91 *error = QDBusError(QDBusError::InvalidObjectPath, QLatin1StringView("Object path cannot be empty"));
92 return false;
93 }
94 if (isValidObjectPath(path)) return true;
95 *error = QDBusError(QDBusError::InvalidObjectPath, QLatin1StringView("Invalid object path: %1").arg(path));
96 return false;
97 }
98
99 inline bool checkMemberName(const QString &name, AllowEmptyFlag empty, QDBusError *error, const char *nameType = nullptr)
100 {
101 if (!nameType) nameType = "member";
102 if (name.isEmpty()) {
103 if (empty == EmptyAllowed) return true;
104 *error = QDBusError(QDBusError::InvalidMember, QLatin1StringView(nameType) + QLatin1StringView(" name cannot be empty"));
105 return false;
106 }
107 if (isValidMemberName(name)) return true;
108 *error = QDBusError(QDBusError::InvalidMember, QLatin1StringView("Invalid %1 name: %2")
109 .arg(QLatin1StringView(nameType), name));
110 return false;
111 }
112
113 inline bool checkErrorName(const QString &name, AllowEmptyFlag empty, QDBusError *error)
114 {
115 if (name.isEmpty()) {
116 if (empty == EmptyAllowed) return true;
117 *error = QDBusError(QDBusError::InvalidInterface, QLatin1StringView("Error name cannot be empty"));
118 return false;
119 }
120 if (isValidErrorName(name)) return true;
121 *error = QDBusError(QDBusError::InvalidInterface, QLatin1StringView("Invalid error name: %1").arg(name));
122 return false;
123 }
124
126 { return QStringLiteral(DBUS_SERVICE_DBUS); }
128 { return QStringLiteral(DBUS_PATH_DBUS); }
130 { return QStringLiteral(DBUS_PATH_LOCAL); }
132 {
133 // it's the same string, but just be sure
134 Q_ASSERT(dbusService() == QLatin1StringView(DBUS_INTERFACE_DBUS));
135 return dbusService();
136 }
138 { return QStringLiteral(DBUS_INTERFACE_PROPERTIES); }
140 { return QStringLiteral(DBUS_INTERFACE_INTROSPECTABLE); }
142 { return QStringLiteral("NameOwnerChanged"); }
144 { return QStringLiteral("Not connected to D-Bus server"); }
145}
146
147QT_END_NAMESPACE
148
149#endif // QT_NO_DBUS
150#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.
#define DBUS_PATH_DBUS
#define DBUS_PATH_LOCAL
#define DBUS_SERVICE_DBUS
#define DBUS_INTERFACE_DBUS
#define DBUS_INTERFACE_PROPERTIES
#define DBUS_INTERFACE_INTROSPECTABLE
\inmodule QtDBus
Definition qdbusutil_p.h:33
Q_DBUS_EXPORT bool isValidFixedType(int c)
Returns true if c is a valid, fixed D-Bus type.
Q_DBUS_EXPORT bool isValidMemberName(QStringView memberName)
Returns true if memberName is a valid member name.
QString dbusInterfaceIntrospectable()
QString dbusPathLocal()
QString dbusInterfaceProperties()
Q_DBUS_EXPORT bool isValidPartOfObjectPath(QStringView path)
@ EmptyNotAllowed
Definition qdbusutil_p.h:60
QString dbusPath()
Q_DBUS_EXPORT bool isValidBasicType(int c)
Returns true if c is a valid, basic D-Bus type.
QString dbusInterface()
QString nameOwnerChanged()
QString dbusService()
QString disconnectedErrorMessage()
Q_DBUS_EXPORT bool isValidUniqueConnectionName(QStringView busName)
Returns true if connName is a valid unique connection name.
bool operator==(const QDBusVariant &v1, const QDBusVariant &v2)
#define Q_DBUS_NO_EXPORT
Definition qdbusutil_p.h:31
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