ACE学习笔记(三)--消息队列(操作)
来源:互联网 发布:js 中window事件 编辑:程序博客网 时间:2024/05/22 14:36
每个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消息队列
- CnPackTip#3:认识静态数组 array[m,n] of x
- 简易数据库代码生成工具 V1.0 发布
- 4-3 读取和保存(Loading and Saving)
- 祈求
- 有多少项目可以重来?-谈谈临时项目组的项目重述
- ACE学习笔记(三)--消息队列(操作)
- C#读取设备信息(源代码下载)
- Find your Root File System with MTD
- 每天一个免费的共享软件
- C#教程电子书
- netTiers New Query Builder Classes
- The Linux MTD, JFFS HOWTO
- 说过的话
- BCMSN学习笔记