Класс 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 завершился стандартным сообщением об ответе и содержит по крайней мере один параметр, он будет скопирован в этот объект, если его тип соответствует типу этого объекта. Если тип не совпадает, эта функция установит код ошибки, указывающий на несоответствие типов.
QDBusReply<T> &QDBusReply::operator=(const QDBusMessage &reply)
Делает этот объект содержащим сообщение reply. Если reply — сообщение об ошибке, эта функция скопирует код и сообщение об ошибке в этот объект.
Если reply — стандартное сообщение об ответе и содержит по крайней мере один параметр, он будет скопирован в этот объект, если его тип соответствует типу этого объекта. Если тип не совпадает, эта функция установит код ошибки, указывающий на несоответствие типов.
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.0/qdbusreply.html