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