Class Qpid::Messaging::Receiver
In: lib/qpid_messaging/receiver.rb
Parent: Object

Receiver is the entity through which messages are received.

An instance of Receiver can only be created using an active (not previously closed) Session.

Example

  conn     = Qpid::Messaging::Connection.new :url => "mybroker:5762"
  conn.open
  session  = conn.create_session
  receiver = session.create_receiver "my-sender-queue"

Methods

available   capacity   capacity=   close   closed?   fetch   get   name   session   unsettled  

Public Instance methods

Returns the number of slots for receiving messages.

This differs from capacity in that it is the available slots in the capacity for holding incoming messages, where available <= capacity.

Examples

  puts "You can receive #{rcv.available} messages before blocking."

Returns the capacity.

The capacity is the numnber of incoming messages that can be held locally before being fetched.

Examples

  puts "The receiver can hold #{rcv.capacity} messages."

Sets the capacity for this Receiver.

Options

Examples

  receiver.capacity = 50 # sets the incoming capacity to 50 messages

Closes this Receiver.

This does not affect the Session.

Returns whether the receiver is closed.

Examples

  recv.close unless recv.closed?

Retrieves a message from the receiver‘s subscription, or waits for up to the duration specified for one to become available.

If a block is given, then it will be invaked after the next message is received or the call times out, passing in the message or nil respectively.

Options

  • duration - the timeout to wait (def. Duration::FOREVER)

Examples

  msg = rcvr.fetch # Uses the default timeout of forever

  msg = rcvr.fetch Qpid::Messaging::Duration::IMMEDIATE # returns a message or exits immediately

  # passes in a block to handle the received message
  rcvr.fetch Qpid::Messaging::Duration::SECOND do |message|
    if message.nil?
      puts "No message was received."
    else
      puts "Received this message: #{message.content}"
    end
  end

Retrieves a message from the local queue, or waits for up to the duration specified for one to become available.

If a block is given, then it will be invaked after the next message is received or the call times out, passing in the message or nil respectively.

Options

  • duration - the timeout to wait (def. Duration::FOREVER)

Examples

  msg = rcvr.get # Uses the default timeout of forever

  msg = rcvr.get Qpid::Messaging::Duration::IMMEDIATE # returns a message or exits immediately

  # passes in a block to handle the received message
  rcvr.get Qpid::Messaging::Duration::SECOND do |message|
    if message.nil?
      puts "No message was received."
    else
      puts "Received this message: #{message.content}"
    end
  end

Returns the name of this Receiver.

Examples

  puts "Receiver: #{recv.name}"

Returns the Session for this Receiver.

Returns the number of messages that have been received and acknowledged but whose acknowledgements have not been confirmed by the sender.

Examples

  puts "You have #{rcv.unsettled} messages to be confirmed."

[Validate]