Class: Qpid::Messaging::Sender

Inherits:
Object
  • Object
show all
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

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

#availableObject

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

#capacityObject

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

#closeObject

Closes this Sender.

This does not affect the Session.



77
# File 'lib/qpid_messaging/sender.rb', line 77

def close; @sender_impl.close; end

#nameObject

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 message do |message|
  puts "Message sent: #{message.content}"
end


68
69
70
71
72
# File 'lib/qpid_messaging/sender.rb', line 68

def send(message, args = {}, &block)
  sync = args[:sync] || false
  @sender_impl.send message.message_impl, sync
  block.call message unless block.nil?
end

#sender_implObject

:nodoc:



42
43
44
# File 'lib/qpid_messaging/sender.rb', line 42

def sender_impl # :nodoc:
  @sender_impl
end

#sessionObject

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

#unsettledObject

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