protocol buffers - How do you achieve type casting in protobuf -


i have different message types defined under wrapper.

for example:

in test.proto

message wrapper {     required type type =1;     optional messagetype1 msg1 =2;     optional messagetype2 msg2 =3; } 

and senddata.cpp

senddata(int type, google::protobuf::messagelite& proto) { messagewrapper wrapper; wrapper.set_type(type); switch (type) { case type1:      messagetype1* msg1 = wrapper.mutable_msg1();      msg1.copyfrom(proto);      break;    } case type2: //  } 

in case copyfrom throws me error no matching function - candidates messagetype1::copyfrom(const messagetype1&).

any pointers on how resolve this?

copyfrom expects receive messagetype1.
looks trying send copyfrom messagelite instead of messagetype1

(by way if send proto file might see messagelite, can guess message in proto)


Comments