Class: Qrack::Client
- Inherits:
-
Object
- Object
- Qrack::Client
- Defined in:
- lib/ext/bunny-0.6.0/lib/qrack/client.rb
Overview
Client ancestor class
Direct Known Subclasses
Constant Summary collapse
- CONNECT_TIMEOUT =
5.0
- RETRY_DELAY =
10.0
Instance Attribute Summary collapse
-
#channel ⇒ Object
Returns the value of attribute channel.
-
#channels ⇒ Object
Returns the value of attribute channels.
-
#connecting ⇒ Object
Returns the value of attribute connecting.
-
#exchanges ⇒ Object
Returns the value of attribute exchanges.
-
#heartbeat ⇒ Object
readonly
Returns the value of attribute heartbeat.
-
#host ⇒ Object
readonly
Returns the value of attribute host.
-
#logfile ⇒ Object
Returns the value of attribute logfile.
-
#logging ⇒ Object
Returns the value of attribute logging.
-
#message_in ⇒ Object
Returns the value of attribute message_in.
-
#message_out ⇒ Object
Returns the value of attribute message_out.
-
#port ⇒ Object
readonly
Returns the value of attribute port.
-
#queues ⇒ Object
Returns the value of attribute queues.
-
#spec ⇒ Object
readonly
Returns the value of attribute spec.
-
#status ⇒ Object
readonly
Returns the value of attribute status.
-
#vhost ⇒ Object
readonly
Returns the value of attribute vhost.
Instance Method Summary collapse
-
#close ⇒ Object
(also: #stop)
DESCRIPTION:.
- #connected? ⇒ Boolean
- #connecting? ⇒ Boolean
-
#initialize(opts = {}) ⇒ Client
constructor
A new instance of Client.
- #next_payload(options = {}) ⇒ Object (also: #next_method)
- #read(*args) ⇒ Object
-
#returned_message(opts = {}) ⇒ Object
DESCRIPTION:.
- #switch_channel(chann) ⇒ Object
- #write(*args) ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ Client
Returns a new instance of Client.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 16 def initialize(opts = {}) @host = opts[:host] || 'localhost' @user = opts[:user] || 'guest' @pass = opts[:pass] || 'guest' @vhost = opts[:vhost] || '/' @logfile = opts[:logfile] || nil @logging = opts[:logging] || false @ssl = opts[:ssl] || false @verify_ssl = opts[:verify_ssl].nil? || opts[:verify_ssl] @status = :not_connected @frame_max = opts[:frame_max] || 131072 @channel_max = opts[:channel_max] || 0 @heartbeat = opts[:heartbeat] || 0 @connect_timeout = opts[:connect_timeout] || CONNECT_TIMEOUT @logger = nil create_logger if @logging @message_in = false @message_out = false @connecting = false @channels ||= [] # Create channel 0 @channel = create_channel() @exchanges ||= {} @queues ||= {} end |
Instance Attribute Details
#channel ⇒ Object
Returns the value of attribute channel.
13 14 15 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 13 def channel @channel end |
#channels ⇒ Object
Returns the value of attribute channels.
13 14 15 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 13 def channels @channels end |
#connecting ⇒ Object
Returns the value of attribute connecting.
13 14 15 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 13 def connecting @connecting end |
#exchanges ⇒ Object
Returns the value of attribute exchanges.
13 14 15 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 13 def exchanges @exchanges end |
#heartbeat ⇒ Object (readonly)
Returns the value of attribute heartbeat.
12 13 14 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 12 def heartbeat @heartbeat end |
#host ⇒ Object (readonly)
Returns the value of attribute host.
12 13 14 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 12 def host @host end |
#logfile ⇒ Object
Returns the value of attribute logfile.
13 14 15 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 13 def logfile @logfile end |
#logging ⇒ Object
Returns the value of attribute logging.
12 13 14 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 12 def logging @logging end |
#message_in ⇒ Object
Returns the value of attribute message_in.
13 14 15 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 13 def @message_in end |
#message_out ⇒ Object
Returns the value of attribute message_out.
13 14 15 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 13 def @message_out end |
#port ⇒ Object (readonly)
Returns the value of attribute port.
12 13 14 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 12 def port @port end |
#queues ⇒ Object
Returns the value of attribute queues.
13 14 15 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 13 def queues @queues end |
#spec ⇒ Object (readonly)
Returns the value of attribute spec.
12 13 14 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 12 def spec @spec end |
#status ⇒ Object (readonly)
Returns the value of attribute status.
12 13 14 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 12 def status @status end |
#vhost ⇒ Object (readonly)
Returns the value of attribute vhost.
12 13 14 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 12 def vhost @vhost end |
Instance Method Details
#close ⇒ Object Also known as: stop
DESCRIPTION:
Closes all active communication channels and connection. If an error occurs a Bunny::ProtocolError is raised. If successful, Client.status is set to :not_connected
.
RETURNS:
:not_connected
if successful.
55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 55 def close # Close all active channels channels.each do |c| c.close if c.open? end # Close connection to AMQP server close_connection # Close TCP Socket close_socket end |
#connected? ⇒ Boolean
70 71 72 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 70 def connected? status == :connected end |
#connecting? ⇒ Boolean
74 75 76 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 74 def connecting? connecting end |
#next_payload(options = {}) ⇒ Object Also known as: next_method
83 84 85 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 83 def next_payload( = {}) next_frame().payload end |
#read(*args) ⇒ Object
89 90 91 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 89 def read(*args) send_command(:read, *args) end |
#returned_message(opts = {}) ⇒ Object
DESCRIPTION:
Checks to see whether or not an undeliverable message has been returned as a result of a publish with the :immediate
or :mandatory
options.
OPTIONS:
-
<tt>:timeout => number of seconds (default = 0.1) - The method will wait for a return message until this timeout interval is reached.
RETURNS:
{:header => nil, :payload => :no_return, :return_details => nil}
if message is not returned before timeout. {:header, :return_details, :payload}
if message is returned. :return_details
is a hash {:reply_code, :reply_text, :exchange, :routing_key}
.
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 114 def (opts = {}) begin frame = next_frame(:timeout => opts[:timeout] || 0.1) rescue Qrack::ClientTimeout return {:header => nil, :payload => :no_return, :return_details => nil} end method = frame.payload header = next_payload # If maximum frame size is smaller than message payload body then message # will have a message header and several message bodies msg = '' while msg.length < header.size msg += next_payload end # Return the message and related info {:header => header, :payload => msg, :return_details => method.arguments} end |
#switch_channel(chann) ⇒ Object
136 137 138 139 140 141 142 143 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 136 def switch_channel(chann) if (0...channels.size).include? chann @channel = channels[chann] chann else raise RuntimeError, "Invalid channel number - #{chann}" end end |
#write(*args) ⇒ Object
145 146 147 |
# File 'lib/ext/bunny-0.6.0/lib/qrack/client.rb', line 145 def write(*args) send_command(:write, *args) end |