Класс QDBusPendingCall
Класс QDBusPendingCall относится к одному ожидающему асинхронному вызову Подробнее...
| Заголовок: | #include <QDBusPendingCall> |
| qmake: | QT += dbus |
| С момента: | Qt 4.5 |
| Наследуется от: |
Открытые функции
| 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) |
Подробное описание
Класс 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/archives/qt-5.6/qdbuspendingcall.html