Coverage Report

Created: 2026-01-25 07:18

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/qtbase/src/dbus/qdbusmessage.h
Line
Count
Source
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 QDBUSMESSAGE_H
6
#define QDBUSMESSAGE_H
7
8
#include <QtDBus/qtdbusglobal.h>
9
#include <QtDBus/qdbuserror.h>
10
#include <QtCore/qlist.h>
11
#include <QtCore/qvariant.h>
12
13
#if !defined(QT_NO_DBUS) && !defined(QT_BOOTSTRAPPED)
14
15
#if defined(Q_OS_WIN) && defined(interface)
16
#  undef interface
17
#endif
18
19
QT_BEGIN_NAMESPACE
20
21
class QDBusMessagePrivate;
22
class Q_DBUS_EXPORT QDBusMessage
23
{
24
public:
25
    enum MessageType {
26
        InvalidMessage,
27
        MethodCallMessage,
28
        ReplyMessage,
29
        ErrorMessage,
30
        SignalMessage
31
    };
32
33
    QDBusMessage();
34
    QDBusMessage(const QDBusMessage &other);
35
0
    QDBusMessage(QDBusMessage &&other) noexcept : d_ptr(std::exchange(other.d_ptr, nullptr)) {}
36
0
    QDBusMessage &operator=(QDBusMessage &&other) noexcept { swap(other); return *this; }
37
    QDBusMessage &operator=(const QDBusMessage &other);
38
    ~QDBusMessage();
39
40
0
    void swap(QDBusMessage &other) noexcept { qt_ptr_swap(d_ptr, other.d_ptr); }
41
42
    static QDBusMessage createSignal(const QString &path, const QString &interface,
43
                                     const QString &name);
44
    static QDBusMessage createTargetedSignal(const QString &service, const QString &path,
45
                                             const QString &interface, const QString &name);
46
    static QDBusMessage createMethodCall(const QString &destination, const QString &path,
47
                                         const QString &interface, const QString &method);
48
    static QDBusMessage createError(const QString &name, const QString &msg);
49
    static inline QDBusMessage createError(const QDBusError &err)
50
0
    { return createError(err.name(), err.message()); }
51
    static inline QDBusMessage createError(QDBusError::ErrorType type, const QString &msg)
52
0
    { return createError(QDBusError::errorString(type), msg); }
53
54
    QDBusMessage createReply(const QList<QVariant> &arguments = QList<QVariant>()) const;
55
    QDBusMessage createReply(const QVariant &argument) const;
56
57
    QDBusMessage createErrorReply(const QString &name, const QString &msg) const;
58
    inline QDBusMessage createErrorReply(const QDBusError &err) const
59
0
    { return createErrorReply(err.name(), err.message()); }
60
    QDBusMessage createErrorReply(QDBusError::ErrorType type, const QString &msg) const;
61
62
    // there are no setters; if this changes, see qdbusmessage_p.h
63
    QString service() const;
64
    QString path() const;
65
    QString interface() const;
66
    QString member() const;
67
    QString errorName() const;
68
    QString errorMessage() const;
69
    MessageType type() const;
70
    QString signature() const;
71
72
    bool isReplyRequired() const;
73
74
    void setDelayedReply(bool enable) const;
75
    bool isDelayedReply() const;
76
77
    void setAutoStartService(bool enable);
78
    bool autoStartService() const;
79
80
    void setInteractiveAuthorizationAllowed(bool enable);
81
    bool isInteractiveAuthorizationAllowed() const;
82
83
    void setArguments(const QList<QVariant> &arguments);
84
    QList<QVariant> arguments() const;
85
86
    QDBusMessage &operator<<(const QVariant &arg);
87
88
private:
89
    explicit QDBusMessage(QDBusMessagePrivate &dd);
90
    friend class QDBusMessagePrivate;
91
    QDBusMessagePrivate *d_ptr;
92
};
93
0
Q_DECLARE_SHARED(QDBusMessage)
94
0
95
0
#ifndef QT_NO_DEBUG_STREAM
96
0
Q_DBUS_EXPORT QDebug operator<<(QDebug, const QDBusMessage &);
97
0
#endif
98
0
99
0
QT_END_NAMESPACE
100
0
101
QT_DECL_METATYPE_EXTERN(QDBusMessage, Q_DBUS_EXPORT)
Unexecuted instantiation: int qRegisterNormalizedMetaType<QDBusMessage>(QByteArray const&)
Unexecuted instantiation: QMetaTypeId<QDBusMessage>::qt_metatype_id()
102
103
#else
104
class Q_DBUS_EXPORT QDBusMessage {}; // dummy class for moc
105
#endif // QT_NO_DBUS
106
#endif
107