Receiver is the entity through which messages are received.
An instance of Receiver can only be created using an active (not previously closed) Session.
conn = Qpid::Messaging::Connection.new :url => "mybroker:5762" conn.open session = conn.create_session receiver = session.create_receiver "my-sender-queue"
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.
puts "You can receive #{rcv.available} messages before blocking."
# File lib/qpid_messaging/receiver.rb, line 137 def available; @receiver_impl.getAvailable; end
Returns the capacity.
The capacity is the numnber of incoming messages that can be held locally before being fetched.
puts "The receiver can hold #{rcv.capacity} messages."
# File lib/qpid_messaging/receiver.rb, line 126 def capacity; @receiver_impl.getCapacity; end
Sets the capacity for this Receiver
.
capacity - the capacity
receiver.capacity = 50 # sets the incoming capacity to 50 messages
# File lib/qpid_messaging/receiver.rb, line 114 def capacity=(capacity); @receiver_impl.setCapacity capacity; end
Closes this Receiver
.
This does not affect the Session
.
# File lib/qpid_messaging/receiver.rb, line 151 def close; @receiver_impl.close; end
Returns whether the receiver is closed.
recv.close unless recv.closed?
# File lib/qpid_messaging/receiver.rb, line 159 def closed?; @receiver_impl.isClosed; end
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.
duration - the timeout to wait (def. Duration::FOREVER)
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
# File lib/qpid_messaging/receiver.rb, line 99 def fetch(duration = Qpid::Messaging::Duration::FOREVER) message_impl = @receiver_impl.fetch duration.duration_impl create_message_wrapper message_impl unless message_impl.nil? 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.
duration - the timeout to wait (def. Duration::FOREVER)
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
# File lib/qpid_messaging/receiver.rb, line 70 def get(duration = Qpid::Messaging::Duration::FOREVER) message_impl = @receiver_impl.get duration.duration_impl create_message_wrapper message_impl unless message_impl.nil? end
Returns the name of this Receiver
.
puts "Receiver: #{recv.name}"
# File lib/qpid_messaging/receiver.rb, line 166 def name; @receiver_impl.getName; end
Returns the Session for this
Receiver
.
# File lib/qpid_messaging/receiver.rb, line 169 def session; @session; end
Returns the number of messages that have been received and acknowledged but whose acknowledgements have not been confirmed by the sender.
puts "You have #{rcv.unsettled} messages to be confirmed."
# File lib/qpid_messaging/receiver.rb, line 146 def unsettled; @receiver_impl.getUnsettled; end