class Qpid::Proton::Sender

The sending endpoint.

@see Receiver

Attributes

auto_settle[R]

@return [Boolean] auto_settle flag, see {#open}

Public Class Methods

new(*arg) click to toggle source
Calls superclass method Qpid::Proton::Link::new
# File lib/core/sender.rb, line 93
def initialize(*arg) super; @tag_count = 0; end

Public Instance Methods

delivery_tag() click to toggle source

@deprecated internal use only

# File lib/core/sender.rb, line 89
def delivery_tag() deprecated(__method__); next_tag; end
offered(n) click to toggle source

Hint to the remote receiver about the number of messages available. The receiver may use this to optimize credit flow, or may ignore it. @param n [Integer] The number of deliveries potentially available.

# File lib/core/sender.rb, line 57
def offered(n)
  Cproton.pn_link_offered(@impl, n)
end
open(opts=nil) click to toggle source

Open the {Sender} link

@overload open_sender(address)

@param address [String] address of the target to send to

@overload open_sender(opts)

@option opts [Boolean] :auto_settle (true) if true, automatically settle transfers
@option opts [Boolean] :dynamic (false) dynamic property for source {Terminus#dynamic}
@option opts [String,Hash] :source source address or source options, see {Terminus#apply}
@option opts [String,Hash] :target target address or target options, see {Terminus#apply}
@option opts [String] :name (generated) unique name for the link.
Calls superclass method
# File lib/core/sender.rb, line 40
def open(opts=nil)
  opts = { :target => opts } if opts.is_a? String
  opts ||= {}
  target.apply opts[:target]
  source.apply opts[:source]
  target.dynamic = !!opts[:dynamic]
  @auto_settle = opts.fetch(:auto_settle, true)
  super()
  self
end
send(message, *args) click to toggle source

@!method send(message) Send a message. @param message [Message] The message to send. @return [Tracker] Tracks the outcome of the message.

# File lib/core/sender.rb, line 67
def send(message, *args)
  tag = nil
  if args.size > 0
    # deprecated: allow tag in args[0] for backwards compat
    raise ArgumentError("too many arguments") if args.size > 1
    tag = args[0]
  end
  tag ||= next_tag
  t = Tracker.new(Cproton.pn_delivery(@impl, tag))
  Cproton.pn_link_send(@impl, message.encode)
  Cproton.pn_link_advance(@impl)
  t.settle if snd_settle_mode == SND_SETTLED
  return t
end
stream(bytes) click to toggle source

@deprecated use {#send}

# File lib/core/sender.rb, line 83
def stream(bytes)
  deprecated __method__, "send"
  Cproton.pn_link_send(@impl, bytes)
end

Private Instance Methods

next_tag() click to toggle source
# File lib/core/sender.rb, line 94
def next_tag() (@tag_count += 1).to_s(32); end