Класс QDBusPendingCall
Класс QDBusPendingCall относится к одному ожидающему асинхронному вызову. Подробнее...
| Заголовок: | #include <QDBusPendingCall> |
| qmake: | QT += dbus |
| С: | Qt 4.5 |
| Наследуется от: |
Этот класс был представлен в Qt 4.5.
Открытые функции
| 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 (т.е. сообщение, типичное для завершенного вызова).
Эта функция полезна для кода, которому требуется смоделировать ожидающий вызов, но который уже завершен.
Эта функция была представлена в Qt 4.6.
См. также fromError().
[static] QDBusPendingCall QDBusPendingCall::fromError(const QDBusError &error)
Создаёт объект QDBusPendingCall на основе условия ошибки error. Результирующий объект ожидающего вызова будет в состоянии "завершено", и QDBusPendingReply<T1, T2, T3, T4, T5, T6, T7, T8>::isError() вернёт true.
Эта функция была представлена в Qt 4.6.
См. также fromCompletedCall().
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-5.14/qdbuspendingcall.html