# File lib/handler/reactor_messaging_adapter.rb, line 106
      def on_delivery(event)
        if event.link.receiver?       # Incoming message
          d = event.delivery
          if d.aborted?
            delegate(:on_aborted, event)
            d.settle
          elsif d.complete?
            if d.link.local_closed? && @opts[:auto_accept]
              d.release
            else
              begin
                delegate(:on_message, event)
                d.accept if @opts[:auto_accept] && !d.settled?
              rescue Qpid::Proton::Reject
                d.reject
              rescue Qpid::Proton::Release
                d.release(true)
              end
            end
          end
          delegate(:on_settled, event) if d.settled?
          add_credit(event)
        else                      # Outgoing message
          t = event.tracker
          if t.updated?
            case t.state
            when Qpid::Proton::Delivery::ACCEPTED then delegate(:on_accepted, event)
            when Qpid::Proton::Delivery::REJECTED then delegate(:on_rejected, event)
            when Qpid::Proton::Delivery::RELEASED then delegate(:on_released, event)
            when Qpid::Proton::Delivery::MODIFIED then delegate(:on_modified, event)
            end
            delegate(:on_settled, event) if t.settled?
            t.settle if @opts[:auto_settle]
          end
        end
      end