LINUX.ORG.RU

D-Bus на windows?


0

1

Каково текущее состояние порта D-Bus на ОС windows? Необходимо написать портабельное приложение на Qt и разделить ядро и GUI. Пока видится вариант с D-Bus для организации взаимодействия ядра и GUI, но если он не работает на windows, то придется отказаться.

Есть ли более портабельные аналоги D-Bus-а?

Ответ на: комментарий от maxxant

собирают же: http://sites.google.com/site/dimchansky/dbus

Эта ссылка первое что попадается, но там пример для Qt 4.2 - давно было, пугает некая кустарность этого процесса, невключенность в нокиевскую ветку. Буду рад ошибаться, поправьте плиз. Инфу искал, но внятного не нахожу ответа.

I-Love-Microsoft ★★★★★
() автор топика

Насколько я в курсе, d-bus для windows официально не поддерживается.

KblCb ★★★★★
()

Что за приложение? Может достаточно будет общения через stdin/stdout и использования соответственно QProcess ?

Reset ★★★★★
()

Собирал D-Bus на Windows ещё в 2007, всё работало без проблем. Вообще он призван решать более глобальные задачи взаимодействия со сторонними приложениями, эдакий универсальный клей, как XML в мире структурированных форматов.

Для связи исключительно между собственными процессами советую посмотреть на QLocalServer/QLocalSocket.

Dendy ★★★★★
()
Ответ на: комментарий от Dendy

Сокеты слижком низкоуровнево? Лучше погуглить «rmi c++» и найти подходяшее решение.

theos ★★★
()
Ответ на: комментарий от Dendy

Ядро и GUI может работать на разных машинах - тогда применение D-Bus оправдано? Если есть опыт применения D-Bus, насколько большой оверхед по пропускной способности и по нагрузке на процессор по сравнению с простыми старыми добрыми сокетами (в случае разных компов в сети)?

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

D-Bus изначально предназначен для работы на одной машине, вы уверены, что вам нужен все эти сопутствующие зависимости? http://gabriel.sourceforge.net/howto.html Опять же - как это будет работать на Windows я себе слабо представляю.

Если общение заключается в простом обмене сообщениями - советую таки обратить внимание на QLocalServer + QLocalSocket. Достаточно написать свой класс сообщения и функции записи/чтения для QDataStream.

Если задача расширится на разные машины - просто заменяете QLocalServer + QLocalSocket на QTcpServer + QTcpSocket или QUdpSocket и всё гарантированно продолжает работать на всех платформах.

Если нужна синхронность и сложный формат вызовов, то, как уже сказал theos, погуглите в сторону RMI (Remote Method Instantiation), главное понимать недостатки этого подхода.

Dendy ★★★★★
()
Ответ на: комментарий от antony986

и да, это все работает с Qt

Супер, спасибо за ответы! Тогда еще вопрос... говорят D-Bus в Qt на винде официально не поддерживается. Как тогда его юзать? Что собирать, что качать? Чуточку подробностей плиз...

I-Love-Microsoft ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.