peakzhang 发表于 2007-12-22 22:17:37

ACE_Task 中putq 和put的区别

最近学习ace_task类,但看到有两个消息入队列成员,几乎一样,不解为什么同样的功能用2个一样的成员实现?还是他们有区别?C++NP2说得不清楚。

peakzhang 发表于 2007-12-22 22:17:44

这两个函数差别挺大的。

前者是template<ACE_SYNCH_DECL> ACE_Task的成员函数,是把消息放入其队列中。

后者是 ACE_Task_Base的成员函数,被定义为空操作,由于ACE_Task是它的子类,因此也继承了此接口,但同样是空操作。之所以这样设计,是为回调提供一个机会。如果您学习到了ACE_Stream框架相关的实现,就发现,由于框架调用了put(),所以你必须重载此函数。这时,就能更好的理解ACE为什么要提供这样两个函数了。

通常情况下,如果要重载 put(),简单调用putq()即可。
页: [1]
查看完整版本: ACE_Task 中putq 和put的区别