Spec-Zone.ru › Qt 6.0

Использование адаптеров Qt D-Bus

Адаптеры — это специальные классы, которые прикрепляются к любому классу, производному от QObject, и предоставляют интерфейс к внешнему миру с помощью D-Bus. Адаптеры предназначены для создания лёгких классов, основная цель которых — перенаправлять вызовы к реальному объекту и от него, возможно, валидируя или преобразуя входные данные из внешнего мира и, таким образом, защищая реальный объект.

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

Для использования адаптера необходимо создать класс, который наследуется от QDBusAbstractAdaptor. Поскольку это стандартный класс, производный от QObject, макрос Q_OBJECT должен появиться в объявлении, а исходный файл должен быть обработан инструментом moc. Класс также должен содержать одну запись Q_CLASSINFO с именем "D-Bus Interface" для объявления экспортируемого интерфейса. Только одна запись на класс поддерживается.

Любой открытый слот в классе будет доступен через шину посредством сообщений типа MethodCall. (См. Объявление слотов в адаптерах D-Bus для получения дополнительной информации). Сигналы в классе будут автоматически перенаправляться через D-Bus. Однако не все типы разрешены в списках параметров сигналов или слотов: см. Системы типов Qt D-Bus для получения дополнительной информации.

Также любая свойство, объявленная с помощью Q_PROPERTY, будет автоматически экспонироваться через интерфейс Свойства в D-Bus. Поскольку система свойств QObject не допускает свойств, которые не для чтения, невозможно объявить однонаправленные свойства с использованием адаптеров.

Дополнительная информация:

  • Объявление слотов в адаптерах D-Bus
  • Объявление сигналов в адаптерах D-Bus
  • Системы типов Qt D-Bus
  • В примере D-Bus Complex Ping Pong, complexpong.h и complexpong.cpp демонстрируют реализацию QDBusAbstractAdaptor.

См. также QDBusAbstractAdaptor.

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

Spec-Zone.ru

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