~ubuntu-branches/ubuntu/saucy/rabbitmq-server/saucy

« back to all changes in this revision

Viewing changes to plugins-src/rabbitmq-erlang-client/src/amqp_gen_connection.erl

  • Committer: Package Import Robot
  • Author(s): Emile Joubert
  • Date: 2012-11-19 11:42:31 UTC
  • mfrom: (0.2.18) (0.1.32 sid)
  • Revision ID: package-import@ubuntu.com-20121119114231-hvapkn4akng09etr
Tags: 3.0.0-1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
%% @private
18
18
-module(amqp_gen_connection).
19
19
 
20
 
-include("amqp_client.hrl").
 
20
-include("amqp_client_internal.hrl").
21
21
 
22
22
-behaviour(gen_server).
23
23
 
24
24
-export([start_link/5, connect/1, open_channel/3, hard_error_in_channel/3,
25
25
         channel_internal_error/3, server_misbehaved/2, channels_terminated/1,
26
 
         close/2, server_close/2, info/2, info_keys/0, info_keys/1]).
 
26
         close/3, server_close/2, info/2, info_keys/0, info_keys/1]).
27
27
-export([behaviour_info/1]).
28
28
-export([init/1, terminate/2, code_change/3, handle_call/3, handle_cast/2,
29
29
         handle_info/2]).
80
80
channels_terminated(Pid) ->
81
81
    gen_server:cast(Pid, channels_terminated).
82
82
 
83
 
close(Pid, Close) ->
84
 
    gen_server:call(Pid, {command, {close, Close}}, infinity).
 
83
close(Pid, Close, Timeout) ->
 
84
    gen_server:call(Pid, {command, {close, Close, Timeout}}, infinity).
85
85
 
86
86
server_close(Pid, Close) ->
87
87
    gen_server:cast(Pid, {server_close, Close}).
249
249
    {reply, amqp_channels_manager:open_channel(ChMgr, ProposedNumber, Consumer,
250
250
                                               Mod:open_channel_args(MState)),
251
251
     State};
252
 
handle_command({close, #'connection.close'{} = Close}, From, State) ->
253
 
     app_initiated_close(Close, From, State).
 
252
handle_command({close, #'connection.close'{} = Close, Timeout}, From, State) ->
 
253
    app_initiated_close(Close, From, Timeout, State).
254
254
 
255
255
%%---------------------------------------------------------------------------
256
256
%% Handling methods from broker
274
274
%% Closing
275
275
%%---------------------------------------------------------------------------
276
276
 
277
 
app_initiated_close(Close, From, State) ->
 
277
app_initiated_close(Close, From, Timeout, State) ->
 
278
    case Timeout of
 
279
        infinity -> ok;
 
280
        _        -> erlang:send_after(Timeout, self(), closing_timeout)
 
281
    end,
278
282
    set_closing_state(flush, #closing{reason = app_initiated_close,
279
283
                                      close = Close,
280
284
                                      from = From}, State).