Класс QDBusReply
Класс QDBusReply хранит ответ на вызов метода удалённого объекта. Подробнее...
| Заголовок: | #include <QDBusReply> |
| qmake: | QT += dbus |
| С момента: | Qt 4.2 |
Этот класс был представлен в Qt 4.2.
Открытые функции
| QDBusReply(const QDBusError &error = QDBusError()) | |
| QDBusReply(const QDBusPendingReply<T> &reply) | |
| QDBusReply(const QDBusPendingCall &pcall) | |
| 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()); Если удалённый вызов метода не может завершиться ошибкой, вы можете пропустить проверку на ошибки:
QString 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 извлечёт первый аргумент возврата из ответа.
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-5.14/qdbusreply.html