|
|
在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 编辑 ] |
|