def on_delivery(event)
delivery = event.delivery
return unless delivery.link.receiver?
if delivery.readable? && !delivery.partial?
event.message = Qpid::Proton::Util::Engine.receive_message(delivery)
if event.link.local_closed?
if @auto_accept
delivery.update(Qpid::Proton::Disposition::RELEASED)
delivery.settle
end
else
begin
self.on_message(event)
if @auto_accept
delivery.update(Qpid::Proton::Disposition::ACCEPTED)
delivery.settle
end
rescue Qpid::Proton::Reject
delivery.update(Qpid::Proton::Disposition::REJECTED)
delivery.settle
rescue Qpid::Proton::Release
delivery.update(Qpid::Proton::Disposition::MODIFIED)
delivery.settle
end
end
elsif delivery.updated? && delivery.settled?
self.on_settled(event)
end
end