You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2017/11/30 21:42:35 UTC
[04/12] qpid-proton git commit: PROTON-1064: [ruby] Move
MessagingHandler to core
PROTON-1064: [ruby] Move MessagingHandler to core
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/1f06e4bf
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/1f06e4bf
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/1f06e4bf
Branch: refs/heads/master
Commit: 1f06e4bf9ca2f2d7cd130adb1494c0b18296345b
Parents: 15c804c
Author: Alan Conway <ac...@redhat.com>
Authored: Wed Nov 22 15:14:19 2017 -0500
Committer: Alan Conway <ac...@redhat.com>
Committed: Thu Nov 30 16:36:26 2017 -0500
----------------------------------------------------------------------
.../bindings/ruby/lib/core/messaging_handler.rb | 216 +++++++++++++++++++
.../ruby/lib/handler/endpoint_state_handler.rb | 2 +-
.../lib/handler/incoming_message_handler.rb | 2 +-
.../ruby/lib/handler/messaging_handler.rb | 216 -------------------
.../lib/handler/outgoing_message_handler.rb | 2 +-
proton-c/bindings/ruby/lib/qpid_proton.rb | 14 +-
6 files changed, 227 insertions(+), 225 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1f06e4bf/proton-c/bindings/ruby/lib/core/messaging_handler.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/core/messaging_handler.rb b/proton-c/bindings/ruby/lib/core/messaging_handler.rb
new file mode 100644
index 0000000..3babc05
--- /dev/null
+++ b/proton-c/bindings/ruby/lib/core/messaging_handler.rb
@@ -0,0 +1,216 @@
+#--
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#++
+
+module Qpid::Proton
+
+ # A general purpose handler that simplifies processing events.
+ #
+ class MessagingHandler
+
+ attr_reader :handlers
+
+ # Creates a new instance.
+ #
+ # @param [Integer] prefetch
+ # @param [Boolean] auto_accept
+ # @param [Boolean] auto_settle
+ # @param [Boolean] peer_close_is_error
+ #
+ def initialize(prefetch = 10, auto_accept = true, auto_settle = true, peer_close_is_error = false)
+ @handlers = Array.new
+ @handlers << Handler::CFlowController.new(prefetch) unless prefetch.zero?
+ @handlers << Handler::EndpointStateHandler.new(peer_close_is_error, self)
+ @handlers << Handler::IncomingMessageHandler.new(auto_accept, self)
+ @handlers << Handler::OutgoingMessageHandler.new(auto_settle,self)
+ end
+
+ # Called when the peer closes the connection with an error condition.
+ #
+ # @param event [Qpid::Proton::Event::Event] The event.
+ #
+ def on_connection_error(event)
+ Handler::EndpointStateHandler.print_error(event.connection, "connection")
+ end
+
+ # Called when the peer closes the session with an error condition.
+ #
+ # @param event [Qpid:Proton::Event::Event] The event.
+ #
+ def on_session_error(event)
+ Handler::EndpointStateHandler.print_error(event.session, "session")
+ event.connection.close
+ end
+
+ # Called when the peer closes the link with an error condition.
+ #
+ # @param event [Qpid::Proton::Event::Event] The event.
+ #
+ def on_link_error(event)
+ Handler::EndpointStateHandler.print_error(event.link, "link")
+ event.connection.close
+ end
+
+ # Called when the event loop starts.
+ #
+ # @param event [Qpid::Proton::Event::Event] The event.
+ #
+ def on_reactor_init(event)
+ self.on_start(event)
+ end
+
+ # Called when the event loop starts.
+ #
+ # This method needs to be overridden.
+ #
+ # @param event [Qpid::Proton::Event::Event] The event.
+ #
+ def on_start(event)
+ end
+
+ # Called when the connection is closed.
+ #
+ # This method needs to be overridden.
+ #
+ # @param event [Qpid::Proton::Event::Event] The event.
+ #
+ def on_connection_closed(event)
+ end
+
+ # Called when the session is closed.
+ #
+ # This method needs to be overridden.
+ #
+ # @param event [Qpid::Proton::Event::Event] The event.
+ #
+ def on_session_closed(event)
+ end
+
+ # Called when the link is closed.
+ #
+ # This method needs to be overridden.
+ #
+ # @param event [Qpid::Proton::Event::Event] The event.
+ #
+ def on_link_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.
+ #
+ def on_connection_closing(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.
+ #
+ def on_session_closing(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.
+ #
+ def on_link_closing(event)
+ end
+
+ # Called when the socket is disconnected.
+ #
+ # This method needs to be overridden.
+ #
+ # @param event [Qpid::Proton::Event::Event] The event.
+ #
+ def on_disconnected(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.
+ #
+ def on_sendable(event)
+ end
+
+ # Called when the remote peer accepts an outgoing message.
+ #
+ # This method needs to be overridden.
+ #
+ # @param event [Qpid::Proton::Event::Event] The event.
+ #
+ def on_accepted(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.
+ #
+ 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.
+ #
+ def on_released(event)
+ 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.
+ #
+ def on_settled(event)
+ 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.
+ #
+ def on_message(event)
+ end
+
+ end
+
+end
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1f06e4bf/proton-c/bindings/ruby/lib/handler/endpoint_state_handler.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/handler/endpoint_state_handler.rb b/proton-c/bindings/ruby/lib/handler/endpoint_state_handler.rb
index 8a1a16e..7f0c85b 100644
--- a/proton-c/bindings/ruby/lib/handler/endpoint_state_handler.rb
+++ b/proton-c/bindings/ruby/lib/handler/endpoint_state_handler.rb
@@ -32,7 +32,7 @@ module Qpid::Proton::Handler
#
# The same applies to close.
#
- class EndpointStateHandler < Qpid::Proton::BaseHandler
+ class EndpointStateHandler
def initialize(peer_close_is_error = false, delegate = nil)
@delegate = delegate
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1f06e4bf/proton-c/bindings/ruby/lib/handler/incoming_message_handler.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/handler/incoming_message_handler.rb b/proton-c/bindings/ruby/lib/handler/incoming_message_handler.rb
index ced84a2..ff59073 100644
--- a/proton-c/bindings/ruby/lib/handler/incoming_message_handler.rb
+++ b/proton-c/bindings/ruby/lib/handler/incoming_message_handler.rb
@@ -22,7 +22,7 @@ module Qpid::Proton::Handler
# A utility for simpler and more intuitive handling of delivery events
# related to incoming messages.
#
- class IncomingMessageHandler < Qpid::Proton::BaseHandler
+ class IncomingMessageHandler
include Acking
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1f06e4bf/proton-c/bindings/ruby/lib/handler/messaging_handler.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/handler/messaging_handler.rb b/proton-c/bindings/ruby/lib/handler/messaging_handler.rb
deleted file mode 100644
index d97fe3d..0000000
--- a/proton-c/bindings/ruby/lib/handler/messaging_handler.rb
+++ /dev/null
@@ -1,216 +0,0 @@
-#--
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#++
-
-module Qpid::Proton::Handler
-
- # A general purpose handler that simplifies processing events.
- #
- class MessagingHandler < Qpid::Proton::BaseHandler
-
- attr_reader :handlers
-
- # Creates a new instance.
- #
- # @param [Integer] prefetch
- # @param [Boolean] auto_accept
- # @param [Boolean] auto_settle
- # @param [Boolean] peer_close_is_error
- #
- 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 peer closes the connection with an error condition.
- #
- # @param event [Qpid::Proton::Event::Event] The event.
- #
- def on_connection_error(event)
- EndpointStateHandler.print_error(event.connection, "connection")
- end
-
- # Called when the peer closes the session with an error condition.
- #
- # @param event [Qpid:Proton::Event::Event] The event.
- #
- def on_session_error(event)
- EndpointStateHandler.print_error(event.session, "session")
- event.connection.close
- end
-
- # Called when the peer closes the link with an error condition.
- #
- # @param event [Qpid::Proton::Event::Event] The event.
- #
- def on_link_error(event)
- EndpointStateHandler.print_error(event.link, "link")
- event.connection.close
- end
-
- # Called when the event loop starts.
- #
- # @param event [Qpid::Proton::Event::Event] The event.
- #
- def on_reactor_init(event)
- self.on_start(event)
- end
-
- # Called when the event loop starts.
- #
- # This method needs to be overridden.
- #
- # @param event [Qpid::Proton::Event::Event] The event.
- #
- def on_start(event)
- end
-
- # Called when the connection is closed.
- #
- # This method needs to be overridden.
- #
- # @param event [Qpid::Proton::Event::Event] The event.
- #
- def on_connection_closed(event)
- end
-
- # Called when the session is closed.
- #
- # This method needs to be overridden.
- #
- # @param event [Qpid::Proton::Event::Event] The event.
- #
- def on_session_closed(event)
- end
-
- # Called when the link is closed.
- #
- # This method needs to be overridden.
- #
- # @param event [Qpid::Proton::Event::Event] The event.
- #
- def on_link_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.
- #
- def on_connection_closing(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.
- #
- def on_session_closing(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.
- #
- def on_link_closing(event)
- end
-
- # Called when the socket is disconnected.
- #
- # This method needs to be overridden.
- #
- # @param event [Qpid::Proton::Event::Event] The event.
- #
- def on_disconnected(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.
- #
- def on_sendable(event)
- end
-
- # Called when the remote peer accepts an outgoing message.
- #
- # This method needs to be overridden.
- #
- # @param event [Qpid::Proton::Event::Event] The event.
- #
- def on_accepted(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.
- #
- 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.
- #
- def on_released(event)
- 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.
- #
- def on_settled(event)
- 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.
- #
- def on_message(event)
- end
-
- end
-
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1f06e4bf/proton-c/bindings/ruby/lib/handler/outgoing_message_handler.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/handler/outgoing_message_handler.rb b/proton-c/bindings/ruby/lib/handler/outgoing_message_handler.rb
index 3f1f3f3..ee875b6 100644
--- a/proton-c/bindings/ruby/lib/handler/outgoing_message_handler.rb
+++ b/proton-c/bindings/ruby/lib/handler/outgoing_message_handler.rb
@@ -22,7 +22,7 @@ module Qpid::Proton::Handler
# A utility for simpler and more intuitive handling of delivery events
# related to outgoing messages.
#
- class OutgoingMessageHandler < Qpid::Proton::BaseHandler
+ class OutgoingMessageHandler
def initialize(auto_settle = true, delegate = nil)
@auto_settle = auto_settle
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1f06e4bf/proton-c/bindings/ruby/lib/qpid_proton.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/qpid_proton.rb b/proton-c/bindings/ruby/lib/qpid_proton.rb
index 62e308b..a733393 100644
--- a/proton-c/bindings/ruby/lib/qpid_proton.rb
+++ b/proton-c/bindings/ruby/lib/qpid_proton.rb
@@ -81,7 +81,6 @@ require "core/ssl_domain"
require "core/ssl_details"
require "core/ssl"
require "core/transport"
-require "core/base_handler"
require "core/url"
require "core/connection_driver"
@@ -99,18 +98,21 @@ require "handler/endpoint_state_handler"
require "handler/incoming_message_handler"
require "handler/outgoing_message_handler"
require "handler/c_flow_controller"
-require "handler/messaging_handler"
-# Core classes that depend on handlers and events
+# Core classes that depend on Handler
+require "core/messaging_handler"
require "core/container"
require "core/connection_driver"
-# Reactor classes for backwards compatibility
+# Backwards compatibility shims
require "reactor/container"
-module Qpid::Proton
+module Qpid::Proton::Handler
+ # @deprecated alias for backwards compatibility
+ MessagingHandler = Qpid::Proton::MessagingHandler
+end
- include Qpid::Proton::Handler
+module Qpid::Proton
Tracker = Delivery
# @private
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org