20#include <QtDBus/private/qtdbusglobal_p.h>
21#include <QtDBus/qdbuserror.h>
22#include <QtCore/qstring.h>
23#include <QtCore/qvariant.h>
31#define Q_DBUS_NO_EXPORT
34 Q_DBUS_EXPORT
bool isValidInterfaceName(
const QString &ifaceName);
38 Q_DBUS_EXPORT
bool isValidBusName(
const QString &busName);
42 Q_DBUS_EXPORT
bool isValidErrorName(
const QString &errorName);
46 Q_DBUS_EXPORT
bool isValidObjectPath(
const QString &path);
52 Q_DBUS_EXPORT
bool isValidSignature(
const QString &signature);
54 Q_DBUS_EXPORT
bool isValidSingleSignature(
const QString &signature);
63 inline bool checkInterfaceName(
const QString &name,
AllowEmptyFlag empty, QDBusError *error)
67 *error = QDBusError(QDBusError::InvalidInterface, QLatin1StringView(
"Interface name cannot be empty"));
70 if (isValidInterfaceName(name))
return true;
71 *error = QDBusError(QDBusError::InvalidInterface, QLatin1StringView(
"Invalid interface class: %1").arg(name));
75 inline bool checkBusName(
const QString &name,
AllowEmptyFlag empty, QDBusError *error)
79 *error = QDBusError(QDBusError::InvalidService, QLatin1StringView(
"Service name cannot be empty"));
82 if (isValidBusName(name))
return true;
83 *error = QDBusError(QDBusError::InvalidService, QLatin1StringView(
"Invalid service name: %1").arg(name));
87 inline bool checkObjectPath(
const QString &path,
AllowEmptyFlag empty, QDBusError *error)
91 *error = QDBusError(QDBusError::InvalidObjectPath, QLatin1StringView(
"Object path cannot be empty"));
94 if (isValidObjectPath(path))
return true;
95 *error = QDBusError(QDBusError::InvalidObjectPath, QLatin1StringView(
"Invalid object path: %1").arg(path));
99 inline bool checkMemberName(
const QString &name,
AllowEmptyFlag empty, QDBusError *error,
const char *nameType =
nullptr)
101 if (!nameType) nameType =
"member";
102 if (name.isEmpty()) {
104 *error = QDBusError(QDBusError::InvalidMember, QLatin1StringView(nameType) + QLatin1StringView(
" name cannot be empty"));
107 if (isValidMemberName(name))
return true;
108 *error = QDBusError(QDBusError::InvalidMember, QLatin1StringView(
"Invalid %1 name: %2")
109 .arg(QLatin1StringView(nameType), name));
113 inline bool checkErrorName(
const QString &name,
AllowEmptyFlag empty, QDBusError *error)
115 if (name.isEmpty()) {
117 *error = QDBusError(QDBusError::InvalidInterface, QLatin1StringView(
"Error name cannot be empty"));
120 if (isValidErrorName(name))
return true;
121 *error = QDBusError(QDBusError::InvalidInterface, QLatin1StringView(
"Invalid error name: %1").arg(name));
135 return dbusService();
142 {
return QStringLiteral(
"NameOwnerChanged"); }
144 {
return QStringLiteral(
"Not connected to D-Bus server"); }
friend bool operator==(const QByteArray::FromBase64Result &lhs, const QByteArray::FromBase64Result &rhs) noexcept
Returns true if lhs and rhs are equal, otherwise returns false.
friend bool operator!=(const QByteArray::FromBase64Result &lhs, const QByteArray::FromBase64Result &rhs) noexcept
Returns true if lhs and rhs are different, otherwise returns false.
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_SERVICE_DBUS
#define DBUS_INTERFACE_DBUS
#define DBUS_INTERFACE_PROPERTIES
#define DBUS_INTERFACE_INTROSPECTABLE
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 dbusInterfaceProperties()
Q_DBUS_EXPORT bool isValidPartOfObjectPath(QStringView path)
Q_DBUS_EXPORT bool isValidBasicType(int c)
Returns true if c is a valid, basic D-Bus type.
QString nameOwnerChanged()
QString disconnectedErrorMessage()
Q_DBUS_EXPORT bool isValidUniqueConnectionName(QStringView busName)
Returns true if connName is a valid unique connection name.
bool operator<(const QElapsedTimer &lhs, const QElapsedTimer &rhs) noexcept
constexpr size_t qHash(const QSize &s, size_t seed=0) noexcept