IPC в огненном дыхании (boost c ++) - PullRequest
1 голос
/ 13 апреля 2011

Мне нужно отправить строку из одного процесса в другой с помощью Boost.На самом деле я пытаюсь создать плагин firebreath (firebreath использует Boost в своем бэкэнде), который должен быть способен отправлять сообщения другому плагину firebreath.Я думаю, что это должен быть какой-то механизм событий;когда плагин отправителя отправляет строку, событие должно быть запущено в плагине получателя.Каков наилучший способ сделать это?

1 Ответ

2 голосов
/ 13 апреля 2011

некоторые предлагают использовать boost :: ipc, другие предупреждают, что boost :: ipc не работает на Windows.Я не пробовал повысить :: Ipc сам, поэтому я не знаю.Одним из вариантов будет использование boost :: asio для создания локального сокета (сокета на localhost) и запуска потока для прослушивания на одной стороне;другой вариант на окнах будет использовать именованные каналы.В прошлом я пользовался именованными каналами с большим успехом.

Главное, что нужно помнить, это то, что вы не можете заблокировать основной поток в FireBreath - если вы сделаете это, вы заблокируете процесс браузера илив лучшем случае выведите диалоговое окно с вопросом, хотят ли они убить ваш плагин.Вместо этого создайте второй поток для обработки слушателя, а затем вызовите FireEvent, когда что-то случится, о чем ваша страница должна знать.

См. Также Хороший ли Boost IPC?

...