我有一个使用Boost.ASIO编写的程序。我正在寻找可以与它一起使用的C ++ XMPP客户端库,也就是说,一个已经使用Boost.ASIO并且公开其内部io_service实例的库,或者我可以用我自己的现有io_service实例初始化的库然后在我的io_service上调用run()。
显然Swiften(https://swift.im/swiften.html)在内部使用Boost,但我无法找到有关如何获取内部io_service的任何示例。
任何指针?
答案 0 :(得分:2)
根据source code的一些片段,Swiften在内部使用Boost,但不是ASIO的一部分。它使用shared_ptr
,boost::bind
,随机生成器等内容,但不使用boost::asio
。
根据消息来源,Swift::EventLoop
有io_service
- 类似界面,但不使用它。
所以答案是:不,你不能从Swiften中提取io_service
,因为它不使用 boost :: asio 。
UPD:但是,您可以以异步方式在单独的线程中使用Swiften,然后对您自己的eventloop执行io_service::post
,但需要编写我们自己的包装器,完成处理程序等来管理它。