Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
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
66 void setInteractiveAuthorizationAllowed(bool enable);
67 bool isInteractiveAuthorizationAllowed() const;
68
70 {
71 return doCall(QDBus::AutoDetect, method, nullptr, 0);
72 }
73
74 template <typename...Args>
75 QDBusMessage call(const QString &method, Args &&...args)
76 {
77 const QVariant variants[] = { QVariant(std::forward<Args>(args))... };
78 return doCall(QDBus::AutoDetect, method, variants, sizeof...(args));
79 }
80
82 {
83 return doCall(mode, method, nullptr, 0);
84 }
85
86 template <typename...Args>
88 {
89 const QVariant variants[] = { QVariant(std::forward<Args>(args))... };
90 return doCall(mode, method, variants, sizeof...(args));
91 }
92
93 QDBusMessage callWithArgumentList(QDBus::CallMode mode,
94 const QString &method,
95 const QList<QVariant> &args);
96
97 bool callWithCallback(const QString &method,
98 const QList<QVariant> &args,
99 QObject *receiver, const char *member, const char *errorSlot);
100 bool callWithCallback(const QString &method,
101 const QList<QVariant> &args,
102 QObject *receiver, const char *member);
103
105 {
106 return doAsyncCall(method, nullptr, 0);
107 }
108
109 template <typename...Args>
111 {
112 const QVariant variants[] = { QVariant(std::forward<Args>(args))... };
113 return doAsyncCall(method, variants, sizeof...(args));
114 }
115
116 QDBusPendingCall asyncCallWithArgumentList(const QString &method,
117 const QList<QVariant> &args);
118
119protected:
120 QDBusAbstractInterface(const QString &service, const QString &path, const char *interface,
121 const QDBusConnection &connection, QObject *parent);
123
124 void connectNotify(const QMetaMethod &signal) override;
125 void disconnectNotify(const QMetaMethod &signal) override;
126 QVariant internalPropGet(const char *propname) const;
127 void internalPropSet(const char *propname, const QVariant &value);
128 QDBusMessage internalConstCall(QDBus::CallMode mode,
129 const QString &method,
130 const QList<QVariant> &args = QList<QVariant>()) const;
131
132private:
133 QDBusMessage doCall(QDBus::CallMode mode, const QString &method, const QVariant *args, size_t numArgs);
134 QDBusPendingCall doAsyncCall(const QString &method, const QVariant *args, size_t numArgs);
135
136private:
137 Q_DECLARE_PRIVATE(QDBusAbstractInterface)
138 Q_PRIVATE_SLOT(d_func(), void _q_serviceOwnerChanged(QString,QString,QString))
139};
140
142
143#endif // QT_NO_DBUS
144#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
\inmodule QtCore
Definition qmetaobject.h:19
\inmodule QtCore
Definition qobject.h:103
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\inmodule QtCore
Definition qvariant.h:65
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]
GLboolean enable
GLsizei const GLchar *const * path
#define Q_OBJECT
#define Q_PRIVATE_SLOT(d, signature)
QJSValueList args