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