thrift_transport:flush(Transport).
close_transport(#binary_protocol{transport = Transport}) ->
- thrift_transport:flush(Transport),
thrift_transport:close(Transport).
%%%
gen_server:call(Transport, flush).
%%--------------------------------------------------------------------
-%% Function: flush(Transport) -> ok
+%% Function: close(Transport) -> ok
%%
-%% Description: Flushes the buffer through to the wrapped transport
+%% Description: Closes the transport and the wrapped transport
%%--------------------------------------------------------------------
close(Transport) ->
gen_server:call(Transport, close).
handle_call(close, _From, State = #state{buffer = Buffer,
wrapped = Wrapped}) ->
- case Buffer of
- [] -> ok;
- Data ->
- thrift_transport:write(Wrapped, concat_binary(lists:reverse(Buffer))),
- thrift_transport:flush(Wrapped)
- end,
+ thrift_transport:write(Wrapped, concat_binary(lists:reverse(Buffer))),
thrift_transport:close(Wrapped),
- {reply, ok, State}. % TEST ONLY
-%% {stop, normal, State}.
+ {reply, ok, State}.
%%--------------------------------------------------------------------
%% Function: handle_cast(Msg, State) -> {noreply, State} |
loop(State = #thrift_processor{in_protocol = IProto,
out_protocol = OProto}) ->
- error_logger:info_msg("loop: ~p", [State]),
case thrift_protocol:read(IProto, message_begin) of
#protocol_message_begin{name = Function,
type = ?tMessageType_CALL} ->
{ok, Params} = thrift_protocol:read(IProto, InParams),
try
- error_logger:info_msg("calling: ~p(~p)", [Function, Params]),
Result = Handler:handle_function(Function, Params),
- error_logger:info_msg("result: ~p", [Result]),
%% {Micro, Result} = better_timer(Handler, handle_function, [Function, Params]),
%% error_logger:info_msg("Processed ~p(~p) in ~.4fms~n",
%% [Function, Params, Micro/1000.0]),
ok.
after_reply(OProto) ->
- ok = thrift_protocol:close_transport(OProto).
+ ok = thrift_protocol:flush_transport(OProto)
+ %% ok = thrift_protocol:close_transport(OProto)
+ .
ok.
close(#data{socket = Socket}) ->
- error_logger:info_msg("Close called, socket ~p", [Socket])
-%% gen_tcp:close(Socket),
-%% exit(normal)
- .
+ gen_tcp:close(Socket),
+ exit(protocol_closed).