class Qpid::Messaging::Sender
Sender
is the entity through which messages are sent.
An instance of Sender
can only be created using an active (not
previously closed) Session. See Qpid::Messaging::Session#create_sender
for more details.
Examples¶ ↑
# create a connection conn = Qpid::Messaging::Connection.new "mybroker:5672" conn.open if conn.open? # create a session session = conn.create_session # create a sender that posts messages to the "updates" queue sender = session.create_sender "updates;{create:always} # begin sending updates loop do # wait for the next event content then send it content = wait_for_event sender.send Qpid::Messaging::Message.new :content => content end end
Public Instance Methods
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.
# File lib/qpid_messaging/sender.rb, line 123 def available @sender_impl.getAvailable end
Returns the capacity.
# File lib/qpid_messaging/sender.rb, line 111 def capacity; @sender_impl.getCapacity; end
Closes this Sender
.
This does not affect the owning Session or Connection.
# File lib/qpid_messaging/sender.rb, line 95 def close; @sender_impl.close; end
Returns the human-readable name for this Sender
.
# File lib/qpid_messaging/sender.rb, line 98 def name; @sender_impl.getName; end
Sends a message, optionally blocking until the message is received by the broker.
Options¶ ↑
-
message
- The message to send. -
:sync
- Block until received. 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¶ ↑
# send a message outgoing = Qpid::Messaging::Message.new :content => content sender.send outgoing # send a message, wait for confirmation from the broker outgoing = Qpid::Messaging::Message.new :content => content sender.send outgoing, :sync => true
# File lib/qpid_messaging/sender.rb, line 86 def send(message, args = {}, &block) sync = args[:sync] || false @sender_impl.send message.message_impl, sync block.call message unless block.nil? end
Returns the Session for this sender.
# File lib/qpid_messaging/sender.rb, line 128 def session; @session; end
Returns the number of messages sent that are pending receipt confirmation by the broker.
# File lib/qpid_messaging/sender.rb, line 115 def unsettled; @sender_impl.getUnsettled; end