Spec-Zone.ru › Qt

Класс QDBusMessage

Класс QDBusMessage представляет собой одно сообщение, отправленное или полученное по шине D-Bus. Подробнее...

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

Типы public

Перечисление ТипСообщения { ВызовМетода, СигнальноеСообщение, Ответ, СообщениеОбОшибке, НедействительноеСообщение }

Функции public

QDBusMessage(const QDBusMessage &other)
QDBusMessage()
QDBusMessage & operator=(const QDBusMessage &other)
~QDBusMessage()
QList<QVariant> arguments() const
bool autoStartService() const
QDBusMessage createErrorReply(const QString &name, const QString &msg) const
QDBusMessage createErrorReply(const QDBusError &error) const
QDBusMessage createErrorReply(QDBusError::ErrorType type, const QString &msg) const
QDBusMessage createReply(const QList<QVariant> &arguments = QList<QVariant>()) const
QDBusMessage createReply(const QVariant &argument) const
QString errorMessage() const
QString errorName() const
QString interface() const
bool isDelayedReply() const
bool isInteractiveAuthorizationAllowed() const
bool isReplyRequired() const
QString member() const
QString path() const
QString service() const
void setArguments(const QList<QVariant> &arguments)
void setAutoStartService(bool enable)
void setDelayedReply(bool enable) const
void setInteractiveAuthorizationAllowed(bool enable)
QString signature() const
void swap(QDBusMessage &other)
QDBusMessage::ТипСообщения type() const
QDBusMessage & operator<<(const QVariant &arg)

Статические public члены

QDBusMessage createError(const QString &name, const QString &msg)
QDBusMessage createError(const QDBusError &error)
QDBusMessage createError(QDBusError::ErrorType type, const QString &msg)
QDBusMessage createMethodCall(const QString &service, const QString &path, const QString &interface, const QString &method)
QDBusMessage createSignal(const QString &path, const QString &interface, const QString &name)
QDBusMessage createTargetedSignal(const QString &service, const QString &path, const QString &interface, const QString &name)

Подробное описание

Этот объект может представлять любой из четырех различных типов сообщений (ТипСообщения), которые могут возникнуть в шине:

  • Вызовы методов
  • Возвращаемые значения методов
  • Выпуск сигналов
  • Коды ошибок

Объекты этого типа создаются с помощью статических функций createError(), createMethodCall() и createSignal(). Используйте функцию QDBusConnection::send() для отправки сообщений.

Документация по типам членов

Перечисление QDBusMessage::ТипСообщения

Возможные типы сообщений:

Константа Значение Описание
QDBusMessage::MethodCallMessage 1 сообщение, представляющее исходящий или входящий вызов метода
QDBusMessage::SignalMessage 4 сообщение, представляющее исходящий или входящий выпуск сигнала
QDBusMessage::ReplyMessage 2 сообщение, представляющее возвращаемые значения вызова метода
QDBusMessage::ErrorMessage 3 сообщение, представляющее условие ошибки в ответ на вызов метода
QDBusMessage::InvalidMessage 0 недействительное сообщение: это никогда не устанавливается для сообщений, полученных от D-Bus

Документация по функциям-членам

QDBusMessage::QDBusMessage(const QDBusMessage &other)

Конструирует копию объекта, заданного other.

Примечание: объекты QDBusMessage совместно используются. Изменения, внесенные в копию, также повлияют на исходный объект. Подробнее см. setDelayedReply().

QDBusMessage::QDBusMessage()

Конструирует пустой, недействительный объект QDBusMessage.

См. также createError(), createMethodCall() и createSignal().

QDBusMessage &QDBusMessage::operator=(const QDBusMessage &other)

Копирует содержимое объекта, заданного other.

Примечание: объекты QDBusMessage являются общими. Изменения, внесенные в копию, также повлияют на оригинал. См. setDelayedReply() для получения дополнительной информации.

QDBusMessage::~QDBusMessage()

Удаляет объект и освобождает все занимаемые ресурсы.

QList<QVariant> QDBusMessage::arguments() const

