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

available() click to toggle source

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 qpid/ruby/lib/qpid_messaging/sender.rb, line 123
def available
  @sender_impl.getAvailable
end
capacity() click to toggle source

Returns the capacity.

# File qpid/ruby/lib/qpid_messaging/sender.rb, line 111
def capacity; @sender_impl.getCapacity; end
capacity=(capacity) click to toggle source

Sets the capacity for this Sender.

The capacity is the number of outgoing messages that can be held pending confirmation of receipt by the broker.

Options

  • capacity - the capacity

# File qpid/ruby/lib/qpid_messaging/sender.rb, line 108
def capacity=(capacity); @sender_impl.setCapacity capacity; end
close() click to toggle source

Closes this Sender.

This does not affect the owning Session or Connection.

# File qpid/ruby/lib/qpid_messaging/sender.rb, line 95
def close; @sender_impl.close; end
name() click to toggle source

Returns the human-readable name for this Sender.

# File qpid/ruby/lib/qpid_messaging/sender.rb, line 98
def name; @sender_impl.getName; end
send(message, args = {}, &block) click to toggle source

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 qpid/ruby/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
session() click to toggle source

Returns the Session for this sender.

# File qpid/ruby/lib/qpid_messaging/sender.rb, line 128
def session; @session; end
unsettled() click to toggle source

Returns the number of messages sent that are pending receipt confirmation by the broker.

# File qpid/ruby/lib/qpid_messaging/sender.rb, line 115
def unsettled; @sender_impl.getUnsettled; end