Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qdbusabstractinterface.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
4#ifndef QDBUSABSTRACTINTERFACE_H
5#define QDBUSABSTRACTINTERFACE_H
6
7#include <QtDBus/qtdbusglobal.h>
8#include <QtCore/qstring.h>
9#include <QtCore/qvariant.h>
10#include <QtCore/qlist.h>
11#include <QtCore/qobject.h>
12
13#include <QtDBus/qdbusmessage.h>
14#include <QtDBus/qdbusextratypes.h>
15#include <QtDBus/qdbusconnection.h>
16#include <QtDBus/qdbuspendingcall.h>
17
18#ifdef interface
19#undef interface
20#endif
21
22#ifndef QT_NO_DBUS
23
25
26
27class QDBusError;
29
31
32class Q_DBUS_EXPORT QDBusAbstractInterfaceBase: public QObject
33{
34public:
35 int qt_metacall(QMetaObject::Call, int, void**) override;
36protected:
38private:
39 Q_DECLARE_PRIVATE(QDBusAbstractInterface)
40};
41
42class Q_DBUS_EXPORT QDBusAbstractInterface:
43#ifdef Q_QDOC
44 public QObject
45#else
47#endif
48{
50
51public:
53 bool isValid() const;
54
56
57 QString service() const;
58 QString path() const;
59 QString interface() const;
60
61 QDBusError lastError() const;
62
63 void setTimeout(int timeout);
64 int timeout() const;
65
67 {
68 return doCall(QDBus::AutoDetect, method, nullptr, 0);
69 }
70
71 template <typename...Args>
72 QDBusMessage call(const QString &method, Args &&...args)
73 {
74 const QVariant variants[] = { QVariant(std::forward<Args>(args))... };
75 return doCall(QDBus::AutoDetect, method, variants, sizeof...(args));
76 }
77
79 {
80 return doCall(mode, method, nullptr, 0);
81 }
82
83 template <typename...Args>
85 {
86 const QVariant variants[] = { QVariant(std::forward<Args>(args))... };
87 return doCall(mode, method, variants, sizeof...(args));
88 }
89
90 QDBusMessage callWithArgumentList(QDBus::CallMode mode,
91 const QString &method,
92 const QList<QVariant> &args);
93
94 bool callWithCallback(const QString &method,
95 const QList<QVariant> &args,
96 QObject *receiver, const char *member, const char *errorSlot);
97 bool callWithCallback(const QString &method,
98 const QList<QVariant> &args,
99 QObject *receiver, const char *member);
100
102 {
103 return doAsyncCall(method, nullptr, 0);
104 }
105
106 template <typename...Args>
108 {
109 const QVariant variants[] = { QVariant(std::forward<Args>(args))... };
110 return doAsyncCall(method, variants, sizeof...(args));
111 }
112
113 QDBusPendingCall asyncCallWithArgumentList(const QString &method,
114 const QList<QVariant> &args);
115
116protected:
117 QDBusAbstractInterface(const QString &service, const QString &path, const char *interface,
120
121 void connectNotify(const QMetaMethod &signal) override;
122 void disconnectNotify(const QMetaMethod &signal) override;
123 QVariant internalPropGet(const char *propname) const;
124 void internalPropSet(const char *propname, const QVariant &value);
125 QDBusMessage internalConstCall(QDBus::CallMode mode,
126 const QString &method,
127 const QList<QVariant> &args = QList<QVariant>()) const;
128
129private:
130 QDBusMessage doCall(QDBus::CallMode mode, const QString &method, const QVariant *args, size_t numArgs);
131 QDBusPendingCall doAsyncCall(const QString &method, const QVariant *args, size_t numArgs);
132
133private:
134 Q_DECLARE_PRIVATE(QDBusAbstractInterface)
135 Q_PRIVATE_SLOT(d_func(), void _q_serviceOwnerChanged(QString,QString,QString))
136};
137
139
140#endif // QT_NO_DBUS
141#endif
QDBusPendingCall asyncCall(const QString &method, Args &&...args)
Calls the method method on this interface and passes args to the method.
QDBusMessage call(const QString &method)
QDBusPendingCall asyncCall(const QString &method)
QDBusMessage call(const QString &method, Args &&...args)
Calls the method method on this interface and passes args to the method.
QDBusMessage call(QDBus::CallMode mode, const QString &method, Args &&...args)
This is an overloaded member function, provided for convenience. It differs from the above function o...
QDBusMessage call(QDBus::CallMode mode, const QString &method)
\inmodule QtDBus
\inmodule QtDBus
Definition qdbuserror.h:21
\inmodule QtDBus
\inmodule QtDBus
Definition qlist.h:74
\inmodule QtCore
Definition qmetaobject.h:18
\inmodule QtCore
Definition qobject.h:90
virtual void connectNotify(const QMetaMethod &signal)
Definition qobject.cpp:3347
virtual void disconnectNotify(const QMetaMethod &signal)
Definition qobject.cpp:3382
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:127
\inmodule QtCore
Definition qvariant.h:64
auto signal
CallMode
This enum describes the various ways of placing a function call.
Combined button and popup list for selecting options.
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char * interface
DBusConnection * connection
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char * method
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
GLenum mode
GLbitfield GLuint64 timeout
[4]
GLsizei const GLchar *const * path
#define Q_OBJECT
#define Q_PRIVATE_SLOT(d, signature)
QJSValueList args
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent