Revision control

++ // Copyright (C) 2016 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
++ // Qt-Security score:significant reason:default
++
++ #ifndef QDBUSMESSAGE_H
++ #define QDBUSMESSAGE_H
++
++ #include <QtDBus/qtdbusglobal.h>
++ #include <QtDBus/qdbuserror.h>
++ #include <QtCore/qlist.h>
++ #include <QtCore/qvariant.h>
++
++ #if !defined(QT_NO_DBUS) && !defined(QT_BOOTSTRAPPED)
++
++ #if defined(Q_OS_WIN) && defined(interface)
++ # undef interface
++ #endif
++
++ QT_BEGIN_NAMESPACE
++
++ class QDBusMessagePrivate;
++ class Q_DBUS_EXPORT QDBusMessage
++ {
++ public:
++ enum MessageType {
++ InvalidMessage,
++ MethodCallMessage,
++ ReplyMessage,
++ ErrorMessage,
++ SignalMessage
++ };
++
++ QDBusMessage();
++ QDBusMessage(const QDBusMessage &other);
++ QDBusMessage(QDBusMessage &&other) noexcept : d_ptr(std::exchange(other.d_ptr, nullptr)) {}
++ QDBusMessage &operator=(QDBusMessage &&other) noexcept { swap(other); return *this; }
++ QDBusMessage &operator=(const QDBusMessage &other);
++ ~QDBusMessage();
++
++ void swap(QDBusMessage &other) noexcept { qt_ptr_swap(d_ptr, other.d_ptr); }
++
++ static QDBusMessage createSignal(const QString &path, const QString &interface,
++ const QString &name);
++ static QDBusMessage createTargetedSignal(const QString &service, const QString &path,
++ const QString &interface, const QString &name);
++ static QDBusMessage createMethodCall(const QString &destination, const QString &path,
++ const QString &interface, const QString &method);
++ static QDBusMessage createError(const QString &name, const QString &msg);
++ static inline QDBusMessage createError(const QDBusError &err)
++ { return createError(err.name(), err.message()); }
++ static inline QDBusMessage createError(QDBusError::ErrorType type, const QString &msg)
++ { return createError(QDBusError::errorString(type), msg); }
++
++ QDBusMessage createReply(const QList<QVariant> &arguments = QList<QVariant>()) const;
++ QDBusMessage createReply(const QVariant &argument) const;
++
++ QDBusMessage createErrorReply(const QString &name, const QString &msg) const;
++ inline QDBusMessage createErrorReply(const QDBusError &err) const
++ { return createErrorReply(err.name(), err.message()); }
++ QDBusMessage createErrorReply(QDBusError::ErrorType type, const QString &msg) const;
++
++ // there are no setters; if this changes, see qdbusmessage_p.h
++ QString service() const;
++ QString path() const;
++ QString interface() const;
++ QString member() const;
++ QString errorName() const;
++ QString errorMessage() const;
++ MessageType type() const;
++ QString signature() const;
++
++ bool isReplyRequired() const;
++
++ void setDelayedReply(bool enable) const;
++ bool isDelayedReply() const;
++
++ void setAutoStartService(bool enable);
++ bool autoStartService() const;
++
++ void setInteractiveAuthorizationAllowed(bool enable);
++ bool isInteractiveAuthorizationAllowed() const;
++
++ void setArguments(const QList<QVariant> &arguments);
++ QList<QVariant> arguments() const;
++
++ QDBusMessage &operator<<(const QVariant &arg);
++
++ private:
++ explicit QDBusMessage(QDBusMessagePrivate &dd);
++ friend class QDBusMessagePrivate;
++ QDBusMessagePrivate *d_ptr;
++ };
++ Q_DECLARE_SHARED(QDBusMessage)
++
++ #ifndef QT_NO_DEBUG_STREAM
++ Q_DBUS_EXPORT QDebug operator<<(QDebug, const QDBusMessage &);
++ #endif
++
++ QT_END_NAMESPACE
++
++ QT_DECL_METATYPE_EXTERN(QDBusMessage, Q_DBUS_EXPORT)
++
++ #else
++ class Q_DBUS_EXPORT QDBusMessage {}; // dummy class for moc
++ #endif // QT_NO_DBUS
++ #endif
++