Возвращает список аргументов, которые будут отправлены или были получены из D-Bus.

См. также setArguments().

bool QDBusMessage::autoStartService() const

Возвращает флаг автоматического запуска, установленный с помощью setAutoStartService(). По умолчанию этот флаг равен true, что означает, что Qt D-Bus автоматически запустит службу, если она уже не запущена.

См. также setAutoStartService().

[static] QDBusMessage QDBusMessage::createError(const QString &name, const QString &msg)

Создает новый сообщение DBus, представляющий ошибку с заданным именем name и сообщением msg.

[static] QDBusMessage QDBusMessage::createError(const QDBusError &error)

Создает новое сообщение DBus, представляющее заданную ошибку error.

[static] QDBusMessage QDBusMessage::createError(QDBusError::ErrorType type, const QString &msg)

Создает новое сообщение DBus для типа ошибки type, используя сообщение msg. Возвращает сообщение DBus.

QDBusMessage QDBusMessage::createErrorReply(const QString &name, const QString &msg) const

Создает новое сообщение DBus, представляющее ответ с ошибкой, с заданным именем name и сообщением msg.

QDBusMessage QDBusMessage::createErrorReply(const QDBusError &error) const

Создает новое сообщение DBus, представляющее ответ с ошибкой, из заданного объекта error.

QDBusMessage QDBusMessage::createErrorReply(QDBusError::ErrorType type, const QString &msg) const

Создает новый ответ DBus с типом ошибки type, используя сообщение msg. Возвращает сообщение DBus.

[static] QDBusMessage QDBusMessage::createMethodCall(const QString &service, const QString &path, const QString &interface, const QString &method)

Создает новое сообщение DBus, представляющее вызов метода. Вызов метода всегда сообщает об адресе назначения (service, path, interface и method).

DBus позволяет вызвать метод на заданном удалённом объекте без указания целевого интерфейса, если имя метода уникально. Однако, если два интерфейса на удалённом объекте экспортируют одно и то же имя метода, результат не определён (может быть вызван один из двух или возвращена ошибка).

При использовании DBus в контексте «точка-точка» (т. е. не на шине) параметр service является необязательным.

Класс QDBusInterface предоставляет более простое абстрагирование для синхронного вызова методов.

Эта функция возвращает объект QDBusMessage, который можно отправить с помощью QDBusConnection::call().

QDBusMessage QDBusMessage::createReply(const QList<QVariant> &arguments = QList<QVariant>()) const

Создает новое сообщение DBus, представляющее ответ с заданными arguments.

QDBusMessage QDBusMessage::createReply(const QVariant &argument) const

Создает новое сообщение DBus, представляющее ответ с заданным argument.

[static] QDBusMessage QDBusMessage::createSignal(const QString &path, const QString &interface, const QString &name)

Создает новое сообщение DBus с заданным path, interface и name, представляющее отправку сигнала.

Сигнал DBus отправляется одним приложением и принимается всеми приложениями, которые слушают этот сигнал от этого интерфейса.

Объект QDBusMessage, который возвращается, может быть отправлен с помощью функции QDBusConnection::send().

[static, since 5.6] QDBusMessage QDBusMessage::createTargetedSignal(const QString &service, const QString &path, const QString &interface, const QString &name)

Создает новое сообщение DBus с заданным path, interface и name, представляющее отправку сигнала в определённый пункт назначения.

Сигнал DBus отправляется одним приложением и принимается только приложением, владеющим именем службы назначения service.

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

QString QDBusMessage::errorMessage() const

Возвращает удобочитаемое сообщение, связанное с полученной ошибкой.

QString QDBusMessage::errorName() const

Возвращает имя полученной ошибки.

QString QDBusMessage::interface() const

Возвращает интерфейс вызываемого метода (в случае вызова метода) или интерфейс полученного сигнала.

bool QDBusMessage::isDelayedReply() const

Возвращает флаг отложенного ответа, установленный с помощью setDelayedReply(). По умолчанию этот флаг равен false, что означает, что Qt D-Bus будет генерировать автоматические ответы при необходимости.

