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_P_H
++ #define QDBUSMESSAGE_P_H
++
++ //
++ // W A R N I N G
++ // -------------
++ //
++ // This file is not part of the Qt API. It exists for the convenience
++ // of the QLibrary class. This header file may change from
++ // version to version without notice, or even be removed.
++ //
++ // We mean it.
++ //
++
++ #include <QtDBus/private/qtdbusglobal_p.h>
++ #include <qatomic.h>
++ #include <qstring.h>
++ #include <qdbusmessage.h>
++ #include <qdbusconnection.h>
++
++ struct DBusMessage;
++
++ #ifndef QT_NO_DBUS
++
++ QT_BEGIN_NAMESPACE
++
++ class QDBusConnectionPrivate;
++
++ class QDBusMessagePrivate
++ {
++ public:
++ QDBusMessagePrivate();
++ ~QDBusMessagePrivate();
++
++ QList<QVariant> arguments;
++
++ // the following parameters are "const": they are not changed after the constructors
++ // the parametersValidated member below controls whether they've been validated already
++ // (service is also used to store the destination of reply-type messages)
++ QString service, path, interface, name, message, signature;
++
++ mutable QDBusMessage *localReply;
++ QAtomicInt ref;
++ QDBusMessage::MessageType type;
++ uint32_t serial; // if type == MethodCall; the incoming serial; if type == Reply or Error, the serial we're replying to
++
++ mutable uint delayedReply : 1;
++ mutable uint parametersValidated : 1;
++ uint localMessage : 1;
++ uint autoStartService : 1;
++ uint interactiveAuthorizationAllowed : 1;
++ uint isReplyRequired : 1;
++
++ void createResponseLink(const QDBusMessagePrivate *call);
++ static void setParametersValidated(QDBusMessage &msg, bool enable)
++ { msg.d_ptr->parametersValidated = enable; }
++
++ static DBusMessage *toDBusMessage(const QDBusMessage &message, QDBusConnection::ConnectionCapabilities capabilities,
++ QDBusError *error);
++ static QDBusMessage fromDBusMessage(DBusMessage *dmsg, QDBusConnection::ConnectionCapabilities capabilities);
++
++ static bool isLocal(const QDBusMessage &msg);
++ static QDBusMessage makeLocal(const QDBusConnectionPrivate &conn,
++ const QDBusMessage &asSent);
++ static QDBusMessage makeLocalReply(const QDBusConnectionPrivate &conn,
++ const QDBusMessage &asSent);
++ };
++
++ QT_END_NAMESPACE
++
++ #endif // QT_NO_DBUS
++ #endif