cool.  thanks Pete.  your help is greatly appreciated!

On Aug 24, 4:33 pm, Peter Keen <peter.k...@gmail.com> wrote:
> I looked at the protobuf-net source a little bit and it looks like if
> you write the length with WriteLittleEndian32 instead of WriteVarint32
> you should be good to go, as long as you use PrefixStyle.Fixed32
> within the C# call to DeserialzeWithLengthPrefix().
>
> --Pete
>
> On Mon, Aug 24, 2009 at 4:17 PM, Jay Thomas<jaydianetho...@gmail.com> wrote:
>
> > This code ideally has to operate with C# code on the other side of the
> > socket that uses the DeserializeWithLengthPrefix() method call.  The
> > message originates in C++ environment on a linux box and terminates in
> > C# environment on a windows PC.  Why doesn't C++ support the same
> > methods as C#?  The only document that I've seen that has list of
> > methods available is the message.h header file, installed into my
> > Linux usr directory.
>
> > On Aug 24, 4:05 pm, Peter Keen <peter.k...@gmail.com> wrote:
> >> 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to