[since 5.12] bool QDBusMessage::isInteractiveAuthorizationAllowed() const

Возвращает флаг разрешения интерактивной авторизации, установленный с помощью setInteractiveAuthorizationAllowed(). По умолчанию этот флаг равен false, и ожидается, что другой конец сделает любые решения об авторизации неинтерактивно и незамедлительно.

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

См. также setInteractiveAuthorizationAllowed().

bool QDBusMessage::isReplyRequired() const

Возвращает флаг, указывающий, требуется ли ответ на это сообщение. Это имеет значение только для сообщений вызова метода: любые другие типы сообщений не могут иметь ответов, и эта функция всегда будет возвращать false для них.

QString QDBusMessage::member() const

Возвращает имя сигнала, который был отправлен, или имя метода, который был вызван.

QString QDBusMessage::path() const

Возвращает путь объекта, которому отправляется это сообщение (в случае вызова метода) или от которого принимается сообщение (для сигнала).

QString QDBusMessage::service() const

Возвращает имя службы или адрес шины удалённого вызова метода.

void QDBusMessage::setArguments(const QList<QVariant> &arguments)

Устанавливает аргументы, которые будут отправлены по D-Bus, в arguments. Это будут аргументы вызова метода или параметры в сигнале.

См. также arguments().

void QDBusMessage::setAutoStartService(bool enable)

Устанавливает флаг автоматического запуска в enable. Этот флаг имеет смысл только для сообщений вызова метода, где он сообщает серверу D-Bus либо автоматически запустить службу, ответственную за имя службы, либо не запускать её.

По умолчанию этот флаг равен true, т. е. служба запускается автоматически. Это означает:

Когда служба, к которой отправляется этот вызов метода, уже запущена, вызов метода отправляется ей. Если служба еще не запущена, от демона D-Bus запрашивается автоматический запуск службы, назначенной этому имени службы. Это обрабатывается файлами .service, которые размещаются в каталоге, известном серверу D-Bus. Эти файлы содержат имя службы и путь к программе, которая должна быть выполнена при запросе этого имени службы.

См. также autoStartService().

void QDBusMessage::setDelayedReply(bool enable) const

Устанавливает, будет ли ответ на сообщение отправлен позже (если enable имеет значение true) или Qt D-Bus сгенерирует автоматический ответ (если enable имеет значение false).

В D-Bus все вызовы методов должны генерировать ответ вызывающей стороне, если только вызывающая сторона явно не указывает иное (см. isReplyRequired()). QtDBus автоматически генерирует такие ответы для вызовов любых слотов, но также позволяет слотам указывать, будут ли они отвечать за отправку ответа позже, после завершения обработки функции.

См. также isDelayedReply() и Отложенные ответы.

[since 5.12] void QDBusMessage::setInteractiveAuthorizationAllowed(bool enable)

Устанавливает флаг интерактивной авторизации в значение enable. Этот флаг имеет смысл только для сообщений вызовов методов, где он сообщает серверу D-Bus, что вызывающая сторона готова дождаться интерактивной авторизации (например, через Polkit) перед фактической обработкой метода.

По умолчанию этот флаг имеет значение false, и ожидается, что другая сторона примет решения об авторизации без участия пользователя и незамедлительно.

Ошибка org.freedesktop.DBus.Error.InteractiveAuthorizationRequired указывает на то, что авторизация не удалась, но могла бы быть успешной, если бы этот флаг был установлен.

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

См. также isInteractiveAuthorizationAllowed().

QString QDBusMessage::signature() const

Возвращает сигнатуру принятого сигнала или выходных аргументов вызова метода.

void QDBusMessage::swap(QDBusMessage &other)

Меняет местами экземпляры QDBusMessage с этим экземпляром и other.

QDBusMessage::MessageType QDBusMessage::type() const

Возвращает тип сообщения.

QDBusMessage &QDBusMessage::operator<<(const QVariant &arg)

Добавляет аргумент arg в список аргументов, которые будут отправлены по D-Bus в вызове метода или при передаче сигнала.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qdbusmessage.html

Spec-Zone.ru

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