问一个关于C++NPv2的例子
C++NPv2中第七章讲的是关于acceptor 和connector框架,在7.3节中有一个例子讲述了关于客户端日志收集的一个程序,这个程序中既有客户端收集日志信息的接收器acceptor,也有传递信息至日志服务器的连接器connector ,其中有个作为连接二者间桥梁的指针变量output_handler_,当客户端收到信息后可以将信息放到output_handler_的队列中,这样就可以将信息转发给日志服务器,我照这个例子做了个类似的程序,现在有一个问题就是可以在AC_CLD_Acceptor中得到关于AC_CLD_Connector中事件处理类AC_Output_Handler的引用,但是这个引用是如何传递给AC_Input_Handler类的,我看不出来,而且用例子程序进行调试的时候发现没有传进去,我想问一下,是例子中的程序有误,还是我的思路有问题? AC_CLD_Connector或者AC_CLD_Acceptor,会自己生成事件处理类AC_Output_Handler对象的。他们之间有协作关系的。 事实证明,例子中的程序写得是有问题的。后来我改了一下程序修改了一下这个方法int AC_CLD_Acceptor::make_svc_handler (AC_Input_Handler *&sh)
{
sh=new AC_Input_Handler(this->output_handler_);
return 0;
}
程序已经可以运行了。
我本来以为例子里的程序是不会有错的,后来出现问题解决不了我去深究原因解决了这个问题,我想和大家讲的是例子中的程序也有可能是错的,学习ACE不能迷信这些例子(大多数是对的),一定要花时间真正了解框架的原理,这样ACE在我们的手中才会变成一个运用自如的强大的武器,最后谢谢版主的回答。
页:
[1]