通知异步事件的想法

时间:2011-02-17 23:55:35

标签: c++ callback notifications

我正在开发一个系统,需要将各种数据从极低级别的库传递到更高级别的C ++应用程序。一般流程是C ++应用程序层向低级库发出请求,然后低级库将与结果异步回复。在C ++应用程序和低级库之间有许多层。例如,应用程序可能有一个名为GetEventDetails的方法,它在低级库之前调用其他几个类。 E.g。

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

现在,当低级库返回结果时,它不知道要传递结果的Application层。因此,一种方法可能是从App类向低级代码传递指向某种通知处理程序的指针,但它可以在每个级别添加大量额外代码以传递此指针。

我想知道其他人是如何处理类似问题的?

2 个答案:

答案 0 :(得分:2)

我建议你看一下Boost.Asio。如果你不打算使用它,至少通过查看它的架构描述,你会很清楚要做什么和处理的典型问题。但我建议你使用它,因为很难以一种非常强大,实用和快速的方式进行异步I / O,Boost.Asio做得很好。

答案 1 :(得分:0)

此范围内的

通知处理程序与任何其他参数相同。把它传递给你的图层。如果您有深度嵌套,则需要检查您的体系结构,并且通常需要从最高层传递许多参数。