60 Q_ASSERT_X(!
interface.isEmpty(),
"QDBusAbstractInterface",
"Interface name cannot be empty");
79 lastError(
checkIfValid(serv,
p, iface, isDynamic, (connectionPrivate() &&
82 isValid(!lastError.isValid())
125 const char *expectedSignature =
"";
128 if (expectedSignature ==
nullptr) {
129 qWarning(
"QDBusAbstractInterface: type %s must be registered with Qt D-Bus before it can be "
130 "used to read property %s.%s",
150 if (
reply.signature() !=
"v"_L1) {
158 const char *foundType =
nullptr;
162 || (expectedSignature[0] ==
'v' && expectedSignature[1] ==
'\0')) {
173 if (
value.metaType() == QMetaType::fromType<QDBusArgument>()) {
176 foundType =
"user type";
177 foundSignature =
arg.currentSignature().toLatin1();
178 if (foundSignature == expectedSignature) {
183 foundType =
value.typeName();
188 const auto errmsg =
"Unexpected '%1' (%2) when retrieving property '%3.%4' "
189 "(expected type '%5' (%6))"_L1;
213 if (reply.type() != QDBusMessage::ReplyMessage) {
239 _id = QObject::qt_metacall(_c, _id, _a);
245 int &status = *
reinterpret_cast<int *
>(_a[2]);
249 if (mp.
metaType() == QMetaType::fromType<QDBusVariant>())
253 status = d_func()->setProperty(mp,
value) ? 1 : 0;
255 bool readStatus = d_func()->property(mp, _a[0]);
258 if (!readStatus && _a[1]) {
293 d.initOwnerTracking();
308 d_func()->initOwnerTracking();
333 return !
d->currentOwner.isEmpty();
342 return d_func()->connection;
350 return d_func()->service;
358 return d_func()->path;
366 return d_func()->interface;
375 return d_func()->lastError;
397 return d_func()->timeout;
423 if (!
d->isValid || !
d->canMakeCalls())
438 for (
int i = staticMetaObject.methodCount();
i <
mo->methodCount(); ++
i) {
464 if (
reply.arguments().isEmpty())
486 if (!
d->isValid || !
d->canMakeCalls())
492 return d->connection.asyncCall(msg,
d->timeout);
519 const char *returnMethod,
520 const char *errorMethod)
524 if (!
d->isValid || !
d->canMakeCalls())
535 return d->connection.callWithCallback(msg,
581 if (
signal == destroyedSignal)
627 int midx = QObject::staticMetaObject.methodCount();
628 const int end =
mo->methodCount();
629 for ( ; midx <
end; ++midx) {
759 for (
size_t i = 0;
i < numArgs; ++
i)
768 for (
size_t i = 0;
i < numArgs; ++
i)
777#include "moc_qdbusabstractinterface.cpp"
QList< QByteArray > split(char sep) const
Splits the byte array into subarrays wherever sep occurs, and returns the list of those arrays.
static void postEvent(QObject *receiver, QEvent *event, int priority=Qt::NormalEventPriority)
int qt_metacall(QMetaObject::Call, int, void **) override
QDBusAbstractInterfaceBase(QDBusAbstractInterfacePrivate &dd, QObject *parent)
static void finishDisconnectNotify(QDBusAbstractInterface *iface, int signalId)
QDBusAbstractInterfacePrivate(const QString &serv, const QString &p, const QString &iface, const QDBusConnection &con, bool dynamic)
bool setProperty(const QMetaProperty &mp, const QVariant &value)
QDBusConnectionPrivate * connectionPrivate() const
bool property(const QMetaProperty &mp, void *returnValuePtr) const
QDBusConnection connection
bool canMakeCalls() const
void _q_serviceOwnerChanged(const QString &name, const QString &oldOwner, const QString &newOwner)
QVariant internalPropGet(const char *propname) const
QDBusPendingCall asyncCallWithArgumentList(const QString &method, const QList< QVariant > &args)
QDBusAbstractInterface(const QString &service, const QString &path, const char *interface, const QDBusConnection &connection, QObject *parent)
QString service() const
Returns the name of the service this interface is associated with.
void setTimeout(int timeout)
Sets the timeout in milliseconds for all future DBus calls to timeout.
void disconnectNotify(const QMetaMethod &signal) override
QDBusConnection connection() const
Returns the connection this interface is associated with.
void internalPropSet(const char *propname, const QVariant &value)
QString interface() const
Returns the name of this interface.
QString path() const
Returns the object path that this interface is associated with.
QDBusMessage callWithArgumentList(QDBus::CallMode mode, const QString &method, const QList< QVariant > &args)
Places a call to the remote method specified by method on this interface, using args as arguments.
bool isValid() const
Returns true if this is a valid reference to a remote object.
int timeout() const
Returns the current value of the timeout in milliseconds.
QDBusError lastError() const
Returns the error the last operation produced, or an invalid error if the last operation did not prod...
void connectNotify(const QMetaMethod &signal) override
QDBusMessage internalConstCall(QDBus::CallMode mode, const QString &method, const QList< QVariant > &args=QList< QVariant >()) const
bool callWithCallback(const QString &method, const QList< QVariant > &args, QObject *receiver, const char *member, const char *errorSlot)
Places a call to the remote method specified by method on this interface, using args as arguments.
virtual ~QDBusAbstractInterface()
Releases this object's resources.
void disconnectRelay(const QString &service, const QString &path, const QString &interface, QDBusAbstractInterface *receiver, const QMetaMethod &signal)
QString getNameOwner(const QString &service)
void connectRelay(const QString &service, const QString &path, const QString &interface, QDBusAbstractInterface *receiver, const QMetaMethod &signal)
bool isConnected() const
Returns true if this QDBusConnection object is connected.
QDBusMessage call(const QDBusMessage &message, QDBus::CallMode mode=QDBus::Block, int timeout=-1) const
Sends the message over this connection and blocks, waiting for a reply, for at most timeout milliseco...
static void setParametersValidated(QDBusMessage &msg, bool enable)
void setArguments(const QList< QVariant > &arguments)
Sets the arguments that are going to be sent over D-Bus to arguments.
static QDBusMessage createError(const QString &name, const QString &msg)
Constructs a new DBus message representing an error, with the given name and msg.
static QDBusMessage createMethodCall(const QString &destination, const QString &path, const QString &interface, const QString &method)
Constructs a new DBus message representing a method call.
static QDBusPendingCall fromError(const QDBusError &error)
The QDBusServiceWatcher class allows the user to watch for a bus service change.
QVariant variant() const
Returns this D-Bus variant as a QVariant object.
void reserve(qsizetype size)
void append(parameter_type t)
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
QThread * thread() const
Returns the thread in which the object lives.
bool setProperty(const char *name, const QVariant &value)
Sets the value of the object's name property to value.
void destroyed(QObject *=nullptr)
This signal is emitted immediately before the object obj is destroyed, after any instances of QPointe...
\macro QT_RESTRICTED_CAST_FROM_ASCII
static QString fromUtf8(QByteArrayView utf8)
This is an overloaded member function, provided for convenience. It differs from the above function o...
bool isEmpty() const
Returns true if the string has no characters; otherwise returns false.
static QThread * currentThread()
#define DBUS_INTERFACE_PROPERTIES
bool checkInterfaceName(const QString &name, AllowEmptyFlag empty, QDBusError *error)
QString dbusInterfaceProperties()
bool checkObjectPath(const QString &path, AllowEmptyFlag empty, QDBusError *error)
bool checkBusName(const QString &name, AllowEmptyFlag empty, QDBusError *error)
QString disconnectedErrorMessage()
CallMode
This enum describes the various ways of placing a function call.
Combined button and popup list for selecting options.
constexpr QBindableInterface iface
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 const char DBusError * error
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
static QDBusError checkIfValid(const QString &service, const QString &path, const QString &interface, bool isDynamic, bool isPeer)
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
static ControlElement< T > * ptr(QWidget *widget)
GLbitfield GLuint64 timeout
[4]
GLsizei const GLchar *const * path
#define Q_ASSERT_X(cond, x, msg)
#define qPrintable(string)
#define QStringLiteral(str)
static bool match(const uchar *found, uint foundLen, const char *target, uint targetLen)
if(qFloatDistance(a, b)<(1<< 7))
[0]
obj metaObject() -> className()
bool contains(const AT &t) const noexcept
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent