Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
18.07.2023
Размер:
5.73 Mб
Скачать

вернуть: набор некоторых данных, код ошибки, либо может вообще не возвращать данных (void).

Сигнал (Signal) — некоторое сообщение, которое распространяется среди всех программ, подписанных на этот сигнал на этом интерфейсе данного объекта и данной программы. Сигналы могут содержать набор данных.

Сообщение (Message) — каждая передача данных на шине представляется в виде сообщений. Они могут быть 4-х типов: вызовы методов, сигналы, результаты методов, ошибки.

Прокси-объект (Proxy object) - объект одного из языков программирования: C++, Python, Java и других, вызовы методов которых проецируются на вызовы методов шины D-Bu

Схема взаимодействия

Взаимодействие между приложениями происходит через серверное приложение Bus

Daemon Process, которое реализовано в виде программы dbus-daemon.

Процесс взаимодействия обеспечивается специальным механизмом сокетов: Socket

Bidirectional Message Stream.

Точками соединения являются универсальные программные конструкции, которые

обозначены как DbusConnectionInstance.

Bus Daemon Process обеспечивает диспетчеризацию именованных сообщений между приложениями, используя системные вызовы, реализованные в библиотеке libdbus.

Взаимодействующие приложения используют всего два типа вызовов: Incoming Call

и Outgoing Call

95. Библиотека libdbus.

Низкоуровневое взаимодействие приложений через шину D-Bus обеспечивается с помощью библиотеки libdbus

Простейший пример приложений, взаимодействующих с помощью библиотеки libdbus, рассмотрим для случая ПО Skype.

запущено приложение Skype, которое регистрируется на шине с дополнительным именем com.Skype.API;

другое приложение, «Клиент автоматизации Skype», посылает первому сообщение, вызывая его метод Invoke().

96. Проекции ПО D-Bus на языки программирования.

Для эффективного использования возможностей шины применяются проекции libdbus, реализованные на различные языки.

Широко известны следующие проекции: GLib API ,Python API,Qt API

Для доступа к шине D-Bus из языка shell используется набор утилит, которые лежат в руководстве man:

Если вкратце для работы с D-Bus необходимо хорошо знать приложение, с которым

осуществляется взаимодействие, или написать такое приложение самому.

Соседние файлы в папке 5. Операционные системы (complete)