Класс QDBusReply
Класс QDBusReply хранит ответ на вызов метода удалённому объекту. Подробнее...
| Заголовок: | #include <QDBusReply> |
| qmake: | QT += dbus |
| С тех пор как: | Qt 4.2 |
Открытые функции
| QDBusReply(const QDBusMessage &reply) | |
| QDBusReply(const QDBusPendingCall &pcall) | |
| QDBusReply(const QDBusPendingReply &reply) | |
| QDBusReply(const QDBusError &error = QDBusError()) | |
| const QDBusError & | error() const |
| const QDBusError & | error() |
| bool | isValid() const |
| QDBusReply::Type | value() const |
| QDBusReply::Type | operator QDBusReply::Type() const |
| QDBusReply<T> & | operator=(const QDBusMessage &reply) |
| QDBusReply<T> & | operator=(const QDBusPendingCall &pcall) |
| QDBusReply<T> & | operator=(const QDBusError &dbusError) |
| QDBusReply<T> & | operator=(const QDBusReply<T> &other) |
Подробное описание
Класс QDBusReply хранит ответ на вызов метода удалённому объекту.
Объект 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 QDBusMessage &reply)
Автоматически создаёт объект QDBusReply из сообщения ответа reply, извлекая первое возвращаемое значение из него, если это успешный ответ.
QDBusReply::QDBusReply(const QDBusPendingCall &pcall)
Автоматически создаёт объект QDBusReply из асинхронного ожидаемого вызова pcall. Если вызов ещё не завершён, QDBusReply вызовет QDBusPendingCall::waitForFinished(), что является блокирующей операцией.
Если типы возвращаемых значений совпадают, QDBusReply извлечёт первый возвращаемый аргумент из ответа.
QDBusReply::QDBusReply(const QDBusPendingReply &reply)
Создаёт объект QDBusReply из сообщения ожидаемого ответа, reply.
QDBusReply::QDBusReply(const QDBusError &error = QDBusError())
Создаёт ответ об ошибке из кода ошибки D-Bus, заданного error.
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.
QDBusReply<T> &QDBusReply::operator=(const QDBusMessage &reply)
Присваивает этому объекту сообщение reply. Если reply является сообщением об ошибке, эта функция скопирует код и сообщение об ошибке в этот объект.
Если reply является стандартным сообщением ответа и содержит по крайней мере один параметр, он будет скопирован в этот объект, при условии, что он имеет правильный тип. Если он не имеет того же типа, что и этот объект QDBusError, эта функция вместо этого установит код ошибки, указывающий несовпадение типов.
QDBusReply<T> &QDBusReply::operator=(const QDBusPendingCall &pcall)
Присваивает этому объекту ответ, указанный ожидающим асинхронным вызовом pcall. Если вызов ещё не завершён, эта функция вызовет QDBusPendingCall::waitForFinished(), чтобы заблокироваться до прибытия ответа.
Если pcall завершился сообщением об ошибке, эта функция скопирует код и сообщение об ошибке в этот объект.
Если pcall завершился стандартным сообщением ответа и содержит по крайней мере один параметр, он будет скопирован в этот объект, при условии, что он имеет правильный тип. Если он не имеет того же типа, что и этот объект QDBusError, эта функция вместо этого установит код ошибки, указывающий несовпадение типов.
QDBusReply<T> &QDBusReply::operator=(const QDBusError &dbusError)
Устанавливает этот объект, содержащий код ошибки, заданный dbusError. Вы можете получить к нему доступ позже с помощью error().
QDBusReply<T> &QDBusReply::operator=(const QDBusReply<T> &other)
Создаёт копию объекта other.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qdbusreply.html