class Qpid::Proton::Handler::OutgoingMessageHandler

A utility for simpler and more intuitive handling of delivery events related to outgoing messages.

Public Class Methods

new(auto_settle = true, delegate = nil) click to toggle source
# File lib/handler/outgoing_message_handler.rb, line 27
def initialize(auto_settle = true, delegate = nil)
  @auto_settle = auto_settle
  @delegate = delegate
end

Public Instance Methods

on_accepted(event) click to toggle source

Called when the remote peer accepts a sent message.

@param event [Qpid::Proton::Event::Event] The event.

# File lib/handler/outgoing_message_handler.rb, line 63
def on_accepted(event)
  Qpid::Proton::Event.dispatch(@delegate, :on_accepted, event) if !@delegate.nil?
end
on_delivery(event) click to toggle source
# File lib/handler/outgoing_message_handler.rb, line 36
def on_delivery(event)
  delivery = event.delivery
  if delivery.link.sender? && delivery.updated?
    if delivery.remote_accepted?
      self.on_accepted(event)
    elsif delivery.remote_rejected?
      self.on_rejected(event)
    elsif delivery.remote_released? || delivery.remote_modified?
      self.on_released(event)
    end
    self.on_settled(event) if delivery.settled?
    delivery.settle if @auto_settle
  end
end
on_rejected(event) click to toggle source

Called when the remote peer rejects a sent message.

@param event [Qpid::Proton::Event::Event] The event.

# File lib/handler/outgoing_message_handler.rb, line 71
def on_rejected(event)
  Qpid::Proton::Event.dispatch(@delegate, :on_rejected, event) if !@delegate.nil?
end
on_released(event) click to toggle source

Called when the remote peer releases an outgoing message.

Note that this may be in resposnse to either the REELAASE or MODIFIED state as defined by the AMQP specification.

@param event [Qpid::Proton::Event::Event] The event.

# File lib/handler/outgoing_message_handler.rb, line 82
def on_released(event)
  Qpid::Proton::Event.dispatch(@delegate, :on_released, event) if !@delegate.nil?
end
on_sendable(event) click to toggle source

Called when the sender link has credit and messages and be transferred.

@param event [Qpid::Proton::Event::Event] The event.

# File lib/handler/outgoing_message_handler.rb, line 55
def on_sendable(event)
  Qpid::Proton::Event.dispatch(@delegate, :on_sendable, event) if !@delegate.nil?
end
on_settled(event) click to toggle source

Called when the remote peer has settled the outgoing message.

This is the point at which it should never be retransmitted.

@param event [Qpid::Proton::Event::Event] The event.

# File lib/handler/outgoing_message_handler.rb, line 92
def on_settled(event)
  Qpid::Proton::Event.dispatch(@delegate, :on_settled, event) if !@delegate.nil?
end