31.4.1. acestl::message_queue_sequence, 版本1
STLSoft的子项目ACESTL包括若干组件,用于将ACE适配到STL(以提高ACE组件的易用性)。acestl::message_queue_sequence就是对ACE_Message_Queue进行实例适配的类模板。因为这个组件正在频繁地更新,所以我打算施展我常用的伎俩,将实现进展过程拿给你看。不过还好,不同于其它章节里使用的材料,acestl::message_queue_sequence的新版本都仅以添加代码的方式修改旧版本,这好歹让我能把这个话题的篇幅控制在40页以内。清单31.7展示了其定义的第一个版本。
清单 31.7. message_queue_sequence的定义
Code View: Scroll / Show All // In namespace acestl template <ACE_SYNCH_DECL> class message_queue_sequence { public: // Member Types typedef char value_type; typedef ACE_Message_Queue<ACE_SYNCH_USE> sequence_type; typedef message_queue_sequence<ACE_SYNCH_USE> class_type; typedef size_t size_type; class iterator; public: // Construction explicit message_queue_sequence(sequence_type& mq); public: // Iteration iterator begin(); iterator end(); public: // Attributes size_type size() const; bool empty() const; private: // Member Variables sequence_type& m_mq; private: // Not to be implemented message_queue_sequence(class_type const&); class_type& operator =(class_type const&); }; |
看过前面各种序列之后,这里已经没什么可说的了;有趣内容的都在迭代器类中。注意成员类型value_type定义为char,这表示size()方法返回队列的字节数,而[begin(), end())定义的区间也是基于字节。此外没有关于消息块的方法。
【责任编辑:
董书 TEL:(010)68476606】