You sort of have to roll your own. In my project I'm doing something like this:
coded_output->WriteVarint32(message->ByteSize()); message->SerializeToCodedStream(coded_output); And then on the reading side: uint32_t size; if (! coded_input->ReadVarint32(&size)) { return NULL; // just an example. probably don't want to do this; } Message * m = new Message; CodedInputStream::Limit limit = coded_input->PushLimit(size); message->ParseFromCodedStream(coded_input); coded_input->PopLimit(limit); The biggest thing that helped me along was finding the Limit docs. I couldn't figure out how to parse from a ZeroCopyInputStream without consuming the entire stream, and then I ran across that and everything became much more clear. --Pete On Mon, Aug 24, 2009 at 3:54 PM, Jay Thomas<jaydianetho...@gmail.com> wrote: > > > Hello > > I am looking for a way to serialize/deserialize with length prefix > under c++. The serialized bytes will sent to a TCP socket. I am > aware that C# has a method SerializeWithLengthPrefix() and > DeserializeWithLengthPrefix(). Are there any such analogous methods > for C++? Please point out any documentation that I may have missed > here. > > Thanks for any assistance. > > Jay > > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To post to this group, send email to protobuf@googlegroups.com To unsubscribe from this group, send email to protobuf+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/protobuf?hl=en -~----------~----~----~----~------~----~------~--~---