У меня есть программа, написанная с использованием Boost.ASIO. Я ищу клиентскую библиотеку C ++ XMPP, которая могла бы использоваться с ней, то есть библиотеку, которая уже использует Boost.ASIO и которая либо предоставляет свой внутренний экземпляр io_service, либо которую я могу инициализировать своим собственным существующим экземпляром io_service, а затем просто вызовите run () на моем io_service.
Видимо свифтен (https://swift.im/swiften.html) использует Boost для внутреннего использования, но я не могу найти ни одного примера того, как получить внутренний io_service.
Любой указатель?
По некоторым фрагментам исходный код, Swiften использует Boost для внутреннего использования, но не для ASIO. Он использует такие вещи, как shared_ptr
, boost::bind
, генератор случайных чисел и так далее, но не boost::asio
,
И согласно источникам, Swift::EventLoop
имеет io_service
интерфейс, но не использовать его.
Таким образом, ответ: нет, вы не можете извлечь io_service
от Swiften, так как его не используют повышение :: ASIO.
UPD: Но вы можете использовать Swiften в отдельном потоке асинхронно, а затем сделать io_service::post
к вашей собственной ленте событий, но вам нужно написать нашу собственную оболочку, обработчики завершения и так далее, чтобы управлять этим.
Других решений пока нет …