Class: Qpid::Proton::Handler::IncomingMessageHandler
- Inherits:
-
BaseHandler
- Object
- BaseHandler
- Qpid::Proton::Handler::IncomingMessageHandler
- Includes:
- Acking
- Defined in:
- lib/handler/incoming_message_handler.rb
Overview
A utility for simpler and more intuitive handling of delivery events related to incoming messages.
Instance Method Summary collapse
-
#initialize(auto_accept = true, delegate = nil) ⇒ IncomingMessageHandler
constructor
A new instance of IncomingMessageHandler.
- #on_delivery(event) ⇒ Object
- #on_message(event) ⇒ Object
- #on_settled(event) ⇒ Object
Methods included from Acking
#accept, #reject, #release, #settle
Methods inherited from BaseHandler
Constructor Details
#initialize(auto_accept = true, delegate = nil) ⇒ IncomingMessageHandler
Returns a new instance of IncomingMessageHandler.
29 30 31 32 |
# File 'lib/handler/incoming_message_handler.rb', line 29 def initialize(auto_accept = true, delegate = nil) @delegate = delegate @auto_accept = auto_accept end |
Instance Method Details
#on_delivery(event) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/handler/incoming_message_handler.rb', line 34 def on_delivery(event) delivery = event.delivery return unless delivery.link.receiver? if delivery.readable? && !delivery.partial? event. = Qpid::Proton::Util::Engine.(delivery) if event.link.local_closed? if @auto_accept delivery.update(Qpid::Proton::Disposition::RELEASED) delivery.settle end else begin self.(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 |