Класс QDBusMessage
Класс QDBusMessage представляет собой одно сообщение, отправленное или полученное по шине D-Bus. Подробнее...
| Заголовок: | #include <QDBusMessage> |
| CMake: | find_package(Qt6 COMPONENTS Dbus REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Dbus) |
| qmake: | QT += dbus |
Открытые типы
| Перечисление | ТипСообщения { ВызовМетода, СигнальноеСообщение, СообщениеОтвет, СообщениеОбОшибке, НекорректноеСообщение } |
Открытые функции
| 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) |
Статические открытые члены
| 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)
Создаёт новый сообщение D-Bus, представляющее ошибку, с заданным именем name и сообщением msg.
[static] QDBusMessage QDBusMessage::createError(const QDBusError &error)
Создаёт новое сообщение D-Bus, представляющее заданную ошибку error.
[static] QDBusMessage QDBusMessage::createError(QDBusError::ErrorType type, const QString &msg)
Создаёт новое сообщение D-Bus для типа ошибки type, используя сообщение msg. Возвращает сообщение D-Bus.
QDBusMessage QDBusMessage::createErrorReply(const QString &name, const QString &msg) const
Создаёт новое сообщение D-Bus, представляющее сообщение об ошибке в ответе, с заданным именем name и сообщением msg.
QDBusMessage QDBusMessage::createErrorReply(const QDBusError &error) const
Создаёт новое сообщение D-Bus, представляющее сообщение об ошибке в ответе, из заданного объекта error.
QDBusMessage QDBusMessage::createErrorReply(QDBusError::ErrorType type, const QString &msg) const
Создаёт новое сообщение D-Bus в ответе для типа ошибки type, используя сообщение msg. Возвращает сообщение D-Bus.
[static] QDBusMessage QDBusMessage::createMethodCall(const QString &service, const QString &path, const QString &interface, const QString &method)
Создаёт новое сообщение D-Bus, представляющее вызов метода. Вызов метода всегда указывает свой адрес назначения (service, path, interface и method).
Автобус D-Bus позволяет вызывать метод на заданном удалённом объекте без указания интерфейса назначения, если имя метода уникально. Однако, если два интерфейса на удалённом объекте экспортируют одно и то же имя метода, результат неопределён (может быть вызван один из них или возвращена ошибка).
При использовании D-Bus в контексте peer-to-peer (то есть не на автобусе), параметр service является необязательным.
Класс QDBusInterface предоставляет более простую абстракцию для синхронного вызова методов.
Эта функция возвращает объект QDBusMessage, который можно отправить с помощью QDBusConnection::call().
QDBusMessage QDBusMessage::createReply(const QList<QVariant> &arguments = QList<QVariant>()) const
Создаёт новое сообщение D-Bus, представляющее ответ, с заданными arguments.
QDBusMessage QDBusMessage::createReply(const QVariant &argument) const
Создаёт новое сообщение D-Bus, представляющее ответ, с заданным argument.
[static] QDBusMessage QDBusMessage::createSignal(const QString &path, const QString &interface, const QString &name)
Создаёт новое сообщение D-Bus с заданным path, interface и name, представляющее событие сигнала.
Сигнал D-Bus испускается одним приложением и принимается всеми приложениями, подписяными на этот сигнал из этого интерфейса.
Объект QDBusMessage, который возвращается, может быть отправлен с помощью функции QDBusConnection::send().
[static, since 5.6] QDBusMessage QDBusMessage::createTargetedSignal(const QString &service, const QString &path, const QString &interface, const QString &name)
Создаёт новое сообщение D-Bus с заданным path, interface и name, представляющее событие сигнала определённому получателю.
Сигнал D-Bus испускается одним приложением и принимается только приложением, владеющим именем службы назначения 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.0/qdbusmessage.html