Membuffer should provide a way to get back the buffer
-----------------------------------------------------
Key: THRIFT-1213
URL: https://issues.apache.org/jira/browse/THRIFT-1213
Project: Thrift
Issue Type: Improvement
Reporter: Anthony Molinaro
Assignee: Anthony Molinaro
I wanted to get the binary representation of a serialized thrift object and had
to do something like
{{monospaced}}
thrift_something_to_binary (SomeThing) ->
{ok, TF} = thrift_memory_buffer:new_transport_factory(),
{ok, PF} = thrift_binary_protocol:new_protocol_factory(TF,[]),
{ok, P0} = PF(),
{{ protocol, thrift_binary_protocol,{ binary_protocol,{transport,
thrift_memory_buffer, {memory_buffer,B} },true,true}},ok}
= thrift_protocol:write (P0,{{list, some_types:struct_info('some')},
SomeThing }),
iolist_to_binary(B).
{{monospaced}}
With the attached patch instead the flush call of the transport will return the
buffer so the large brittle pattern match above can be accomplished instead with
{{monospaced}}
thrift_something_to_binary (SomeThing) ->
{ok, TF} = thrift_memory_buffer:new_transport_factory(),
{ok, PF} = thrift_binary_protocol:new_protocol_factory(TF,[]),
{ok, P0} = PF(),
{P1, ok} = thrift_protocol:write (P0,{{list, some_types:struct_info('some')},
SomeThing }),
{_P2, B} = thrift_protocol:flush_transport (P1),
iolist_to_binary(B).
{{monospaced}}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira