Spec-Zone.ru › Qt 5.12

Класс QDBusPendingCall

Класс QDBusPendingCall ссылается на один ожидающий асинхронный вызов. Подробнее...

Заголовок: #include <QDBusPendingCall>
qmake: QT += dbus
С момента: Qt 4.5
Наследуется:

QDBusPendingCallWatcher и QDBusPendingReply

  • Список всех членов, включая наследуемые

Открытые функции

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

Статические открытые члены

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

Защищённые переменные

QExplicitlySharedDataPointer<QDBusPendingCallPrivate> d

Подробное описание

Класс QDBusPendingCall ссылается на один ожидающий асинхронный вызов.

Объект QDBusPendingCall — ссылка на вызов метода, отправленный по D-Bus без ожидания ответа. QDBusPendingCall — это непрозрачный тип, используемый в качестве маркера для ожидающего ответа.

В большинстве программ класс QDBusPendingCall не используется напрямую. Его можно безопасно заменить шаблонным классом QDBusPendingReply, чтобы получить доступ к содержимому ответа или дождаться его завершения.

Класс QDBusPendingCallWatcher позволяет подключиться к сигналу, который укажет, когда ответ пришёл или вызов истек по времени. Он также предоставляет метод QDBusPendingCallWatcher::waitForFinished(), который приостановит выполнение программы до тех пор, пока ответ не придёт.

Примечание: Если вы создаёте копию объекта QDBusPendingCall, вся информация будет разделяться между многими копиями. Поэтому QDBusPendingCall является объектом с явным совместным использованием и не предоставляет метод открепления копий (так как они ссылаются на один и тот же ожидающий вызов).

См. также QDBusPendingReply, QDBusPendingCallWatcher и QDBusAbstractInterface::asyncCall.

Документация по членам-функциям

QDBusPendingCall::QDBusPendingCall(const QDBusPendingCall &other)

Создаёт копию ожидающего асинхронного вызова other. Обратите внимание, что оба объекта будут ссылаться на тот же ожидающий вызов.

QDBusPendingCall::~QDBusPendingCall()

Удаляет эту копию объекта QDBusPendingCall. Если эта копия также является последней копией ожидающего асинхронного вызова, вызов будет отменён, и дальнейшие уведомления не будут получены. Не будет возможности получить доступ к содержимому ответа, когда он придёт.

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

Создаёт объект QDBusPendingCall на основе сообщения msg. Сообщение должно быть типа QDBusMessage::ErrorMessage или QDBusMessage::ReplyMessage (то есть сообщение, типичное для завершенного вызова).

Эта функция полезна для кода, которому требуется имитировать ожидающий вызов, но который уже завершился.

Эта функция была добавлена в Qt 4.6.

См. также fromError().

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

Создаёт объект QDBusPendingCall на основе состояния ошибки error. Результирующий ожидающий объект вызова будет в состоянии «завершено», и QDBusPendingReply::isError() вернёт true.

Эта функция была добавлена в Qt 4.6.

См. также fromCompletedCall().

void QDBusPendingCall::swap(QDBusPendingCall &other)

Меняет местами этот экземпляр ожидающего вызова с other. Эта функция очень быстрая и никогда не терпит неудачу.

Эта функция была добавлена в Qt 5.0.

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

Оператор перемещающего присваивания.

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

Создаёт копию ожидающего асинхронного вызова other и освобождает ссылку на ранее ссылавшийся вызов. Обратите внимание, что оба объекта будут ссылаться на тот же ожидающий вызов после выполнения этой функции.

Если этот объект содержал последнюю ссылку на ожидающий асинхронный вызов, вызов будет отменён, и дальнейшие уведомления не будут получены. Не будет возможности получить доступ к содержимому ответа, когда он придёт.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qdbuspendingcall.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API