找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3631|回复: 2

问一个关于C++NPv2的例子

[复制链接]
发表于 2007-12-19 21:40:55 | 显示全部楼层 |阅读模式
C++NPv2中第七章讲的是关于acceptor 和connector框架,在7.3节中有一个例子讲述了关于客户端日志收集的一个程序,这个程序中既有客户端收集日志信息的接收器acceptor,也有传递信息至日志服务器的连接器connector ,其中有个作为连接二者间桥梁的指针变量output_handler_,当客户端收到信息后可以将信息放到output_handler_的队列中,这样就可以将信息转发给日志服务器,我照这个例子做了个类似的程序,现在有一个问题就是可以在AC_CLD_Acceptor中得到关于AC_CLD_Connector中事件处理类AC_Output_Handler的引用,但是这个引用是如何传递给AC_Input_Handler类的,我看不出来,而且用例子程序进行调试的时候发现没有传进去,我想问一下,是例子中的程序有误,还是我的思路有问题?
 楼主| 发表于 2007-12-19 21:41:20 | 显示全部楼层
AC_CLD_Connector或者AC_CLD_Acceptor,会自己生成事件处理类AC_Output_Handler对象的。他们之间有协作关系的。
 楼主| 发表于 2007-12-19 21:41:27 | 显示全部楼层
事实证明,例子中的程序写得是有问题的。后来我改了一下程序修改了一下这个方法

int AC_CLD_Acceptor::make_svc_handler (AC_Input_Handler *&sh)
{
    sh=new AC_Input_Handler(this->output_handler_);
  return 0;
}

程序已经可以运行了。

我本来以为例子里的程序是不会有错的,后来出现问题解决不了我去深究原因解决了这个问题,我想和大家讲的是例子中的程序也有可能是错的,学习ACE不能迷信这些例子(大多数是对的),一定要花时间真正了解框架的原理,这样ACE在我们的手中才会变成一个运用自如的强大的武器,最后谢谢版主的回答。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-5-31 04:37 , Processed in 0.019984 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表