Главная · Все классы · Основные классы · Классы по группам · Модули · Функции

Использование адаптеров QtDBus

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

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

Для того, чтобы использовать адаптер его нужно создать класс, который унаследован от QDBusAbstractAdaptor. Поскольку это стандартный класс, производный от QObject, то в декларации должен фигурировать макрос Q_OBJECT, а файл с исходным кодом - обработан с помощью инструмента moc. The class must also contain one or more Q_CLASSINFO entries with the "D-Bus Interface" name, declaring which interfaces it is exporting.

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

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

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

Смотрите также QDBusAbstractAdaptor.


Copyright © 2008 Trolltech Торговые марки
Qt 4.3.5