Class: Qpid::Messaging::Sender
- Inherits:
-
Object
- Object
- Qpid::Messaging::Sender
- Defined in:
- lib/qpid_messaging/sender.rb
Overview
Sender is the entity through which messages sent.
An instance of Sender can only be created using an active (not previously closed) Session.
Examples
conn = Qpid::Messaging::Connection.new :url => "mybroker:5762"
conn.open
session = conn.create_session
sender = session.create_session "my-sender-queue;{create:always}"
Instance Method Summary collapse
-
#available ⇒ Object
Returns the available slots for sending messages.
-
#capacity ⇒ Object
Returns the capacity.
-
#capacity=(capacity) ⇒ Object
Sets the capacity for this
Sender
. -
#close ⇒ Object
Closes this
Sender
. -
#initialize(session, sender_impl) ⇒ Sender
constructor
:nodoc:.
-
#name ⇒ Object
Returns the human-readable name for this
Sender
. -
#send(message, args = {}, &block) ⇒ Object
Sends a message.
-
#sender_impl ⇒ Object
:nodoc:.
-
#session ⇒ Object
Returns the
Session
for this sender. -
#unsettled ⇒ Object
Returns the number of messages sent that are pending receipt confirmation by the broker.
Constructor Details
#initialize(session, sender_impl) ⇒ Sender
:nodoc:
37 38 39 40 |
# File 'lib/qpid_messaging/sender.rb', line 37 def initialize(session, sender_impl) # :nodoc: @session = session @sender_impl = sender_impl end |
Instance Method Details
#available ⇒ Object
Returns the available slots for sending messages.
This differs from capacity
in that it is the available slots in the senders capacity for holding outgoing messages. The difference between capacity and available is the number of messages that have not been delivered yet.
Examples
puts "You can send #{sender.available} messages before blocking."
135 136 137 |
# File 'lib/qpid_messaging/sender.rb', line 135 def available @sender_impl.getAvailable end |
#capacity ⇒ Object
Returns the capacity.
The capacity is the total number of outgoing messages that can be sent before a called to send
begins to block by default.
Examples
puts "You can send a maximum of #{sender.capacity} messages."
111 |
# File 'lib/qpid_messaging/sender.rb', line 111 def capacity; @sender_impl.getCapacity; end |
#capacity=(capacity) ⇒ Object
Sets the capacity for this Sender
.
The capacity is the number of outgoing messages that can be held pending confirmation or receipt by the broker.
Options
-
capacity - the capacity
Examples
sender.capacity = 50 # sets the outgoing capacity to 50 messages
100 |
# File 'lib/qpid_messaging/sender.rb', line 100 def capacity=(capacity); @sender_impl.setCapacity capacity; end |
#close ⇒ Object
Closes this Sender
.
This does not affect the Session
.
77 |
# File 'lib/qpid_messaging/sender.rb', line 77 def close; @sender_impl.close; end |
#name ⇒ Object
Returns the human-readable name for this Sender
.
Examples
puts "Sender: #{sender.name}"
85 |
# File 'lib/qpid_messaging/sender.rb', line 85 def name; @sender_impl.getName; end |
#send(message, args = {}, &block) ⇒ Object
Sends a message.
If a block is given, then it will be invoked after the message is sent.
Options
-
message - The message to send.
-
:sync - See note below on synching.
Synching
If :sync => true, then the call will block until the broker confirms receipt of the message. Otherwise it will only block for available capacity; i.e., until pending is equal to capacity.
Examples
sender.send do ||
puts "Message sent: #{.content}"
end
68 69 70 71 72 |
# File 'lib/qpid_messaging/sender.rb', line 68 def send(, args = {}, &block) sync = args[:sync] || false @sender_impl.send ., sync block.call unless block.nil? end |
#sender_impl ⇒ Object
:nodoc:
42 43 44 |
# File 'lib/qpid_messaging/sender.rb', line 42 def sender_impl # :nodoc: @sender_impl end |
#session ⇒ Object
Returns the Session
for this sender.
Examples
recv.session.close if done
145 |
# File 'lib/qpid_messaging/sender.rb', line 145 def session; @session; end |
#unsettled ⇒ Object
Returns the number of messages sent that are pending receipt confirmation by the broker.
Examples
if sender.unsettled > 0
puts "There are #{sender.unsettled} messages pending."
end
122 |
# File 'lib/qpid_messaging/sender.rb', line 122 def unsettled; @sender_impl.getUnsettled; end |