Hi Guys,

Thanks for the replies.
As for questions -
-- I have not tried json.
-- Did not use any exceptions.

Sadly I am going to give up on thrift for my current project.  I will give
it another shot in future.

This morning I started over with protocol buffers after spending two weeks
with thrift.
The c++ part is working with no problem.
Tomorrow will take a look at the erlang side.  But I have seen the docs for
wire format for protobufs,
and I think that even if I have to code it entirely from scratch in erlang,
I will be ahead.
At least it is something I know I can do with confidence in a bounded
period of time.

The same can't be said for thrift.

--Bert

On Thu, Jul 12, 2012 at 1:59 PM, Roger Meier <ro...@bufferoverflow.ch>wrote:

> Do you have the same issue with json?
> Do you use any special Exceptions?
>
> Same behavior with other languages?
> Cross language test suite is still open...
> https://issues.apache.org/jira/browse/THRIFT-847
> The first step is test/test.sh which implements cross language tests, see
>
> https://builds.apache.org/view/S-Z/view/Thrift/job/Thrift/lastSuccessfulBuil
> d/artifact/thrift/test/test.log
>
> lib/cpp/src/thrift/protocol/TBinaryProtocol.tcc might help a bit.
>
> All the best!
>
> roger
> ;-r
>
> PS: build servers are unable to build erlang!
> See https://issues.apache.org/jira/browse/THRIFT-1357
>
>
> > -----Ursprüngliche Nachricht-----
> > Von: Rush Manbert [mailto:r...@manbert.com]
> > Gesendet: Donnerstag, 12. Juli 2012 19:16
> > An: dev@thrift.apache.org
> > Betreff: Re: erlang to c++ problems
> >
> > On Jul 11, 2012, at 9:48 PM, Bert Douglas wrote:
> >
> > > I am using the same message schema, or thrift file in c++ and in
> erlang.
> > > Also setting same three fields in a large struct/record.
> > > Looking at network with wireshark.
> > >
> > > Erlang client sends this:
> > >
> > > 0040        80 01 00 01 00 00  00 06 64 65 74 65 63 74   ........
> ..detect
> > > 0050  00 00 00 00 0c 00 01 08  00 01 00 00 00 7b 04 00   ........
> .....{..
> > > 0060  02 40 5e dd 3a 92 a3 05  53 00 0c 00 02 08 00 01   .@^.:...
> S.......
> > > 0070  00 00 00 2a 0c 00 03 00  0c 00 04 00 00 00         ...*....
> ......
> > >
> > > C++ client sends this:
> > >
> > >            80 01 00 01 00 00  00 06 64 65 74 65 63 74   ........
> ..detect
> > > 0050  00 00 00 00 0c 00 01 08  00 01 00 00 00 7b 04 00   ........
> .....{..
> > > 0060  02 40 fe 24 0c 9f be 76  c9 00 0c 00 02 08 00 01   .@.$...v
> ........
> > > 0070  00 00 03 db 08 00 02 00  00 00 00 0c 00 03 08 00   ........
> ........
> > > 0080  01 00 00 00 00 04 00 02  00 00 00 00 00 00 00 00   ........
> ........
> > > 0090  04 00 03 00 00 00 00 00  00 00 00 04 00 04 00 00   ........
> ........
> > > 00a0  00 00 00 00 00 00 04 00  05 00 00 00 00 00 00 00   ........
> ........
> > > 00b0  00 00 0c 00 04 08 00 01  00 00 00 00 04 00 02 00   ........
> ........
> > > 00c0  00 00 00 00 00 00 00 04  00 03 00 00 00 00 00 00   ........
> ........
> > > 00d0  00 00 04 00 04 00 00 00  00 00 00 00 00 04 00 05   ........
> ........
> > > 00e0  00 00 00 00 00 00 00 00  00 04 00 05 00 00 00 00   ........
> ........
> > > 00f0  00 00 00 00 04 00 06 00  00 00 00 00 00 00 00 08   ........
> ........
> > > 0100  00 07 00 00 00 00 08 00  08 00 00 00 00 08 00 09   ........
> ........
> > > 0110  00 00 00 00 04 00 0a 00  00 00 00 00 00 00 00 04   ........
> ........
> > > 0120  00 0b 00 00 00 00 00 00  00 00 04 00 0c 00 00 00   ........
> ........
> > > 0130  00 00 00 00 00 00 00                               .......
> > >
> > > I would like to dis-assemble this by hand from docs to understand the
> > > meaning of what is being sent.
> > >
> > > However, so far I have been unable to find a description of the wire
> > format.
> > >
> > > By way of example, the google protocol buffer encoding is described
> here:
> > > https://developers.google.com/protocol-buffers/docs/encoding
> > >
> > > Is there a similar document for thrift ?
> >
> > Hi Bert,
> >
> > AFAIK, there is no such document for Thrift. However, for someone who is
> > looking at the packets with wireshark I feel it's reasonable to suggest
> that
> > you just trace through the client side message send. Just set a
> breakpoint
> in
> > the write() method in your *_types.cpp file and watch how it fills the
> > transmit buffer.
> >
> > This is good for the C++ client. I'm afraid that I have no idea how to do
> the
> > equivalent with the erlang side.
> >
> > Best regards,
> > Rush
>
>
>

Reply via email to