On Sat, Jul 10, 2010 at 12:00 PM, [email protected] <
[email protected]> wrote:

> the leading variant in c++ is most likely in the wrong byte order if
> you are running a x86 machine. as i said, you need to flip them.
> mike
>

Mike, varint (I assume that's what you meant by "variant") is a completely
different, variable-width integer encoding.  It is not affected by the
machine's byte order.

Furthermore, Protocol Buffers handles all endianness issues internally, so
if you are using Coded{Input,Output}Stream exclusively, you can't have byte
ordering issues.


>
> On Sat, Jul 10, 2010 at 8:53 PM, Maxim Leonovich <[email protected]>
> wrote:
> > I watched on both buffers: they are similar, but in C++ I can't find a
> > leading Variant32 with size, when in Java it exists. The rests of
> > buffers are identical.
> > http://pic4.ru/8337
> > http://pic4.ru/8338
> > http://pic4.ru/8339
> >
> > On 10 июл, 19:33, Evan Jones <[email protected]> wrote:
> >> On Jul 10, 2010, at 7:47 , Maxim Leonovich wrote:
> >>
> >> > ArrayOutputStream(buffer,msg.ByteSize() + 4,sizeof(char));
> >>
> >> The documentation states:
> >>
> >> block_size is mainly useful for testing; in production you would
> >> probably never want to set it.
> >>
> >> So you should get rid of the "sizeof(char)" part.
> >>
> >> >    cos->WriteLittleEndian32(msg.ByteSize()); //Tryed
> >> > "WriteVariant32", didn't help
> >> >    msg.SerializeToCodedStream(cos);
> >>
> >> If you want to use Java's .parseDelimitedFrom, you *must* use
> >> WriteVarint32, because that is the format it expects the length
> >> prefix. In this case, you'll need to call ArrayOutputStream::
> >> ByteCount() to figure out how many bytes were actually serialized.
> >>
> >> You also probably should create the ArrayOutputStream and
> >> CodedOutputStream on the stack, rather than using new. This will be
> >> slightly faster.
> >>
> >> That said, the only issue here that affects correctness is the
> >> WriteVarint32 part. The rest shouldn't matter unless I missed
> >> something. You should change your code to do that, then if you are
> >> still having problems you should try dumping the contents of the
> >> buffer on both the C++ and the Java side. Maybe the input/output is
> >> getting messed up somewhere?
> >>
> >> Good luck,
> >>
> >> Evan
> >>
> >> --
> >> Evan Joneshttp://evanjones.ca/
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> "Protocol Buffers" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to
> [email protected]<protobuf%[email protected]>
> .
> > For more options, visit this group at
> http://groups.google.com/group/protobuf?hl=en.
> >
> >
>
>
>
> --
> James Michael DuPont
> Member of Free Libre Open Source Software Kosova and Albania
> flossk.org flossal.org
>
> --
> You received this message because you are subscribed to the Google Groups
> "Protocol Buffers" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<protobuf%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/protobuf?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.

Reply via email to