Spec-Zone.ru › Qt

Класс QDBusReply

шаблон <typename T> class QDBusReply

Класс QDBusReply хранит ответ на вызов метода удалённому объекту. Подробнее...

Заголовок: #include <QDBusReply>
CMake: find_package(Qt6 COMPONENTS Dbus REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Dbus)
qmake: QT += dbus
  • Список всех членов, включая унаследованные

Публичные функции

QDBusReply(const QDBusError &error = QDBusError())
QDBusReply(const QDBusPendingReply<T> &reply)
QDBusReply(const QDBusPendingCall &pcall)
QDBusReply(const QDBusReply<T> &other)
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());

Если удалённый вызов метода не может завершиться ошибкой, можно пропустить проверку ошибок:

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 извлечёт первый аргумент возврата из ответа.

[since 5.15] QDBusReply::QDBusReply(const QDBusReply<T> &other)

Создаёт копию other.

Эта функция была добавлена в Qt 5.15.

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-6.2/qdbusreply.html

Spec-Zone.ru

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