找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4081|回复: 5

请教消息用法,如何表示工作请求、工作结果或是其它

[复制链接]
发表于 2010-5-27 11:05:06 | 显示全部楼层 |阅读模式
在ACE_Task对象间传递消息时会用到ACE_Message_Block。
消息可以表示工作请求、工作结果或是其它要处理的数据类型。
这就涉及到 Message_Block 与 数据类型 之间的转换,
对于简单的类型 目前采用的方法是: 数据对象 序列化到字符串 再复制到消息块数据区 ;使用时从数据区取出字符串还原为数据对象。

问题1:
如果需要在多个对象之间传递该消息,会有多次转换还原操作,这样是不是比较浪费,各位经常怎么做的?

问题2:
另外在C++NPv2 P197 P199 看到这样的用法
ACE_NEW_RETURN(mblk,ACE_Message_Block(ACE_reinterpret_cast(char*, Handler*)

ACE_reinterpret_cast(Handler*, mblk->rd_ptr());
是不是 reinterpret_cast 除了能把指针重新映射为char*   也能把 对象 转为 char*

谢谢 补充:序列化用的是boost库的serialization

[ 本帖最后由 acedev 于 2010-5-27 11:11 编辑 ]
发表于 2010-5-27 12:52:02 | 显示全部楼层
我想你误解了,ACE_Message_Block是容器,用于各组件之间的数据传递和衔接,与序列化无关。
你可以把它想象成“胶水”。其实你往里面填充什么东西都可以,因为是你自己负责解析处理的呀。
好好理解这个,很重要。你查看一下本站我贴的,有关ACE_Message_Block文章。
 楼主| 发表于 2010-5-28 11:08:47 | 显示全部楼层
我是把message_block理解为自动管理大小的内存块,里面存的字符,当成字符串来解析处理,因此用到了序列化,这样解析d 起来可以使用类的方法。

仔细看了下message_block的头文件  认识还是停留在操作字节上;  并注意到注释部分提到参考 C++NPv1 section 4.2  和 APG section 12.3.2 发现我的APG只有9章 共153页 需要看下完整版本

没找到winston提到的那篇帖子  使用关键字 ace_message_block winston site:acejoy.com 倒是看了很多相关的回复

原帖由 <i>winston</i> 于 2010-5-27 12:52 发表 <a href="http://www.acejoy.com/bbs/redirect.php?goto=findpost&pid=7169&ptid=2290" target="_blank"><img src="http://www.acejoy.com/bbs/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />
我想你误解了,ACE_Message_Block是容器,用于各组件之间的数据传递和衔接,与序列化无关。<br />
你可以把它想象成“胶水”。其实你往里面填充什么东西都可以,因为是你自己负责解析处理的呀。<br />
好好理解这个,很重要。你查看一下本 ...
<br />
 楼主| 发表于 2010-5-28 11:29:40 | 显示全部楼层

完整版

英文版的 原来文件后缀名是 .download
修改为.chm后只能看到目录

解压出来可以看到 很多.html


哪位能够修复下最好了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?用户注册

×
发表于 2010-5-28 14:02:39 | 显示全部楼层
我给你一个完整的吧,.download需要一个工具去生成。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?用户注册

×
 楼主| 发表于 2010-5-28 15:10:26 | 显示全部楼层
看完12.3.3节 IntertaskCommunication 还是认为message_block的data_block里存的是字符串
需要复杂的手工解析   

现在传递的消息里包含了 list<string> 是不是复杂了


这个chm出现与.download同样的问题 打开只能看到目录

在另外一台机器上可以正常打开

猜测是chm用ie导航 ie出问题 没有去证实
原帖由 freeeyes 于 2010-5-28 14:02 发表
我给你一个完整的吧,.download需要一个工具去生成。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-22 13:28 , Processed in 0.022218 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表