有没有办法将 Boost.Asio 与 Qt4(首选)或 GTK 主循环集成?GTK 提供 poll(2) 之类的 API,所以技术上应该是可行的。Qt 提供了自己的网络层,但我更喜欢使用为 Boost.Asio 编写的现有代码。我想在不使用额外线程的情况下集成它们。
有没有参考如何为 Qt4(首选)或 GTKmm 执行此操作?
谢谢。
编辑
我想澄清几件事以使答案更容易。Qt 和 GTKmm 都提供“选择喜欢”功能:
- http://qt-project.org/doc/qt-5.0/qtcore/qsocketnotifier.html
- http://www.gtkmm.org/docs/glibmm-2.4/docs/reference/html/group__MainLoop.html
所以,问题是,如何将现有的“选择器/轮询器”作为反应器集成到 Boost.Asio io_service
。今天,Boost.Asio 可以使用 select、kqueue、epoll、/dev/poll 和 iocp 作为 reactor/proactor 服务。我想将它集成到 GUI 框架的主循环中。
欢迎任何建议和解决方案(更好)。