ace学习之ACE_Message_Block
来源:互联网 发布:阿里云平台底层架构 编辑:程序博客网 时间:2024/04/29 17:41
ace学习之ACE_Message_Block
1、copy() 不需要让写指针后移.
ACE_Message_Block* mb = new ACE_Message_Block(BUFSIZ);
mb->copy(buff); //buff先已经初始化
ACE_Message_Block* mb = new ACE_Message_Block(BUFSIZ);
mb->copy(buff); //buff先已经初始化
2、初始化mb后需要后移指针的情况
2.1
ACE_Message_Block* mb = new ACE_Message_Block(buff,len);
mb->wt_ptr(len); //len是buff的长度 len = strlen(buff) +1
// +1 表示后面的\0
2.1
ACE_Message_Block* mb = new ACE_Message_Block(buff,len);
mb->wt_ptr(len); //len是buff的长度 len = strlen(buff) +1
// +1 表示后面的\0
2.2
ACE_Message_Block* mb = new ACE_Message_Block(BUFSIZ);
ACE_OS::sprintf(mb->wt_ptr(),buff);
mb->wt_ptr(len);
ACE_Message_Block* mb = new ACE_Message_Block(BUFSIZ);
ACE_OS::sprintf(mb->wt_ptr(),buff);
mb->wt_ptr(len);
2.3
ACE_Message_Block* mb = new ACE_Message_Block(len,
ACE_Message_Block::MB_DATA,
mb2, //表示 mb->cont(mb2)
buff)
mb->wt_ptr(len);
ACE_Message_Block* mb = new ACE_Message_Block(len,
ACE_Message_Block::MB_DA
mb2, //表示 mb->cont(mb2)
buff)
mb->wt_ptr(len);
3、让消息接成串cont()时,千万不要直接或接间的把它接成一个环
mb->cont(mb2);
mb2->cont(mb3); //ok
***mb3->cont(mb); //死定了
mb->cont(mb2);
mb2->cont(mb3); //ok
***mb3->cont(mb); //死定了
4、通知其它线程结束时,可以通过ACE_Message_Block::MB_STOP
ACE_Message_Block* lastMsg = new ACE_Message_Block(100 ,ACE_Message_Block::MB_STOP);
ACE_Message_Block* lastMsg = new ACE_Message_Block(100 ,ACE_Message_Block::MB_STOP);
otherTask->putq(lastMsg);
otherTask在接收到的时候如下处理
int OtherTask::svc()
{
ACE_Message_Block* mb;
while(1)
{
getq(mb);
if(mb->get_tpye() == ACE_Message_Block::MB_STOP)
{
mb->release();
break; //退出这个永久限环)
}
else
{
handle_message(mb); //处理这条消息
}
return 0;
}
}
阅读全文
0 0
- ace学习之ACE_Message_Block
- ace 之 ACE_Message_Block
- ACE_Message_Block - [ACE]
- ACE (一) ACE_Message_Block
- ACE_Message_Block-----ACE消息的存储
- 基于ACE的线程池学习与实现(二)——ACE_Message_Block与ACE_Condition
- ACE第三个练习:ACE_Message_Block类
- ACE_Message_Block
- ACE_Message_Block
- ACE_Message_Block
- ACE_Message_Block
- ACE_Message_Block
- ACE学习之定时器(Timer)
- ace学习之ACE_Guard类
- ACE学习之定时器(Timer)
- ACE学习之定时器(Timer)
- ACE 学习 之 消息队列
- [ACE系列] ACE学习
- 不是程序员可千万别上这样的酒席zt
- 中国文化垃圾论(zt)--作为镜子仅供反省
- 根据权重分配随机抽取纸牌
- 汉语的双重人格(zt)--仅供反省
- 中国标语的潜意识(zt)--值得反省
- ace学习之ACE_Message_Block
- 对电脑笑了二十分钟的帖子
- build ace随时更新
- FormData解决ajax上传文件的问题及ajax跨域
- 转载:人的一生,到底在追求甚么?
- 20世纪10个最伟大的算法
- HDU 2157 How many ways??(矩阵快速幂)
- c++ mutable关键字
- java学习_day05