The proto file defined like this:
message HqMessage {
        uint32 busi_no          = 1;
        google.protobuf.Any detail      = 2;
}

message B0T4F1 {
        uint32 MarketType               = 501;
}
//---------------------------------------------------------------------
*STEP1, *use protobuf's reflection, I had set the message of BOT4F1 to the 
'detail':
      .......
          const google::protobuf::Descriptor* _detail_des = 
_des_pool->FindMessageTypeByName("B0T4F1");
        const google::protobuf::Message* _detail_prototype_message = 
m_dynamic_factory.GetPrototype(_detail_des);
        google::protobuf::Message* _detail_msg = 
_detail_prototype_message->New();
        const google::protobuf::Reflection* _detail_msg_ref = 
_detail_prototype_message->GetReflection();
        const google::protobuf::FieldDescriptor* _detail_fd = 
_detail_des->FindFieldByNumber(501);
        uint32 mkt_type =100;
        _fd = _des->FindFieldByNumber(2);
          _msg_ref ->*SetAllocatedMessage(*_msg, _detail_msg, _fd);
.......
*STEP2,*serialize the message to a buffer, then parse the HqMessage from 
the buffer.
*STEP3**, firest, *I get the message of Any, then serialize the any message 
to buffer again. Finally,get the message object of B0T4F1 through the new 
buffer.

How can i parse the buffer to the message of B0T4F1 without serialize 
’detail' message again. Could I get the ‘B0T4F1' message from 'HqMessage ' 
directly? How can i do this?

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to protobuf+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/protobuf/255992c9-313f-4d48-97d9-24722bf7437dn%40googlegroups.com.

Reply via email to