Класс 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.13/qdbusreply.html