A general purpose handler that simplifies processing events.
@example
Creates a new instance.
@param [Fixnum] prefetch @param [Boolean] auto_accept @param [Boolean] auto_settle @param [Boolean] peer_close_is_error
# File lib/handler/messaging_handler.rb, line 37 def initialize(prefetch = 10, auto_accept = true, auto_settle = true, peer_close_is_error = false) @handlers = Array.new @handlers << CFlowController.new(prefetch) unless prefetch.zero? @handlers << EndpointStateHandler.new(peer_close_is_error, self) @handlers << IncomingMessageHandler.new(auto_accept, self) @handlers << OutgoingMessageHandler.new(auto_settle,self) end
Called when the remote peer accepts an outgoing message.
This method needs to be overridden.
@param event [Qpid::Proton::Event::Event] The event.
# File lib/handler/messaging_handler.rb, line 167 def on_accepted(event) end
Called when the connection is closed.
This method needs to be overridden.
@param event [Qpid::Proton::Event::Event] The event.
# File lib/handler/messaging_handler.rb, line 94 def on_connection_closed(event) end
Called when the peer initiates the closing of the connection.
This method needs to be overridden.
@param event [Qpid::Proton::Event::Event] The event.
# File lib/handler/messaging_handler.rb, line 121 def on_connection_closing(event) end
Called when the peer closes the connection with an error condition.
@param event [Qpid::Proton::Event::Event] The event.
# File lib/handler/messaging_handler.rb, line 49 def on_connection_error(event) EndpointStateHandler.print_error(event.connection, "connection") end
Called when the socket is disconnected.
This method needs to be overridden.
@param event [Qpid::Proton::Event::Event] The event.
# File lib/handler/messaging_handler.rb, line 148 def on_disconnected(event) end
Called when the link is closed.
This method needs to be overridden.
@param event [Qpid::Proton::Event::Event] The event.
# File lib/handler/messaging_handler.rb, line 112 def on_link_closed(event) end
Called when the peer initiates the closing of the link.
This method needs to be overridden.
@param event [Qpid::Proton::Event::Event] The event.
# File lib/handler/messaging_handler.rb, line 139 def on_link_closing(event) end
Called when the peer closes the link with an error condition.
@param event [Qpid::Proton::Event::Event] The event.
# File lib/handler/messaging_handler.rb, line 66 def on_link_error(event) EndpointStateHandler.print_error(event.link, "link") event.connection.close end
Called when a message is received.
The message itself can be obtained as a property on the event. For the purpose of referring to this message in further actions, such as explicitly accepting it) the delivery should be used. This is also obtainable vi a property on the event.
This method needs to be overridden.
@param event [Qpid::Proton::Event::Event] The event.
# File lib/handler/messaging_handler.rb, line 213 def on_message(event) end
Called when the event loop starts.
@param event [Qpid::Proton::Event::Event] The event.
# File lib/handler/messaging_handler.rb, line 75 def on_reactor_init(event) self.on_start(event) end
Called when the remote peer rejects an outgoing message.
This method needs to be overridden.
@param event [Qpid::Proton::Event::Event] The event.
# File lib/handler/messaging_handler.rb, line 176 def on_rejected(event) end
Called when the remote peer releases an outgoing message.
Note that this may be in response to either the RELEASE or MODIFIED state as defined by the AMPQ specification.
This method needs to be overridden.
@param event [Qpid::Proton::Event::Event] The event.
# File lib/handler/messaging_handler.rb, line 188 def on_released(event) end
Called when the sender link has credit and messages can therefore be transferred.
This method needs to be overridden.
@param event [Qpid::Proton::Event::Event] The event.
# File lib/handler/messaging_handler.rb, line 158 def on_sendable(event) end
Called when the session is closed.
This method needs to be overridden.
@param event [Qpid::Proton::Event::Event] The event.
# File lib/handler/messaging_handler.rb, line 103 def on_session_closed(event) end
Called when the peer initiates the closing of the session.
This method needs to be overridden.
@param event [Qpid::Proton::Event::Event] The event.
# File lib/handler/messaging_handler.rb, line 130 def on_session_closing(event) end
Called when the peer closes the session with an error condition.
@param event [Qpid:Proton::Event::Event] The event.
# File lib/handler/messaging_handler.rb, line 57 def on_session_error(event) EndpointStateHandler.print_error(event.session, "session") event.connection.close end
Called when the remote peer has settled hte outgoing message.
This is the point at which it should never be retransmitted.
This method needs to be overridden.
@param event [Qpid::Proton::Event::Event] The event.
# File lib/handler/messaging_handler.rb, line 199 def on_settled(event) end
Called when the event loop starts.
This method needs to be overridden.
@param event [Qpid::Proton::Event::Event] The event.
# File lib/handler/messaging_handler.rb, line 85 def on_start(event) end