PROTON-799: Added the Endpoint class to the Ruby engine APIs.
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/b66f1172 Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/b66f1172 Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/b66f1172 Branch: refs/heads/ruby-engine-apis Commit: b66f11720d96be1843501b6c5d364f0aa1bd8d68 Parents: 7512cbe Author: Darryl L. Pierce <mcpie...@gmail.com> Authored: Mon Jan 19 10:20:33 2015 -0500 Committer: Darryl L. Pierce <mcpie...@gmail.com> Committed: Tue May 19 08:02:47 2015 -0400 ---------------------------------------------------------------------- proton-c/bindings/ruby/lib/core/endpoint.rb | 115 +++++++++++++++++++++++ proton-c/bindings/ruby/lib/qpid_proton.rb | 1 + 2 files changed, 116 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/b66f1172/proton-c/bindings/ruby/lib/core/endpoint.rb ---------------------------------------------------------------------- diff --git a/proton-c/bindings/ruby/lib/core/endpoint.rb b/proton-c/bindings/ruby/lib/core/endpoint.rb new file mode 100644 index 0000000..cbf1015 --- /dev/null +++ b/proton-c/bindings/ruby/lib/core/endpoint.rb @@ -0,0 +1,115 @@ +#-- +# 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 + + # Endpoint is the parent classes for Link and Session. + # + # It provides a namespace for constant values that relate to the current + # state of both links and sessions. + # + # @example + # + # conn = Qpid::Proton::Connection.new + # puts "Local connection flags : #{conn.state || Qpid::Proton::Endpoint::LOCAL_MASK}" + # puts "Remote connection flags: #{conn.state || Qpid::Proton::Endpoint::REMOTE_MASK}" + # + class Endpoint + + # The local connection is uninitialized. + LOCAL_UNINIT = Cproton::PN_LOCAL_UNINIT + # The local connection is active. + LOCAL_ACTIVE = Cproton::PN_LOCAL_ACTIVE + # The local connection is closed. + LOCAL_CLOSED = Cproton::PN_LOCAL_CLOSED + + # The remote connection is unitialized. + REMOTE_UNINIT = Cproton::PN_REMOTE_UNINIT + # The remote connection is active. + REMOTE_ACTIVE = Cproton::PN_REMOTE_ACTIVE + # The remote connection is closed. + REMOTE_CLOSED = Cproton::PN_REMOTE_CLOSED + + # Bitmask for the local-only flags. + LOCAL_MASK = Cproton::PN_LOCAL_UNINIT | + Cproton::PN_LOCAL_ACTIVE | + Cproton::PN_LOCAL_CLOSED + + # Bitmask for the remote-only flags. + REMOTE_MASK = Cproton::PN_REMOTE_UNINIT | + Cproton::PN_REMOTE_ACTIVE | + Cproton::PN_REMOTE_CLOSED + + # @private + include Util::Engine + + # @private + def initialize + @condition = nil + end + + # @private + def _update_condition + object_to_condition(@condition, self._local_condition) + end + + # @private + def remote_condition + condition_to_object(self._remote_condition) + end + + # Return the transport associated with this endpoint. + # + # @return [Transport] The transport. + # + def transport + self.connection.transport + end + + def local_uninit? + check_state(LOCAL_UNINIT) + end + + def local_active? + check_state(LOCAL_ACTIVE) + end + + def local_closed? + check_state(LOCAL_CLOSED) + end + + def remote_uninit? + check_state(REMOTE_UNINIT) + end + + def remote_active? + check_state(REMOTE_ACTIVE) + end + + def remote_closed? + check_state(REMOTE_CLOSED) + end + + def check_state(state_mask) + !(self.state & state_mask).zero? + end + + end + +end http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/b66f1172/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 507b61f..fff9b0b 100644 --- a/proton-c/bindings/ruby/lib/qpid_proton.rb +++ b/proton-c/bindings/ruby/lib/qpid_proton.rb @@ -54,6 +54,7 @@ require "event/collector" # Main Proton classes require "core/message" +require "core/endpoint" # Messenger API classes require "messenger/filters" --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org