QDBusPendingCall Class

The QDBusPendingCall class refers to one pending asynchronous call. More...

Header: #include <QDBusPendingCall>
qmake: QT += dbus
Since: Qt 4.5
Inherited By:

QDBusPendingCallWatcher and QDBusPendingReply

Public Functions

QDBusPendingCall(const QDBusPendingCall &other)
~QDBusPendingCall()
void swap(QDBusPendingCall &other)
QDBusPendingCall &operator=(QDBusPendingCall &&other)
QDBusPendingCall &operator=(const QDBusPendingCall &other)

Static Public Members

QDBusPendingCall fromCompletedCall(const QDBusMessage &msg)
QDBusPendingCall fromError(const QDBusError &error)

Protected Variables

QExplicitlySharedDataPointer<QDBusPendingCallPrivate> d

Detailed Description

The QDBusPendingCall class refers to one pending asynchronous call.

A QDBusPendingCall object is a reference to a method call that was sent over D-Bus without waiting for a reply. QDBusPendingCall is an opaque type, meant to be used as a handle for a pending reply.

In most programs, the QDBusPendingCall class will not be used directly. It can be safely replaced with the template-based QDBusPendingReply, in order to access the contents of the reply or wait for it to be complete.

The QDBusPendingCallWatcher class allows one to connect to a signal that will indicate when the reply has arrived or if the call has timed out. It also provides the QDBusPendingCallWatcher::waitForFinished() method which will suspend the execution of the program until the reply has arrived.

Note: If you create a copy of a QDBusPendingCall object, all information will be shared among the many copies. Therefore, QDBusPendingCall is an explicitly-shared object and does not provide a method of detaching the copies (since they refer to the same pending call)

See also QDBusPendingReply, QDBusPendingCallWatcher, and QDBusAbstractInterface::asyncCall().

Member Function Documentation

QDBusPendingCall::QDBusPendingCall(const QDBusPendingCall &other)

Creates a copy of the other pending asynchronous call. Note that both objects will refer to the same pending call.

QDBusPendingCall::~QDBusPendingCall()

Destroys this copy of the QDBusPendingCall object. If this copy is also the last copy of a pending asynchronous call, the call will be canceled and no further notifications will be received. There will be no way of accessing the reply's contents when it arrives.

[static] QDBusPendingCall QDBusPendingCall::fromCompletedCall(const QDBusMessage &msg)

Creates a QDBusPendingCall object based on the message msg. The message must be of type QDBusMessage::ErrorMessage or QDBusMessage::ReplyMessage (that is, a message that is typical of a completed call).

This function is useful for code that requires simulating a pending call, but that has already finished.

This function was introduced in Qt 4.6.

See also fromError().

[static] QDBusPendingCall QDBusPendingCall::fromError(const QDBusError &error)

Creates a QDBusPendingCall object based on the error condition error. The resulting pending call object will be in the "finished" state and QDBusPendingReply::isError() will return true.

This function was introduced in Qt 4.6.

See also fromCompletedCall().

void QDBusPendingCall::swap(QDBusPendingCall &other)

Swaps this pending call instance with other. This function is very fast and never fails.

This function was introduced in Qt 5.0.

QDBusPendingCall &QDBusPendingCall::operator=(QDBusPendingCall &&other)

Move-assignment operator.

QDBusPendingCall &QDBusPendingCall::operator=(const QDBusPendingCall &other)

Creates a copy of the other pending asynchronous call and drops the reference to the previously-referenced call. Note that both objects will refer to the same pending call after this function.

If this object contained the last reference of a pending asynchronous call, the call will be canceled and no further notifications will be received. There will be no way of accessing the reply's contents when it arrives.

© 2021 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.