Класс QDBusMessage
Класс QDBusMessage представляет собой одно сообщение, отправленное или полученное через шину D-Bus. Подробнее...
| Заголовок: | #include <QDBusMessage> |
| qmake: | QT += dbus |
| С: | Qt 4.2 |
Этот класс был представлен в Qt 4.2.
Типы Public
| перечисление | MessageType { MethodCallMessage, SignalMessage, ReplyMessage, ErrorMessage, InvalidMessage } |
Функции 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::MessageType | 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) |
Подробное описание
Этот объект может представлять любой из четырёх различных типов сообщений (MessageType), которые могут возникнуть в шине:
- Вызовы методов
- Возвращаемые значения методов
- Издание сигналов
- Коды ошибок
Объекты этого типа создаются с помощью статических функций createError(), createMethodCall() и createSignal(). Используйте функцию QDBusConnection::send() для отправки сообщений.
Документация по типам членов
перечисление QDBusMessage::MessageType
Возможные типы сообщений:
| Константа | Значение | Описание |
|---|---|---|
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 автоматически запустит службу, если она ещё не запущена.
Эта функция была добавлена в Qt 4.7.
См. также 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).
DBus позволяет вызывать метод на удаленном объекте без указания интерфейса назначения, если имя метода уникально. Однако, если два интерфейса на удаленном объекте экспортируют одно и то же имя метода, результат неопределен (может быть вызван один из них или возвращена ошибка).
При использовании D-Bus в контексте "точка-точка" (то есть не на шине) параметр 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] 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
Возвращает удобочитаемое сообщение, связанное с полученной ошибкой.
Эта функция была добавлена в Qt 4.3.
QString QDBusMessage::errorName() const
Возвращает имя полученной ошибки.
QString QDBusMessage::interface() const
Возвращает интерфейс вызываемого метода (в случае вызова метода) или сигнала, полученного из него.
bool QDBusMessage::isDelayedReply() const
Возвращает флаг отложенного ответа, установленный с помощью setDelayedReply(). По умолчанию этот флаг равен false, что означает, что Qt D-Bus будет генерировать автоматические ответы при необходимости.
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. В этих файлах затем содержится имя службы и путь к программе, которая должна быть выполнена при запросе этого имени службы.
Эта функция была добавлена в Qt 4.7.
См. также autoStartService().
void QDBusMessage::setDelayedReply(bool enable) const
Устанавливает, будет ли сообщение отвечать позже (если enable истинно) или Qt D-Bus сгенерирует автоматический ответ (если enable ложно).
В D-Bus все вызовы методов должны генерировать ответ вызывающей стороне, если только вызывающая сторона явно не указывает иначе (см. isReplyRequired()). QtDBus автоматически генерирует такие ответы для вызовов любых слотов, но также позволяет слотам указать, будут ли они отвечать за отправку ответа позже, после завершения обработки функции.
См. также isDelayedReply() и Отложенные ответы.
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-5.13/qdbusmessage.html