ACE学习笔记(三)--消息队列(操作)
来源:互联网 发布:如何选购网络电视 编辑:程序博客网 时间:2024/06/05 14:31
每个ACE_Message_Block都有两个底层指针:rd_prt,wr_ptr,用于在消息块中读写数据。可以通过rd_ptr()和wr_ptr()方法来直接访问。
rd_ptr指向下一次读取数据的位置,wr_ptr指向下一次写入数据的位置。这两个指针不会自动更新,程序员必须自己来增加他们的值!!!
拷贝函数 int copy(const char *buf,size_t n); buf指向要拷贝进消息块的缓冲区的指针,n指要拷贝数据的大小,该方法从wr_ptr指向的位置开始往前 写,并且保证wr_ptr的更新,使其指向缓冲区的新末尾处。
base()和length()方法可以联合使用,以将消息块中的整个数据缓冲区拷贝出来。
base()返回指向数据块的第一个数据条目的指针,
length()返回队中数据的总大小。 base和length相加,可以得到指向数据块末尾的指针。
duplicate()和clone()方法用于制作消息块的“副本“。
clone()方法实际的创建整个消息块的新副本,包括他的数据块和附加部分。
duplicate()方法使用ACE_Message_Block的引用计数机制,返回指向要被复制的消息块的指针,并在内部增加内部引用计数。
release()释放消息块 ,如果消息数据内存石油该消息块分配的,调用release()方法就会释放此内存。如果消息块是引用计数的,release()就会减少计数,直到0为止。
rd_ptr指向下一次读取数据的位置,wr_ptr指向下一次写入数据的位置。这两个指针不会自动更新,程序员必须自己来增加他们的值!!!
拷贝函数 int copy(const char *buf,size_t n); buf指向要拷贝进消息块的缓冲区的指针,n指要拷贝数据的大小,该方法从wr_ptr指向的位置开始往前 写,并且保证wr_ptr的更新,使其指向缓冲区的新末尾处。
base()和length()方法可以联合使用,以将消息块中的整个数据缓冲区拷贝出来。
base()返回指向数据块的第一个数据条目的指针,
length()返回队中数据的总大小。 base和length相加,可以得到指向数据块末尾的指针。
duplicate()和clone()方法用于制作消息块的“副本“。
clone()方法实际的创建整个消息块的新副本,包括他的数据块和附加部分。
duplicate()方法使用ACE_Message_Block的引用计数机制,返回指向要被复制的消息块的指针,并在内部增加内部引用计数。
release()释放消息块 ,如果消息数据内存石油该消息块分配的,调用release()方法就会释放此内存。如果消息块是引用计数的,release()就会减少计数,直到0为止。
- ACE学习笔记(三)--消息队列(操作)
- ACE学习笔记(三)--消息队列(操作)
- ACE学习笔记(二)--消息队列(简介)
- ACE学习笔记(二)--消息队列(简介)
- ACE 学习 之 消息队列
- ACE笔记(1)-ACE文件操作
- 消息队列-ActiveMQ学习笔记(三)-发布-订阅消息模式实现
- 消息队列-ActiveMQ学习笔记(三)-发布-订阅消息模式实现
- ACE学习笔记(三)
- ACE篇之七:ACE容器之三(队列)
- ACE篇之七:ACE容器之三(队列)
- MSMQ消息队列学习笔记(一)
- RabbitMQ(消息队列)私人学习笔记
- 消息队列-ActiveMQ学习笔记(二)-点对点消息实现
- 消息队列-ActiveMQ学习笔记(二)-点对点消息实现
- ACE 消息队列 ACE_Message_Queue的遍历(2)
- ACE 学习笔记(一)
- ACE消息队列
- [收集]AS3及Flex的百条常用知识
- 算法导论之散列表
- Xcode4 配置SVN
- css z-index
- Servlet的多线程问题
- ACE学习笔记(三)--消息队列(操作)
- COM1口无法打开
- 配置qt + wince + vs2005环境
- 第九章
- 360安全卫士的云查杀原理介绍[转]
- Android中隐藏标题栏和状态栏(电源,信号,时间等信息)
- 利用OpenFiler建立小型San环境-系统配置篇!
- 临时文件
- 11.10form template method(塑造模板函数)