Класс QDBusMessage
Класс QDBusMessage представляет одно сообщение, отправленное или полученное по шине D-Bus. Подробнее...
| Заголовок: | #include <QDBusMessage> |
| qmake: | QT += dbus |
| С момента: | Qt 4.2 |
Типы публичного доступа
| Перечисление | MessageType { MethodCallMessage, SignalMessage, ReplyMessage, ErrorMessage, InvalidMessage } |
Функции публичного доступа
| QDBusMessage() | |
| QDBusMessage(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 | 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 |
| QString | signature() const |
| void | swap(QDBusMessage &other) |
| QDBusMessage::MessageType | type() const |
| QDBusMessage & | operator<<(const QVariant &arg) |
| QDBusMessage & | operator=(QDBusMessage &&other) |
| QDBusMessage & | operator=(const QDBusMessage &other) |
Статические члены публичного доступа
| 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) |
Подробное описание
Класс QDBusMessage представляет одно сообщение, отправленное или полученное по шине D-Bus.
Этот объект может представлять любой из четырёх различных типов сообщений (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()
Конструирует пустой, недействительный объект QDBusMessage.
См. также createError(), createMethodCall() и createSignal().
QDBusMessage::QDBusMessage(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)
Создаёт новый 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] QDBusMessage QDBusMessage::createTargetedSignal(const QString &service, const QString &path, const QString &interface, const QString &name)
Создаёт новое DBus-сообщение с заданными path, interface и name, представляющее испускание сигнала конкретному получателю.
DBus-сигнал испускается одной программой и принимается только программой, владеющей именем службы назначения service.
Возвращаемый объект QDBusMessage может быть отправлен с помощью функции QDBusConnection::send().
Эта функция была добавлена в 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::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 true) или Qt D-Bus должен сгенерировать автоматический ответ (если enable false).
В D-Bus все вызовы методов должны генерировать ответ вызывающему, если вызывающий не указывает иного (см. isReplyRequired()). QtDBus автоматически генерирует такие ответы для всех вызываемых слотов, но также позволяет слотам указывать, возьмут ли они на себя ответственность за отправку ответа в более позднее время, после завершения обработки функции.
См. также isDelayedReply() и Отложенные ответы.
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 в вызове метода или при передаче сигнала.
QDBusMessage &QDBusMessage::operator=(QDBusMessage &&other)
Оператор перемещающей присваивания.
QDBusMessage &QDBusMessage::operator=(const QDBusMessage &other)
Копирует содержимое объекта, заданного other.
Примечание: Объекты QDBusMessage являются общими. Изменения, внесенные в копию, также повлияют на исходный объект. Дополнительную информацию см. в setDelayedReply() .
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qdbusmessage.html