Класс QDBusPendingCall
Класс QDBusPendingCall относится к одному ожидающему асинхронному вызову. Подробнее...
| Заголовок: | #include <QDBusPendingCall> |
| CMake: | find_package(Qt6 COMPONENTS Dbus REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Dbus) |
| qmake: | QT += dbus |
| Наследуется от: |
Открытые функции
| QDBusPendingCall(const QDBusPendingCall &other) | |
| QDBusPendingCall & | operator=(const QDBusPendingCall &other) |
| ~QDBusPendingCall() | |
| void | swap(QDBusPendingCall &other) |
Статические открытые члены
| QDBusPendingCall | fromCompletedCall(const QDBusMessage &msg) |
| QDBusPendingCall | fromError(const QDBusError &error) |
Подробное описание
Объект QDBusPendingCall — ссылка на вызов метода, отправленный по D-Bus без ожидания ответа. QDBusPendingCall — это непрозрачный тип, предназначенный для использования в качестве маркера для ожидающего ответа.
В большинстве программ класс QDBusPendingCall не используется напрямую. Его можно безопасно заменить шаблонным классом QDBusPendingReply, чтобы получить доступ к содержимому ответа или дождаться его завершения.
Класс QDBusPendingCallWatcher позволяет подключиться к сигналу, который укажет, когда ответ прибыл или вызов истек по времени. Он также предоставляет метод QDBusPendingCallWatcher::waitForFinished(), который приостанавливает выполнение программы до прибытия ответа.
Примечание: Если вы создадите копию объекта QDBusPendingCall, вся информация будет разделена между многими копиями. Поэтому QDBusPendingCall — это явный объект с разделением памяти, и он не предоставляет метод отсоединения копий (поскольку они ссылаются на тот же ожидающий вызов).
См. также QDBusPendingReply и QDBusPendingCallWatcher.
Документация по членам-функциям
QDBusPendingCall::QDBusPendingCall(const QDBusPendingCall &other)
Создаёт копию ожидающего асинхронного вызова other. Обратите внимание, что оба объекта будут ссылаться на тот же ожидающий вызов.
QDBusPendingCall &QDBusPendingCall::operator=(const QDBusPendingCall &other)
Создаёт копию ожидающего асинхронного вызова other и удаляет ссылку на ранее ссылавшийся вызов. Обратите внимание, что оба объекта будут ссылаться на тот же ожидающий вызов после этой функции.
Если этот объект содержал последнюю ссылку на ожидающий асинхронный вызов, вызов будет отменён, и дальнейшие уведомления не будут получены. Не будет возможности получить доступ к содержимому ответа при его прибытии.
QDBusPendingCall::~QDBusPendingCall()
Уничтожает эту копию объекта QDBusPendingCall. Если эта копия также является последней копией ожидающего асинхронного вызова, вызов будет отменён, и дальнейшие уведомления не будут получены. Не будет возможности получить доступ к содержимому ответа при его прибытии.
[static] QDBusPendingCall QDBusPendingCall::fromCompletedCall(const QDBusMessage &msg)
Создаёт объект QDBusPendingCall на основе сообщения msg. Сообщение должно быть типа QDBusMessage::ErrorMessage или QDBusMessage::ReplyMessage (то есть сообщение, которое типично для завершённого вызова).
Эта функция полезна для кода, которому требуется смоделировать ожидающий вызов, но который уже завершён.
См. также fromError().
[static] QDBusPendingCall QDBusPendingCall::fromError(const QDBusError &error)
Создаёт объект QDBusPendingCall на основе условия ошибки error. Результирующий объект ожидающего вызова будет в состоянии "завершён" и QDBusPendingReply<Types...>::isError() вернёт true.
См. также fromCompletedCall().
[since 5.0] void QDBusPendingCall::swap(QDBusPendingCall &other)
Меняет местами этот экземпляр ожидающего вызова с other. Эта функция очень быстрая и никогда не завершается неудачно.
Эта функция была добавлена в Qt 5.0.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qdbuspendingcall.html