Класс QDBusReply
шаблон <typename T> класс QDBusReplyКласс QDBusReply хранит ответ на вызов метода удаленного объекта. Подробнее...
| Заголовок: | #include <QDBusReply> |
| CMake: | find_package(Qt6 COMPONENTS Dbus REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Dbus) |
| qmake: | QT += dbus |
Открытые функции
| QDBusReply(const QDBusError &error = QDBusError()) | |
| QDBusReply(const QDBusPendingReply<T> &reply) | |
| QDBusReply(const QDBusPendingCall &pcall) | |
| QDBusReply(const QDBusReply<T> &other) | |
| QDBusReply(const QDBusMessage &reply) | |
| QDBusReply<T> & | operator=(const QDBusReply<T> &other) |
| QDBusReply<T> & | operator=(const QDBusError &dbusError) |
| QDBusReply<T> & | operator=(const QDBusPendingCall &pcall) |
| QDBusReply<T> & | operator=(const QDBusMessage &reply) |
| const QDBusError & | error() const |
| const QDBusError & | error() |
| bool | isValid() const |
| QDBusReply::Type | value() const |
| QDBusReply::Type | operator QDBusReply::Type() const |
Подробное описание
Объект QDBusReply — это подмножество объекта QDBusMessage, представляющего ответ на вызов метода. Он содержит только первый выходной аргумент или код ошибки и используется производными классами QDBusInterface для возможности возвращать код ошибки в качестве аргумента возврата функции.
Его можно использовать следующим образом:
QDBusReply<QString> reply = interface->call("RemoteMethod");
if (reply.isValid())
// use the returned value
useValue(reply.value());
else
// call failed. Show an error condition.
showError(reply.error()); Если удаленный вызов метода не может завершиться ошибкой, вы можете пропустить проверку ошибок:
reply = interface->call("RemoteMethod"); Однако, если при этих условиях произойдет ошибка, значение, возвращаемое QDBusReply<T>::value(), будет значением по умолчанию. Оно может быть неотличимо от допустимого возвращаемого значения.
Объекты QDBusReply используются для удаленных вызовов, не имеющих выходных аргументов или значений возврата (т. е. они имеют тип возврата «void»). Используйте функцию isValid() для проверки успешности ответа.
См. также QDBusMessage и QDBusInterface.
Документация по членам-функциям
QDBusReply::QDBusReply(const QDBusError &error = QDBusError())
Создает ответ с ошибкой из кода ошибки D-Bus, заданного параметром error.
QDBusReply::QDBusReply(const QDBusPendingReply<T> &reply)
Создает объект QDBusReply из сообщения с ожидаемым ответом reply.
QDBusReply::QDBusReply(const QDBusPendingCall &pcall)
Автоматически создает объект QDBusReply из асинхронного ожидающего вызова pcall. Если вызов ещё не завершен, QDBusReply вызовет QDBusPendingCall::waitForFinished(), что является блокирующей операцией.
Если типы возврата совпадают, QDBusReply извлечёт первый аргумент возврата из ответа.
[since 5.15] QDBusReply::QDBusReply(const QDBusReply<T> &other)
Создаёт копию other.
Эта функция была добавлена в Qt 5.15.
QDBusReply::QDBusReply(const QDBusMessage &reply)
Автоматически создаёт объект QDBusReply из сообщения с ответом reply, извлекая первое возвращаемое значение из него, если это успешный ответ.
QDBusReply<T> &QDBusReply::operator=(const QDBusReply<T> &other)
Делает этот объект копией объекта other.
QDBusReply<T> &QDBusReply::operator=(const QDBusError &dbusError)
Устанавливает этот объект для хранения кода ошибки, заданного dbusError. Позже вы можете получить доступ к нему с помощью error().
QDBusReply<T> &QDBusReply::operator=(const QDBusPendingCall &pcall)
Делает этот объект содержащим ответ, указанный ожидающим асинхронным вызовом pcall. Если вызов ещё не завершен, эта функция вызовет QDBusPendingCall::waitForFinished(), чтобы заблокироваться до получения ответа.
Если pcall завершится с сообщением об ошибке, эта функция скопирует код и сообщение об ошибке в этот объект
Если pcall завершился стандартным сообщением с ответом и содержит как минимум один параметр, он будет скопирован в этот объект, при условии, что он имеет правильный тип. Если он не имеет того же типа, что и этот объект QDBusError, эта функция вместо этого установит код ошибки, указывающий на несовпадение типов.
QDBusReply<T> &QDBusReply::operator=(const QDBusMessage &reply)
Делает этот объект содержащим сообщение reply. Если reply — сообщение об ошибке, эта функция скопирует код и сообщение об ошибке в этот объект
Если reply — стандартное сообщение с ответом и содержит как минимум один параметр, он будет скопирован в этот объект, при условии, что он имеет правильный тип. Если он не имеет того же типа, что и этот объект QDBusError, эта функция вместо этого установит код ошибки, указывающий на несовпадение типов.
const QDBusError &QDBusReply::error() const
Возвращает код ошибки, возвращённый удалённой функцией вызова. Если удалённый вызов не вернул ошибку (т. е. был успешным), то возвращаемый объект QDBusError не будет представлять действительный код ошибки (QDBusError::isValid() вернёт false).
См. также isValid().
const QDBusError &QDBusReply::error()
Это перегруженная функция.
bool QDBusReply::isValid() const
Возвращает true если ошибка не произошла; в противном случае возвращает false.
См. также error().
QDBusReply::Type QDBusReply::value() const
Возвращает значение возврата удалённой функции вызова. Если удалённый вызов завершился ошибкой, значение, возвращаемое этой функцией, не определено и может быть неотличимо от допустимого возвращаемого значения.
Эта функция недоступна, если удалённый вызов возвращает void.
QDBusReply::Type QDBusReply::operator QDBusReply::Type() const
Возвращает то же самое, что и value().
Эта функция недоступна, если удалённый вызов возвращает void.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qdbusreply.html