Spec-Zone.ru › Qt 5.9

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API