我正在开发一个系统,该系统需要将各种数据从非常低级的库传递到更高级别的C ++应用程序。一般流程是C ++应用程序层向低级库发出请求,然后低级库将异步响应结果。在C ++应用程序和低级库之间,有很多层。例如,应用程序可能具有称为GetEventDetails的方法,该方法在低级库之前调用其他一些类。例如。

App::GetEventDetails
--ClassA::GetEventDetails
---ClassB::GetEventDetails
-----LowLevelLib::GetEventDetails
..
.. at some point in future...
..
LowLevelLib::ReturnEventDetails


现在,当低层库返回结果时,它不知道将结果传回的应用层。因此,一种方法可能是从App类一直传递到某种通知处理程序的指针,直到底层代码,但它可以在每个级别添加很多额外的代码,只是传递此指针。

我想知道其他人如何解决类似的问题?

最佳答案

我建议您看一下Boost.Asio。如果您不打算使用它,至少通过查看其体系结构描述,您将对要做什么和要解决的典型问题有个很好的了解。但是我建议您使用它,因为Boost.Asio很难以可靠,实用和快速的方式进行异步I / O。

10-08 11:16