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
qdbusmessage.h
Go to the documentation of this file.
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
20
22class Q_DBUS_EXPORT QDBusMessage
23{
24public:
25 enum MessageType {
26 InvalidMessage,
27 MethodCallMessage,
28 ReplyMessage,
29 ErrorMessage,
30 SignalMessage
31 };
32
33 QDBusMessage();
34 QDBusMessage(const QDBusMessage &other);
35 QDBusMessage(QDBusMessage &&other) noexcept : d_ptr(std::exchange(other.d_ptr, nullptr)) {}
36 QDBusMessage &operator=(QDBusMessage &&other) noexcept { swap(other); return *this; }
37 QDBusMessage &operator=(const QDBusMessage &other);
38 ~QDBusMessage();
39
40 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 { return createError(err.name(), err.message()); }
51 static inline QDBusMessage createError(QDBusError::ErrorType type, const QString &msg)
52 { 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 { 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
88private:
89 explicit QDBusMessage(QDBusMessagePrivate &dd);
90 friend class QDBusMessagePrivate;
91 QDBusMessagePrivate *d_ptr;
92};
94
95#ifndef QT_NO_DEBUG_STREAM
96Q_DBUS_EXPORT QDebug operator<<(QDebug, const QDBusMessage &);
97#endif
98
99QT_END_NAMESPACE
100
101QT_DECL_METATYPE_EXTERN(QDBusMessage, Q_DBUS_EXPORT)
102
103#else
104class Q_DBUS_EXPORT QDBusMessage {}; // dummy class for moc
105#endif // QT_NO_DBUS
106#endif
static void saveIntrospectionXml(QDBusAbstractAdaptor *adaptor, const QString &xml)
static QString retrieveIntrospectionXml(QDBusAbstractAdaptor *adaptor)
void relay(QObject *sender, int id, void **)
void addAdaptor(QDBusAbstractAdaptor *adaptor)
void disconnectAllSignals(QObject *object)
QList< AdaptorData > AdaptorMap
QDBusAdaptorConnector(QObject *parent)
void connectAllSignals(QObject *object)
\inmodule QtDBus
\inmodule QtDBus
Definition qdbuserror.h:22
\inmodule QtDBus
CallMode
This enum describes the various ways of placing a function call.
QDBusAdaptorConnector * qDBusFindAdaptorConnector(QDBusAbstractAdaptor *adaptor)
QDBusAdaptorConnector * qDBusCreateAdaptorConnector(QObject *obj)
QDBusAdaptorConnector * qDBusFindAdaptorConnector(QObject *obj)
QDBusAdaptorConnector * qDBusCreateAdaptorConnector(QObject *object)
#define QCLASSINFO_DBUS_INTERFACE
QDBusAdaptorConnector * qDBusFindAdaptorConnector(QObject *object)
bool qDBusInterfaceInObject(QObject *obj, const QString &interface_name)
Q_DBUS_EXPORT int qDBusParametersForMethod(const QList< QByteArray > &parameters, QList< QMetaType > &metaTypes, QString &errorMsg)
QString qDBusIntrospectObject(const QDBusConnectionPrivate::ObjectTreeNode &node, const QString &path)
QString qDBusInterfaceFromMetaObject(const QMetaObject *mo)
Definition qdbusmisc.cpp:43
Q_DBUS_EXPORT bool qDBusCheckAsyncTag(const char *tag)
Definition qdbusmisc.cpp:26
QDBusMessage qDBusPropertyGetAll(const QDBusConnectionPrivate::ObjectTreeNode &node, const QDBusMessage &msg)
QDBusMessage qDBusPropertyGet(const QDBusConnectionPrivate::ObjectTreeNode &node, const QDBusMessage &msg)
int qDBusParametersForMethod(const QMetaMethod &mm, QList< QMetaType > &metaTypes, QString &errorMsg)
QDBusMessage qDBusPropertySet(const QDBusConnectionPrivate::ObjectTreeNode &node, const QDBusMessage &msg)
Q_CORE_EXPORT QDebug operator<<(QDebug debug, QDir::Filters filters)
Definition qdir.cpp:2568
Q_DECLARE_TYPEINFO(QObjectPrivate::ConnectionList, Q_RELOCATABLE_TYPE)