You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2017/01/10 15:58:37 UTC
[16/55] [partial] qpid-proton-j git commit: PROTON-1385: retain
proton-j content only, the rest remains in the other repo at:
https://git-wip-us.apache.org/repos/asf/qpid-proton.git
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/messenger/messenger.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/messenger/messenger.rb b/proton-c/bindings/ruby/lib/messenger/messenger.rb
deleted file mode 100644
index 70a01de..0000000
--- a/proton-c/bindings/ruby/lib/messenger/messenger.rb
+++ /dev/null
@@ -1,702 +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::Messenger
-
- # The +Messenger+ class defines a high level interface for
- # sending and receiving Messages. Every Messenger contains
- # a single logical queue of incoming messages and a single
- # logical queue of outgoing messages. These messages in these
- # queues may be destined for, or originate from, a variety of
- # addresses.
- #
- # The messenger interface is single-threaded. All methods
- # except one ( #interrupt ) are intended to be used from within
- # the messenger thread.
- #
- # === Sending & Receiving Messages
- #
- # The Messenger class works in conjuction with the Message class. The
- # Message class is a mutable holder of message content.
- #
- # The put method copies its Message to the outgoing queue, and may
- # send queued messages if it can do so without blocking. The send
- # method blocks until it has sent the requested number of messages,
- # or until a timeout interrupts the attempt.
- #
- # Similarly, the recv method receives messages into the incoming
- # queue, and may block as it attempts to receive the requested number
- # of messages, or until timeout is reached. It may receive fewer
- # than the requested number. The get method pops the
- # eldest Message off the incoming queue and copies it into the Message
- # object that you supply. It will not block.
- #
- # The blocking attribute allows you to turn off blocking behavior entirely,
- # in which case send and recv will do whatever they can without
- # blocking, and then return. You can then look at the number
- # of incoming and outgoing messages to see how much outstanding work
- # still remains.
- #
- class Messenger
-
- include Qpid::Proton::Util::ErrorHandler
-
- can_raise_error [:send, :receive, :password=, :start, :stop,
- :perform_put, :perform_get, :interrupt,
- :route, :rewrite, :accept, :reject,
- :incoming_window=, :outgoing_window=]
-
- # Creates a new +Messenger+.
- #
- # The +name+ parameter is optional. If one is not provided then
- # a unique name is generated.
- #
- # ==== Options
- #
- # * name - the name (def. nil)
- #
- def initialize(name = nil)
- @impl = Cproton.pn_messenger(name)
- @selectables = {}
- ObjectSpace.define_finalizer(self, self.class.finalize!(@impl))
- end
-
- def self.finalize!(impl) # :nodoc:
- proc {
- Cproton.pn_messenger_free(impl)
- }
- end
-
- # Returns the name.
- #
- def name
- Cproton.pn_messenger_name(@impl)
- end
-
- # This property contains the password for the Messenger.private_key
- # file, or +nil+ if the file is not encrypted.
- #
- # ==== Arguments
- #
- # * password - the password
- #
- def password=(password)
- Cproton.pn_messenger_set_password(@impl, password)
- end
-
- # Returns the password property for the Messenger.private_key file.
- #
- def password
- Cproton.pn_messenger_get_password(@impl)
- end
-
- # Sets the timeout period, in milliseconds.
- #
- # A negative timeout period implies an infinite timeout.
- #
- # ==== Options
- #
- # * timeout - the timeout period
- #
- def timeout=(timeout)
- raise TypeError.new("invalid timeout: #{timeout}") if timeout.nil?
- Cproton.pn_messenger_set_timeout(@impl, timeout)
- end
-
- # Returns the timeout period
- #
- def timeout
- Cproton.pn_messenger_get_timeout(@impl)
- end
-
- # Returns true if blocking mode is enabled.
- #
- # Enable or disable blocking behavior during message sending
- # and receiving. This affects every blocking call, with the
- # exception of work(). Currently, the affected calls are
- # send, recv, and stop.
- def blocking?
- Cproton.pn_messenger_is_blocking(@impl)
- end
-
- # Sets the blocking mode.
- def blocking=(blocking)
- Cproton.pn_messenger_set_blocking(@impl, blocking)
- end
-
- # Returns true if passive mode is enabled.
- #
- def passive?
- Cproton.pn_messenger_is_passive(@impl)
- end
-
- # Turns passive mode on or off.
- #
- # When set to passive mode, Messenger will not attempt to perform I/O
- # operations internally. In this mode it is necesssary to use the
- # Selectable type to drive any I/O needed to perform requestioned
- # actions.
- #
- # In this mode Messenger will never block.
- #
- def passive=(mode)
- Cproton.pn_messenger_set_passive(@impl, mode)
- end
-
- def deadline
- tstamp = Cproton.pn_messenger_deadline(@impl)
- return tstamp / 1000.0 unless tstamp.nil?
- end
-
- # Reports whether an error occurred.
- #
- def error?
- !Cproton.pn_messenger_errno(@impl).zero?
- end
-
- # Returns the most recent error number.
- #
- def errno
- Cproton.pn_messenger_errno(@impl)
- end
-
- # Returns the most recent error message.
- #
- def error
- Cproton.pn_error_text(Cproton.pn_messenger_error(@impl))
- end
-
- # Clears the current error state.
- #
- def clear_error
- error = Cproton.pn_messenger_error(@impl)
- unless error.nil?
- Cproton.pn_error_clear(error)
- end
- end
-
- # For future compatibility, do not send or recv messages
- # before starting the +Messenger+.
- #
- def start
- at_exit { stop }
- Cproton.pn_messenger_start(@impl)
- end
-
- # Stops the +Messenger+, preventing it from sending or receiving
- # any more messages.
- #
- def stop
- Cproton.pn_messenger_stop(@impl)
- end
-
- # Returns true if a Messenger is in the stopped state.
- # This function does not block.
- #
- def stopped?
- Cproton.pn_messenger_stopped(@impl)
- end
-
- # Subscribes the Messenger to messages originating from the
- # specified source. The source is an address as specified in the
- # Messenger introduction with the following addition. If the
- # domain portion of the address begins with the '~' character, the
- # Messenger will interpret the domain as host/port, bind to it,
- # and listen for incoming messages. For example "~0.0.0.0",
- # "amqp://~0.0.0.0" will all bind to any local interface and
- # listen for incoming messages. An address of "amqps://~0.0.0.0"
- # will only permit incoming SSL connections.
- #
- # ==== Options
- #
- # * address - the source address to be subscribe
- # * timeout - an optional time-to-live value, in seconds, for the
- # subscription
- #
- def subscribe(address, timeout=0)
- raise TypeError.new("invalid address: #{address}") if address.nil?
- subscription = Cproton.pn_messenger_subscribe_ttl(@impl, address, timeout)
- raise Qpid::Proton::ProtonError.new("Subscribe failed") if subscription.nil?
- Subscription.new(subscription)
- end
-
- # Path to a certificate file for the +Messenger+.
- #
- # This certificate is used when the +Messenger+ accepts or establishes
- # SSL/TLS connections. This property must be specified for the
- # Messenger to accept incoming SSL/TLS connections and to establish
- # client authenticated outgoing SSL/TLS connection. Non client authenticated
- # outgoing SSL/TLS connections do not require this property.
- #
- # ==== Options
- #
- # * certificate - the certificate
- #
- def certificate=(certificate)
- Cproton.pn_messenger_set_certificate(@impl, certificate)
- end
-
- # Returns the path to a certificate file.
- #
- def certificate
- Cproton.pn_messenger_get_certificate(@impl)
- end
-
- # Path to a private key file for the +Messenger+.
- #
- # The property must be specified for the +Messenger+ to accept incoming
- # SSL/TLS connections and to establish client authenticated outgoing
- # SSL/TLS connections. Non client authenticated SSL/TLS connections
- # do not require this property.
- #
- # ==== Options
- #
- # * key - the key file
- #
- def private_key=(key)
- Cproton.pn_messenger_set_private_key(@impl, key)
- end
-
- # Returns the path to a private key file.
- #
- def private_key
- Cproton.pn_messenger_get_private_key(@impl)
- end
-
- # A path to a database of trusted certificates for use in verifying the
- # peer on an SSL/TLS connection. If this property is +nil+, then the
- # peer will not be verified.
- #
- # ==== Options
- #
- # * certificates - the certificates path
- #
- def trusted_certificates=(certificates)
- Cproton.pn_messenger_set_trusted_certificates(@impl,certificates)
- end
-
- # The path to the databse of trusted certificates.
- #
- def trusted_certificates
- Cproton.pn_messenger_get_trusted_certificates(@impl)
- end
-
- # Places the content contained in the message onto the outgoing
- # queue of the Messenger.
- #
- # This method will never block, however it will send any unblocked
- # Messages in the outgoing queue immediately and leave any blocked
- # Messages remaining in the outgoing queue.
- # The send call may then be used to block until the outgoing queue
- # is empty. The outgoing attribute may be used to check the depth
- # of the outgoing queue.
- #
- # ==== Options
- #
- # * message - the message
- #
- def put(message)
- if message.nil?
- raise TypeError.new("invalid message: #{message}")
- end
- unless message.kind_of?(Qpid::Proton::Message)
- raise ::ArgumentError.new("invalid message type: #{message.class}")
- end
- # encode the message first
- message.pre_encode
- perform_put(message)
- return outgoing_tracker
- end
-
- private
-
- def perform_put(message) # :nodoc:
- Cproton.pn_messenger_put(@impl, message.impl)
- end
-
- public
-
-
- # This call will block until the indicated number of messages
- # have been sent, or until the operation times out.
- # If n is -1 this call will block until all outgoing messages
- # have been sent. If n is 0 then this call will send whatever
- # it can without blocking.
- #
- def send(n = -1)
- Cproton.pn_messenger_send(@impl, n)
- end
-
- # Moves the message from the head of the incoming message queue into
- # the supplied message object. Any content in the supplied message
- # will be overwritten.
- # A tracker for the incoming Message is returned. The tracker can
- # later be used to communicate your acceptance or rejection of the
- # Message.
- #
- # If no message is provided in the argument, then one is created. In
- # either case, the one returned will be the fetched message.
- #
- # ==== Options
- #
- # * msg - the (optional) +Message+ instance to be used
- #
- def get(msg = nil)
- msg_impl = nil
- if msg.nil? then
- msg_impl = nil
- else
- msg_impl = msg.impl
- end
- perform_get(msg_impl)
- msg.post_decode unless msg.nil?
- return incoming_tracker
- end
-
- private
-
- def perform_get(msg) # :nodoc:
- Cproton.pn_messenger_get(@impl, msg)
- end
-
- public
-
- # Receives up to limit messages into the incoming queue. If no value
- # for limit is supplied, this call will receive as many messages as it
- # can buffer internally. If the Messenger is in blocking mode, this
- # call will block until at least one Message is available in the
- # incoming queue.
- #
- # Options ====
- #
- # * limit - the maximum number of messages to receive
- #
- def receive(limit = -1)
- Cproton.pn_messenger_recv(@impl, limit)
- end
-
- # Returns true if the messenger is currently receiving data.
- def receiving?
- Cproton.pn_messenger_receiving(@impl)
- end
-
- # Attempts interrupting of the messenger thread.
- #
- # The Messenger interface is single-threaded, and this is the only
- # function intended to be called from outside of is thread.
- #
- # Call this from a non-Messenger thread to interrupt it while it
- # is blocking. This will cause a ::InterruptError to be raised.
- #
- # If there is no currently blocking call, then the next blocking
- # call will be affected, even if it is within the same thread that
- # originated the interrupt.
- #
- def interrupt
- Cproton.pn_messenger_interrupt(@impl)
- end
-
- # Sends or receives any outstanding messages queued for a Messenger.
- #
- # This will block for the indicated timeout. This method may also do I/O
- # other than sending and receiving messages. For example, closing
- # connections after stop() has been called.
- #
- def work(timeout=-1)
- err = Cproton.pn_messenger_work(@impl, timeout)
- if (err == Cproton::PN_TIMEOUT) then
- return false
- else
- check_for_error(err)
- return true
- end
- end
-
- # Returns the number messages in the outgoing queue that have not been
- # transmitted.
- #
- def outgoing
- Cproton.pn_messenger_outgoing(@impl)
- end
-
- # Returns the number of messages in the incoming queue that have not
- # been retrieved.
- #
- def incoming
- Cproton.pn_messenger_incoming(@impl)
- end
-
- # Adds a routing rule to the Messenger's internal routing table.
- #
- # The route procedure may be used to influence how a Messenger will
- # internally treat a given address or class of addresses. Every call
- # to the route procedure will result in Messenger appending a routing
- # rule to its internal routing table.
- #
- # Whenever a Message is presented to a Messenger for delivery, it
- # will match the address of this message against the set of routing
- # rules in order. The first rule to match will be triggered, and
- # instead of routing based on the address presented in the message,
- # the Messenger will route based on the address supplied in the rule.
- #
- # The pattern matching syntax supports two types of matches, a '%'
- # will match any character except a '/', and a '*' will match any
- # character including a '/'.
- #
- # A routing address is specified as a normal AMQP address, however it
- # may additionally use substitution variables from the pattern match
- # that triggered the rule.
- #
- # ==== Arguments
- #
- # * pattern - the address pattern
- # * address - the target address
- #
- # ==== Examples
- #
- # # route messages sent to foo to the destionaty amqp://foo.com
- # messenger.route("foo", "amqp://foo.com")
- #
- # # any message to foobar will be routed to amqp://foo.com/bar
- # messenger.route("foobar", "amqp://foo.com/bar")
- #
- # # any message to bar/<path> will be routed to the same path within
- # # the amqp://bar.com domain
- # messenger.route("bar/*", "amqp://bar.com/$1")
- #
- # # route all Message objects over TLS
- # messenger.route("amqp:*", "amqps:$1")
- #
- # # supply credentials for foo
- # messenger.route("amqp://foo.com/*", "amqp://user:password@foo.com/$1")
- #
- # # supply credentials for all domains
- # messenger.route("amqp://*", "amqp://user:password@$1")
- #
- # # route all addresses through a single proxy while preserving the
- # # original destination
- # messenger.route("amqp://%$/*", "amqp://user:password@proxy/$1/$2")
- #
- # # route any address through a single broker
- # messenger.route("*", "amqp://user:password@broker/$1")
- #
- def route(pattern, address)
- Cproton.pn_messenger_route(@impl, pattern, address)
- end
-
- # Similar to #route, except that the destination of
- # the Message is determined before the message address is rewritten.
- #
- # The outgoing address is only rewritten after routing has been
- # finalized. If a message has an outgoing address of
- # "amqp://0.0.0.0:5678", and a rewriting rule that changes its
- # outgoing address to "foo", it will still arrive at the peer that
- # is listening on "amqp://0.0.0.0:5678", but when it arrives there,
- # the receiver will see its outgoing address as "foo".
- #
- # The default rewrite rule removes username and password from addresses
- # before they are transmitted.
- #
- # ==== Arguments
- #
- # * pattern - the outgoing address
- # * address - the target address
- #
- def rewrite(pattern, address)
- Cproton.pn_messenger_rewrite(@impl, pattern, address)
- end
-
- def selectable
- impl = Cproton.pn_messenger_selectable(@impl)
-
- # if we don't have any selectables, then return
- return nil if impl.nil?
-
- fd = Cproton.pn_selectable_get_fd(impl)
-
- selectable = @selectables[fd]
- if selectable.nil?
- selectable = Selectable.new(self, impl)
- @selectables[fd] = selectable
- end
- return selectable
- end
-
- # Returns a +Tracker+ for the message most recently sent via the put
- # method.
- #
- def outgoing_tracker
- impl = Cproton.pn_messenger_outgoing_tracker(@impl)
- return nil if impl == -1
- Tracker.new(impl)
- end
-
- # Returns a +Tracker+ for the most recently received message.
- #
- def incoming_tracker
- impl = Cproton.pn_messenger_incoming_tracker(@impl)
- return nil if impl == -1
- Tracker.new(impl)
- end
-
- # Signal the sender that you have acted on the Message
- # pointed to by the tracker. If no tracker is supplied,
- # then all messages that have been returned by the get
- # method are accepted, except those that have already been
- # auto-settled by passing beyond your incoming window size.
- #
- # ==== Options
- #
- # * tracker - the tracker
- #
- def accept(tracker = nil)
- raise TypeError.new("invalid tracker: #{tracker}") unless tracker.nil? or valid_tracker?(tracker)
- if tracker.nil? then
- tracker = self.incoming_tracker
- flag = Cproton::PN_CUMULATIVE
- else
- flag = 0
- end
- Cproton.pn_messenger_accept(@impl, tracker.impl, flag)
- end
-
- # Rejects the incoming message identified by the tracker.
- # If no tracker is supplied, all messages that have been returned
- # by the get method are rejected, except those that have already
- # been auto-settled by passing beyond your outgoing window size.
- #
- # ==== Options
- #
- # * tracker - the tracker
- #
- def reject(tracker)
- raise TypeError.new("invalid tracker: #{tracker}") unless tracker.nil? or valid_tracker?(tracker)
- if tracker.nil? then
- tracker = self.incoming_tracker
- flag = Cproton::PN_CUMULATIVE
- else
- flag = 0
- end
- Cproton.pn_messenger_reject(@impl, tracker.impl, flag)
- end
-
- # Gets the last known remote state of the delivery associated with
- # the given tracker, as long as the Message is still within your
- # outgoing window. (Also works on incoming messages that are still
- # within your incoming queue. See TrackerStatus for details on the
- # values returned.
- #
- # ==== Options
- #
- # * tracker - the tracker
- #
- def status(tracker)
- raise TypeError.new("invalid tracker: #{tracker}") unless valid_tracker?(tracker)
- TrackerStatus.by_value(Cproton.pn_messenger_status(@impl, tracker.impl))
- end
-
- # Frees a Messenger from tracking the status associated
- # with a given tracker. If you don't supply a tracker, all
- # outgoing messages up to the most recent will be settled.
- #
- # ==== Options
- #
- # * tracker - the tracker
- #
- # ==== Examples
- #
- def settle(tracker)
- raise TypeError.new("invalid tracker: #{tracker}") unless valid_tracker?(tracker)
- if tracker.nil? then
- tracker = self.incoming_tracker
- flag = Cproton::PN_CUMULATIVE
- else
- flag = 0
- end
- Cproton.pn_messenger_settle(@impl, tracker.impl, flag)
- end
-
- # Sets the incoming window.
- #
- # The Messenger will track the remote status of this many incoming
- # deliveries after they have been accepted or rejected.
- #
- # Messages enter this window only when you take them into your application
- # using get(). If your incoming window size is n, and you get n+1 messages
- # without explicitly accepting or rejecting the oldest message, then the
- # message that passes beyond the edge of the incoming window will be
- # assigned the default disposition of its link.
- #
- # ==== Options
- #
- # * window - the window size
- #
- def incoming_window=(window)
- raise TypeError.new("invalid window: #{window}") unless valid_window?(window)
- Cproton.pn_messenger_set_incoming_window(@impl, window)
- end
-
- # Returns the incoming window.
- #
- def incoming_window
- Cproton.pn_messenger_get_incoming_window(@impl)
- end
-
- # Sets the outgoing window.
- #
- # The Messenger will track the remote status of this many outgoing
- # deliveries after calling send.
- # A Message enters this window when you call the put() method with the
- # message. If your outgoing window size is n, and you call put n+1
- # times, status information will no longer be available for the
- # first message.
- #
- # ==== Options
- #
- # * window - the window size
- #
- def outgoing_window=(window)
- raise TypeError.new("invalid window: #{window}") unless valid_window?(window)
- Cproton.pn_messenger_set_outgoing_window(@impl, window)
- end
-
- # Returns the outgoing window.
- #
- def outgoing_window
- Cproton.pn_messenger_get_outgoing_window(@impl)
- end
-
- # Unregisters a selectable object.
- def unregister_selectable(fileno) # :nodoc:
- @selectables.delete(fileno)
- end
-
- private
-
- def valid_tracker?(tracker)
- !tracker.nil? && tracker.is_a?(Tracker)
- end
-
- def valid_window?(window)
- !window.nil? && [Float, Fixnum].include?(window.class)
- end
-
- end
-
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/messenger/subscription.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/messenger/subscription.rb b/proton-c/bindings/ruby/lib/messenger/subscription.rb
deleted file mode 100644
index 6d4973e..0000000
--- a/proton-c/bindings/ruby/lib/messenger/subscription.rb
+++ /dev/null
@@ -1,37 +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::Messenger
-
- # A +Subscription+ is an opaque object for working with a +Messenger+'s
- # subscriptions.
- #
- class Subscription
-
- def initialize(impl) # :nodoc:
- @impl = impl
- end
-
- def impl # :nodoc:
- @impl
- end
-
- end
-
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/messenger/tracker.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/messenger/tracker.rb b/proton-c/bindings/ruby/lib/messenger/tracker.rb
deleted file mode 100644
index 55507e5..0000000
--- a/proton-c/bindings/ruby/lib/messenger/tracker.rb
+++ /dev/null
@@ -1,38 +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::Messenger
-
- # A +Tracker+ is used to track the disposition of a +Message+.
- #
- class Tracker
-
- CUMULATIVE = Cproton::PN_CUMULATIVE
-
- def initialize(impl) # :nodoc:
- @impl = impl
- end
-
- def impl # :nodoc:
- @impl
- end
-
- end
-
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/messenger/tracker_status.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/messenger/tracker_status.rb b/proton-c/bindings/ruby/lib/messenger/tracker_status.rb
deleted file mode 100644
index 6eea9ce..0000000
--- a/proton-c/bindings/ruby/lib/messenger/tracker_status.rb
+++ /dev/null
@@ -1,69 +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::Messenger
-
- # TrackerStatus contains symbols that represent the status value for a
- # Tracker.
- #
- class TrackerStatus
-
- def initialize value, name # :nodoc:
- @value = value
- @name = name
- end
-
- def value # :nodoc:
- @value
- end
-
- def to_s # :nodoc:
- @name.to_s
- end
-
- def self.by_name(name) # :nodoc:
- @by_name[name.to_sym] unless name.nil?
- end
-
- def self.by_value(value) # :nodoc:
- @by_value[value] unless value.nil?
- end
-
- private
-
- def self.add_item(key, value) # :nodoc:
- @by_name ||= {}
- @by_name[key] = TrackerStatus.new value, key
- @by_value ||= {}
- @by_value[value] = @by_name[key]
- end
-
- def self.const_missing(key) # :nodoc:
- @by_name[key]
- end
-
- self.add_item :UNKNOWN, Cproton::PN_STATUS_UNKNOWN
- self.add_item :PENDING, Cproton::PN_STATUS_PENDING
- self.add_item :ACCEPTED, Cproton::PN_STATUS_ACCEPTED
- self.add_item :REJECTED, Cproton::PN_STATUS_REJECTED
- self.add_item :SETTLED, Cproton::PN_STATUS_SETTLED
-
- end
-
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/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
deleted file mode 100644
index 1d614a4..0000000
--- a/proton-c/bindings/ruby/lib/qpid_proton.rb
+++ /dev/null
@@ -1,132 +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.
-#++
-
-require "cproton"
-require "date"
-require "weakref"
-
-if RUBY_VERSION < "1.9"
-require "kconv"
-else
- require "securerandom"
-end
-
-# Exception classes
-require "core/exceptions"
-
-# Utility classes
-require "util/version"
-require "util/error_handler"
-require "util/constants"
-require "util/swig_helper"
-require "util/condition"
-require "util/wrapper"
-require "util/class_wrapper"
-require "util/engine"
-require "util/uuid"
-require "util/timeout"
-require "util/handler"
-require "util/reactor"
-
-# Types
-require "types/strings"
-require "types/hash"
-require "types/array"
-require "types/described"
-
-# Codec classes
-require "codec/mapping"
-require "codec/data"
-
-# Event API classes
-require "event/event_type"
-require "event/event_base"
-require "event/event"
-require "event/collector"
-
-# Main Proton classes
-require "core/selectable"
-require "core/message"
-require "core/endpoint"
-require "core/session"
-require "core/terminus"
-require "core/disposition"
-require "core/delivery"
-require "core/link"
-require "core/sender"
-require "core/receiver"
-require "core/connection"
-require "core/sasl"
-require "core/ssl_domain"
-require "core/ssl_details"
-require "core/ssl"
-require "core/transport"
-require "core/base_handler"
-require "core/url"
-
-# Messenger API classes
-require "messenger/subscription"
-require "messenger/tracker_status"
-require "messenger/tracker"
-require "messenger/messenger"
-
-# Handler classes
-require "handler/c_adaptor"
-require "handler/wrapped_handler"
-require "handler/acking"
-require "handler/endpoint_state_handler"
-require "handler/incoming_message_handler"
-require "handler/outgoing_message_handler"
-require "handler/c_flow_controller"
-require "handler/messaging_handler"
-
-# Reactor classes
-require "reactor/task"
-require "reactor/acceptor"
-require "reactor/reactor"
-require "reactor/ssl_config"
-require "reactor/global_overrides"
-require "reactor/urls"
-require "reactor/connector"
-require "reactor/backoff"
-require "reactor/session_per_connection"
-require "reactor/container"
-require "reactor/link_option"
-
-module Qpid::Proton
- # @private
- def self.registry
- @registry ||= {}
- end
-
- # @private
- def self.add_to_registry(key, value)
- self.registry[key] = value
- end
-
- # @private
- def self.get_from_registry(key)
- self.registry[key]
- end
-
- # @private
- def self.delete_from_registry(key)
- self.registry.delete(key)
- end
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/reactor/acceptor.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/reactor/acceptor.rb b/proton-c/bindings/ruby/lib/reactor/acceptor.rb
deleted file mode 100644
index 83e0596..0000000
--- a/proton-c/bindings/ruby/lib/reactor/acceptor.rb
+++ /dev/null
@@ -1,41 +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::Reactor
-
- class Acceptor
-
- include Qpid::Proton::Util::Wrapper
-
- def initialize(impl)
- @impl = impl
- self.class.store_instance(self)
- end
-
- def set_ssl_domain(ssl_domain)
- Cproton.pn_acceptor_set_ssl_domain(@impl, ssl_domain.impl)
- end
-
- def close
- Cproton.pn_acceptor_close(@impl)
- end
-
- end
-
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/reactor/backoff.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/reactor/backoff.rb b/proton-c/bindings/ruby/lib/reactor/backoff.rb
deleted file mode 100644
index 99682e5..0000000
--- a/proton-c/bindings/ruby/lib/reactor/backoff.rb
+++ /dev/null
@@ -1,41 +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::Reactor
-
- class Backoff
-
- def initialize
- @delay = 0
- end
-
- def reset
- @delay = 0
- end
-
- def next
- current = @delay
- current = 0.1 if current.zero?
- @delay = [10, 2 * current].min
- return current
- end
-
- end
-
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/reactor/connector.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/reactor/connector.rb b/proton-c/bindings/ruby/lib/reactor/connector.rb
deleted file mode 100644
index a6523db..0000000
--- a/proton-c/bindings/ruby/lib/reactor/connector.rb
+++ /dev/null
@@ -1,98 +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::Reactor
-
- class Connector < Qpid::Proton::BaseHandler
-
- attr_accessor :address
- attr_accessor :reconnect
- attr_accessor :ssl_domain
-
- def initialize(connection)
- @connection = connection
- @address = nil
- @heartbeat = nil
- @reconnect = nil
- @ssl_domain = nil
- end
-
- def on_connection_local_open(event)
- self.connect(event.connection)
- end
-
- def on_connection_remote_open(event)
- if !@reconnect.nil?
- @reconnect.reset
- @transport = nil
- end
- end
-
- def on_transport_tail_closed(event)
- self.on_transport_closed(event)
- end
-
- def on_transport_closed(event)
- if !@connection.nil? && !(@connection.state & Qpid::Proton::Endpoint::LOCAL_ACTIVE).zero?
- if !@reconnect.nil?
- event.transport.unbind
- delay = @reconnect.next
- if delay == 0
- self.connect(@connection)
- else
- event.reactor.schedule(delay, self)
- end
- else
- @connection = nil
- end
- end
- end
-
- def on_timer_task(event)
- self.connect(@connection)
- end
-
- def on_connection_remote_close(event)
- @connection = nil
- end
-
- def connect(connection)
- url = @address.next
- connection.hostname = "#{url.host}:#{url.port}"
-
- transport = Qpid::Proton::Transport.new
- transport.bind(connection)
- if !@heartbeat.nil?
- transport.idle_timeout = @heartbeat
- elsif (url.scheme == "amqps") && !@ssl_domain.nil?
- @ssl = Qpid::Proton::SSL.new(transport, @ssl_domain)
- @ss.peer_hostname = url.host
- elsif !url.username.nil?
- sasl = transport.sasl
- if url.username == "anonymous"
- sasl.mechanisms("ANONYMOUS")
- else
- sasl.plain(url.username, url.password)
- end
- end
- end
-
- end
-
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/reactor/container.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/reactor/container.rb b/proton-c/bindings/ruby/lib/reactor/container.rb
deleted file mode 100644
index 2a7a030..0000000
--- a/proton-c/bindings/ruby/lib/reactor/container.rb
+++ /dev/null
@@ -1,272 +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::Reactor
-
- # @private
- class InternalTransactionHandler < Qpid::Proton::Handler::OutgoingMessageHandler
-
- def initialize
- super
- end
-
- def on_settled(event)
- if event.delivery.respond_to? :transaction
- event.transaction = event.delivery.transaction
- event.delivery.transaction.handle_outcome(event)
- end
- end
-
- end
-
-
- # A representation of the AMQP concept of a container which, loosely
- # speaking, is something that establishes links to or from another
- # container on which messages are transferred.
- #
- # This is an extension to the Reactor classthat adds convenience methods
- # for creating instances of Qpid::Proton::Connection, Qpid::Proton::Sender
- # and Qpid::Proton::Receiver.
- #
- # @example
- #
- class Container < Reactor
-
- include Qpid::Proton::Util::Reactor
-
- include Qpid::Proton::Util::UUID
-
- attr_accessor :container_id
- attr_accessor :global_handler
-
- def initialize(handlers, options = {})
- super(handlers, options)
-
- # only do the following if we're creating a new instance
- if !options.has_key?(:impl)
- @ssl = SSLConfig.new
- if options[:global_handler]
- self.global_handler = GlobalOverrides.new(options[:global_handler])
- else
- # very ugly, but using self.global_handler doesn't work in the constructor
- ghandler = Reactor.instance_method(:global_handler).bind(self).call
- ghandler = GlobalOverrides.new(ghandler)
- Reactor.instance_method(:global_handler=).bind(self).call(ghandler)
- end
- @trigger = nil
- @container_id = generate_uuid
- end
- end
-
- # Initiates the establishment of an AMQP connection.
- #
- # @param options [Hash] A hash of named arguments.
- #
- def connect(options = {})
- conn = self.connection(options[:handler])
- conn.container = self.container_id || generate_uuid
- connector = Connector.new(conn)
- conn.overrides = connector
- if !options[:url].nil?
- connector.address = URLs.new([options[:url]])
- elsif !options[:urls].nil?
- connector.address = URLs.new(options[:urls])
- elsif !options[:address].nil?
- connector.address = URLs.new([Qpid::Proton::URL.new(options[:address])])
- else
- raise ::ArgumentError.new("either :url or :urls or :address required")
- end
-
- connector.heartbeat = options[:heartbeat] if !options[:heartbeat].nil?
- if !options[:reconnect].nil?
- connector.reconnect = options[:reconnect]
- else
- connector.reconnect = Backoff.new()
- end
-
- connector.ssl_domain = SessionPerConnection.new # TODO seems this should be configurable
-
- conn.open
-
- return conn
- end
-
- def _session(context)
- if context.is_a?(Qpid::Proton::URL)
- return self._session(self.connect(:url => context))
- elsif context.is_a?(Qpid::Proton::Session)
- return context
- elsif context.is_a?(Qpid::Proton::Connection)
- if context.session_policy?
- return context.session_policy.session(context)
- else
- return self.create_session(context)
- end
- else
- return context.session
- end
- end
-
- # Initiates the establishment of a link over which messages can be sent.
- #
- # @param context [String, URL] The context.
- # @param opts [Hash] Additional options.
- # @param opts [String, Qpid::Proton::URL] The target address.
- # @param opts [String] :source The source address.
- # @param opts [Boolean] :dynamic
- # @param opts [Object] :handler
- # @param opts [Object] :tag_generator The tag generator.
- # @param opts [Hash] :options Addtional link options
- #
- # @return [Sender] The sender.
- #
- def create_sender(context, opts = {})
- if context.is_a?(::String)
- context = Qpid::Proton::URL.new(context)
- end
-
- target = opts[:target]
- if context.is_a?(Qpid::Proton::URL) && target.nil?
- target = context.path
- end
-
- session = self._session(context)
-
- sender = session.sender(opts[:name] ||
- id(session.connection.container,
- target, opts[:source]))
- sender.source.address = opts[:source] if !opts[:source].nil?
- sender.target.address = target if target
- sender.handler = opts[:handler] if !opts[:handler].nil?
- sender.tag_generator = opts[:tag_generator] if !opts[:tag_gnenerator].nil?
- self._apply_link_options(opts[:options], sender)
- sender.open
- return sender
- end
-
- # Initiates the establishment of a link over which messages can be received.
- #
- # There are two accepted arguments for the context
- # 1. If a Connection is supplied then the link is established using that
- # object. The source, and optionally the target, address can be supplied
- # 2. If it is a String or a URL then a new Connection is created on which
- # the link will be attached. If a path is specified, but not the source
- # address, then the path of the URL is used as the target address.
- #
- # The name will be generated for the link if one is not specified.
- #
- # @param context [Connection, URL, String] The connection or the address.
- # @param opts [Hash] Additional otpions.
- # @option opts [String, Qpid::Proton::URL] The source address.
- # @option opts [String] :target The target address
- # @option opts [String] :name The link name.
- # @option opts [Boolean] :dynamic
- # @option opts [Object] :handler
- # @option opts [Hash] :options Additional link options.
- #
- # @return [Receiver
- #
- def create_receiver(context, opts = {})
- if context.is_a?(::String)
- context = Qpid::Proton::URL.new(context)
- end
-
- source = opts[:source]
- if context.is_a?(Qpid::Proton::URL) && source.nil?
- source = context.path
- end
-
- session = self._session(context)
-
- receiver = session.receiver(opts[:name] ||
- id(session.connection.container,
- source, opts[:target]))
- receiver.source.address = source if source
- receiver.source.dynamic = true if opts.has_key?(:dynamic) && opts[:dynamic]
- receiver.target.address = opts[:target] if !opts[:target].nil?
- receiver.handler = opts[:handler] if !opts[:handler].nil?
- self._apply_link_options(opts[:options], receiver)
- receiver.open
- return receiver
- end
-
- def declare_transaction(context, handler = nil, settle_before_discharge = false)
- if context.respond_to? :txn_ctl && !context.__send__(:txn_ctl).nil?
- class << context
- attr_accessor :txn_ctl
- end
- context.txn_ctl = self.create_sender(context, nil, "txn-ctl",
- InternalTransactionHandler.new())
- end
- return Transaction.new(context.txn_ctl, handler, settle_before_discharge)
- end
-
- # Initiates a server socket, accepting incoming AMQP connections on the
- # interface and port specified.
- #
- # @param url []
- # @param ssl_domain []
- #
- def listen(url, ssl_domain = nil)
- url = Qpid::Proton::URL.new(url)
- acceptor = self.acceptor(url.host, url.port)
- ssl_config = ssl_domain
- if ssl_config.nil? && (url.scheme == 'amqps') && @ssl
- ssl_config = @ssl.server
- end
- if !ssl_config.nil?
- acceptor.ssl_domain(ssl_config)
- end
- return acceptor
- end
-
- def do_work(timeout = nil)
- self.timeout = timeout unless timeout.nil?
- self.process
- end
-
- def id(container, remote, local)
- if !local.nil? && !remote.nil?
- "#{container}-#{remote}-#{local}"
- elsif !local.nil?
- "#{container}-#{local}"
- elsif !remote.nil?
- "#{container}-#{remote}"
- else
- "#{container}-#{generate_uuid}"
- end
- end
-
- def _apply_link_options(options, link)
- if !options.nil? && !options.empty?
- if !options.is_a?(::List)
- options = [Options].flatten
- end
-
- options.each {|option| o.apply(link) if o.test(link)}
- end
- end
-
- def to_s
- "#{self.class}<@impl=#{Cproton.pni_address_of(@impl)}>"
- end
-
- end
-
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/reactor/global_overrides.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/reactor/global_overrides.rb b/proton-c/bindings/ruby/lib/reactor/global_overrides.rb
deleted file mode 100644
index 11d05a5..0000000
--- a/proton-c/bindings/ruby/lib/reactor/global_overrides.rb
+++ /dev/null
@@ -1,44 +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::Reactor
-
- class GlobalOverrides
-
- def initialize(base)
- @base = base
- end
-
- def on_unhandled(name, event)
- event.dispatch(@base) unless self.override?(event)
- end
-
- def override?(event)
- conn = event.connection
- if !conn.nil? && conn.overrides?
- overrides = conn.overrides
- result = event.dispatch(overrides)
- return result
- end
- false
- end
-
- end
-
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/reactor/link_option.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/reactor/link_option.rb b/proton-c/bindings/ruby/lib/reactor/link_option.rb
deleted file mode 100644
index 628a811..0000000
--- a/proton-c/bindings/ruby/lib/reactor/link_option.rb
+++ /dev/null
@@ -1,90 +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::Reactor
-
- class LinkOption
- def apply(link)
- end
-
- # Subclasses should override this to selectively apply an option.
- def test(link)
- true
- end
- end
-
- class AtMostOne < LinkOption
- def apply(link)
- link.snd_settle_mod = Link::SND_SETTLED
- end
- end
-
- class AtLeastOnce < LinkOption
- def apply(link)
- link.snd_settle_mode = Link::SND_UNSETTLED
- link.rcv_settle_mode = Link::RCV_FIRST
- end
- end
-
- class SenderOption < LinkOption
- def test(link)
- link.sender?
- end
- end
-
- class ReceiverOption < LinkOption
- def test(link)
- link.receiver?
- end
- end
-
- class DynamicNodeProperties < LinkOption
- def initialize(properties = {})
- @properties = []
- properties.each do |property|
- @properties << property.to_sym
- end
- end
-
- def apply(link)
- if link.receiver?
- link.source.properties.dict = @properties
- else
- link.target.properties.dict = @properties
- end
- end
- end
-
- class Filter < ReceiverOption
- def initialize(filter_set = {})
- @filter_set = filter_set
- end
-
- def apply(receiver)
- receiver.source.filter.dict = @filter_set
- end
- end
-
- #class Selector < Filter
- # def initialize(value, name = 'selector')
- #
- # end
- #end
-
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/reactor/reactor.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/reactor/reactor.rb b/proton-c/bindings/ruby/lib/reactor/reactor.rb
deleted file mode 100644
index a0ff7e0..0000000
--- a/proton-c/bindings/ruby/lib/reactor/reactor.rb
+++ /dev/null
@@ -1,196 +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::Reactor
-
- class Reactor
-
- include Qpid::Proton::Util::Handler
-
- # @private
- include Qpid::Proton::Util::SwigHelper
-
- # @private
- PROTON_METHOD_PREFIX = "pn_reactor"
-
- proton_caller :yield
-
- proton_caller :mark
-
- proton_caller :start
-
- proton_caller :stop
-
- # @private
- include Qpid::Proton::Util::Timeout
-
- include Qpid::Proton::Util::Wrapper
-
- attr_reader :errors
-
- def self.wrap(impl)
- return nil if impl.nil?
-
- self.fetch_instance(impl, :pn_reactor_attachments) || Reactor.new(nil, :impl => impl)
- end
-
- def initialize(handlers, options = {})
- @impl = options[:impl]
- if @impl.nil?
- @impl = Cproton.pn_reactor
- end
- if !handlers.nil?
- [handlers].flatten.each {|handler| self.handler.add(handler)}
- end
- @errors = []
- @handlers = []
- self.class.store_instance(self, :pn_reactor_attachments)
- end
-
- # Returns whether the reactor has any unbuffered data.
- #
- # @return [Boolean] True if there is no unbuffered data.
- #
- def quiesced?
- Cproton.pn_reactor_quiesced(@impl)
- end
-
- def on_error(info)
- self.errors << info
- self.yield
- end
-
- def global_handler
- impl = Cproton.pn_reactor_get_global_handler(@impl)
- Qpid::Proton::Handler::WrappedHandler.wrap(impl, self.method(:on_error))
- end
-
- def global_handler=(handler)
- impl = chandler(handler, self.method(:on_error))
- Cproton.pn_reactor_set_global_handler(@impl, impl)
- Cproton.pn_decref(impl)
- end
-
- # Returns the timeout period.
- #
- # @return [Fixnum] The timeout period, in seconds.
- #
- def timeout
- millis_to_timeout(Cproton.pn_reactor_get_timeout(@impl))
- end
-
- # Sets the timeout period.
- #
- # @param timeout [Fixnum] The timeout, in seconds.
- #
- def timeout=(timeout)
- Cproton.pn_reactor_set_timeout(@impl, timeout_to_millis(timeout))
- end
-
- def handler
- impl = Cproton.pn_reactor_get_handler(@impl)
- Qpid::Proton::Handler::WrappedHandler.wrap(impl, self.method(:on_error))
- end
-
- def handler=(handler)
- impl = chandler(handler, set.method(:on_error))
- Cproton.pn_reactor_set_handler(@impl, impl)
- Cproton.pn_decref(impl)
- end
-
- def run(&block)
- self.timeout = 3.14159265359
- self.start
- while self.process do
- if block_given?
- yield
- end
- end
- self.stop
- end
-
- def wakeup
- n = Cproton.pn_reactor_wakeup(@impl)
- unless n.zero?
- raise IOError.new(Cproton.pn_reactor_error(@impl))
- end
- end
-
- def process
- result = Cproton.pn_reactor_process(@impl)
- if !self.errors.nil? && !self.errors.empty?
- (0...self.errors.size).each do |index|
- error_set = self.errors[index]
- print error.backtrace.join("\n")
- end
- raise self.errors.last
- end
- return result
- end
-
- def schedule(delay, task)
- impl = chandler(task, self.method(:on_error))
- task = Task.wrap(Cproton.pn_reactor_schedule(@impl, sec_to_millis(delay), impl))
- Cproton.pn_decref(impl)
- return task
- end
-
- def acceptor(host, port, handler = nil)
- impl = chandler(handler, self.method(:on_error))
- aimpl = Cproton.pn_reactor_acceptor(@impl, host, "#{port}", impl)
- Cproton.pn_decref(impl)
- if !aimpl.nil?
- return Acceptor.new(aimpl)
- else
- io_error = Cproton.pn_reactor_error(@impl)
- error_text = Cproton.pn_error_text(io_error)
- text = "(#{Cproton.pn_error_text(io_error)} (#{host}:#{port}))"
- raise IOError.new(text)
- end
- end
-
- def connection(handler = nil)
- impl = chandler(handler, self.method(:on_error))
- conn = Qpid::Proton::Connection.wrap(Cproton.pn_reactor_connection(@impl, impl))
- Cproton.pn_decref(impl)
- return conn
- end
-
- def selectable(handler = nil)
- impl = chandler(handler, self.method(:on_error))
- result = Selectable.wrap(Cproton.pn_reactor_selectable(@impl))
- if !impl.nil?
- record = Cproton.pn_selectable_attachments(result.impl)
- Cproton.pn_record_set_handler(record, impl)
- Cproton.pn_decref(impl)
- end
- return result
- end
-
- def update(sel)
- Cproton.pn_reactor_update(@impl, sel.impl)
- end
-
- def push_event(obj, etype)
- Cproton.pn_collector_put(Cproton.pn_reactor_collector(@impl), Qpid::Proton::Util::RBCTX, Cproton.pn_py2void(obj), etype.number)
- end
-
- end
-
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/reactor/session_per_connection.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/reactor/session_per_connection.rb b/proton-c/bindings/ruby/lib/reactor/session_per_connection.rb
deleted file mode 100644
index f8180c0..0000000
--- a/proton-c/bindings/ruby/lib/reactor/session_per_connection.rb
+++ /dev/null
@@ -1,45 +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::Reactor
-
- class SessionPerConnection
-
- include Qpid::Proton::Util::Reactor
-
- def initialize
- @default_session = nil
- end
-
- def session(connection)
- if @default_session.nil?
- @default_session = self.create_session
- @default_session.context = self
- end
- return @default_session
- end
-
- def on_session_remote_close(event)
- event.connection.close
- @default_session = nil
- end
-
- end
-
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/reactor/ssl_config.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/reactor/ssl_config.rb b/proton-c/bindings/ruby/lib/reactor/ssl_config.rb
deleted file mode 100644
index 56fec71..0000000
--- a/proton-c/bindings/ruby/lib/reactor/ssl_config.rb
+++ /dev/null
@@ -1,41 +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::Reactor
-
- class SSLConfig
-
- def initialize
- @client = Qpid::Proton::SSLDomain.new(Qpid::Proton::SSLDomain::MODE_CLIENT)
- @server = Qpid::Proton::SSLDomain.new(Qpid::Proton::SSLDomain::MODE_SERVER)
- end
-
- def set_credentials(cert_file, key_file, password)
- @client.set_credentials(cert_file, key_file, password)
- @server.set_credentials(cert_file, key_file, password)
- end
-
- def set_trusted_ca_db(certificate_db)
- @client.set_trusted_ca_db(certificate_db)
- @server.set_trusted_ca_db(certificate_db)
- end
-
- end
-
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/reactor/task.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/reactor/task.rb b/proton-c/bindings/ruby/lib/reactor/task.rb
deleted file mode 100644
index 6818ed2..0000000
--- a/proton-c/bindings/ruby/lib/reactor/task.rb
+++ /dev/null
@@ -1,39 +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::Reactor
-
- class Task
-
- # @private
- include Qpid::Proton::Util::Wrapper
-
- def self.wrap(impl)
- return nil if impl.nil?
- self.fetch_instance(impl, :pn_task_attachments) || Task.new(impl)
- end
-
- def initialize(impl)
- @impl = impl
- self.class.store_instance(self, :pn_task_attachments)
- end
-
- end
-
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/reactor/urls.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/reactor/urls.rb b/proton-c/bindings/ruby/lib/reactor/urls.rb
deleted file mode 100644
index 8cdb16c..0000000
--- a/proton-c/bindings/ruby/lib/reactor/urls.rb
+++ /dev/null
@@ -1,40 +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::Reactor
-
- class URLs
-
- def initialize(values)
- @values = [values].flatten
- @iter = @values.each
- end
-
- def next
- begin
- return @iter.next
- rescue StopIteration
- @iter = @values.each
- return @iter.next
- end
- end
-
- end
-
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/types/array.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/types/array.rb b/proton-c/bindings/ruby/lib/types/array.rb
deleted file mode 100644
index f5c6b50..0000000
--- a/proton-c/bindings/ruby/lib/types/array.rb
+++ /dev/null
@@ -1,172 +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.
-#++
-
-#--
-# Patch the Array class to provide methods for adding its contents
-# to a Qpid::Proton::Data instance.
-#++
-
-module Qpid::Proton::Types
-
- # Holds the information for an AMQP Array compound type.
- #
- # It holds the type for the array and the descriptor if the
- # array is described.
- #
- # @private
- #
- class ArrayHeader
- attr_reader :type
- attr_reader :descriptor
-
- def initialize(type, descriptor = nil)
- @type = type
- @descriptor = descriptor
- end
-
- # Returns true if the array is described.
- def described?
- !@descriptor.nil?
- end
-
- def ==(that)
- ((@type == that.type) && (@descriptor == that.descriptor))
- end
- end
-
-end
-
-# @private
-class Array # :nodoc:
-
- # Used to declare an array as an AMQP array.
- #
- # The value, if defined, is an instance of Qpid::Proton::Types::ArrayHeader
- attr_accessor :proton_array_header
-
- # Returns true if the array is the a Proton described type.
- def proton_described?
- !@proton_array_header.nil? && @proton_array_header.described?
- end
-
- # Puts the elements of the array into the specified Qpid::Proton::Data object.
- def proton_put(data)
- raise TypeError, "data object cannot be nil" if data.nil?
-
- if @proton_array_header.nil?
- proton_put_list(data)
- else
- proton_put_array(data)
- end
- end
-
- private
-
- def proton_put_list(data)
- # create a list, then enter it and add each element
- data.put_list
- data.enter
- each do |element|
- # get the proton type for the element
- mapping = Qpid::Proton::Codec::Mapping.for_class(element.class)
- # add the element
- mapping.put(data, element)
- end
- # exit the list
- data.exit
- end
-
- def proton_put_array(data)
- data.put_array(@proton_array_header.described?, @proton_array_header.type)
- data.enter
- if @proton_array_header.described?
- data.symbol = @proton_array_header.descriptor
- end
-
- each do |element|
- @proton_array_header.type.put(data, element)
- end
-
- data.exit
- end
-
- class << self
-
- # Gets the elements of an array or list out of the specified
- # Qpid::Proton::Data object.
- def proton_get(data)
- raise TypeError, "can't convert nil into Qpid::Proton::Data" if data.nil?
-
- type = data.type
-
- if type == Qpid::Proton::Codec::LIST
- result = proton_get_list(data)
- elsif type == Qpid::Proton::Codec::ARRAY
- result = proton_get_array(data)
- else
- raise TypeError, "element is not a list and not an array"
- end
- end
-
- private
-
- def proton_get_list(data)
- size = data.list
- raise TypeError, "not a list" unless data.enter
- elements = []
- (0...size).each do
- data.next
- type = data.type
- raise TypeError, "missing next element in list" unless type
- elements << type.get(data)
- end
- data.exit
- return elements
- end
-
- def proton_get_array(data)
- count, described, type = data.array
-
- raise TypeError, "not an array" unless data.enter
- elements = []
-
- descriptor = nil
-
- if described
- data.next
- descriptor = data.symbol
- end
-
- elements.proton_array_header = Qpid::Proton::Types::ArrayHeader.new(type, descriptor)
- (0...count).each do |which|
- if data.next
- etype = data.type
- raise TypeError, "missing next element in array" unless etype
- raise TypeError, "invalid array element: #{etype}" unless etype == type
- elements << type.get(data)
- end
- end
- data.exit
- return elements
- end
-
- end
-
-end
-
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/types/described.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/types/described.rb b/proton-c/bindings/ruby/lib/types/described.rb
deleted file mode 100644
index 7c09d3f..0000000
--- a/proton-c/bindings/ruby/lib/types/described.rb
+++ /dev/null
@@ -1,63 +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::Types
-
- # @private
- class Described
-
- attr_reader :descriptor
- attr_reader :value
-
- def initialize(descriptor, value)
- @descriptor = descriptor
- @value = value
- end
-
- # Puts the description into the Data object.
- #
- # ==== Arguments
- #
- # * data - the Qpid::Proton::Data instance
- #
- # ==== Examples
- #
- # described = Qpid::Proton::Described.new("my-descriptor", "the value")
- # data = Qpid::Proton::Data.new
- # ...
- # described.put(data)
- #
- def put(data)
- data.symbol = @descriptor
- data.string = @value
- end
-
- def ==(that) # :nodoc:
- (that.is_a?(Qpid::Proton::Types::Described) &&
- (self.descriptor == that.descriptor) &&
- (self.value == that.value))
- end
-
- def to_s # :nodoc:
- "descriptor=#{descriptor} value=#{value}"
- end
-
- end
-
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/types/hash.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/types/hash.rb b/proton-c/bindings/ruby/lib/types/hash.rb
deleted file mode 100644
index e6836d5..0000000
--- a/proton-c/bindings/ruby/lib/types/hash.rb
+++ /dev/null
@@ -1,87 +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.
-#++
-
-#--
-# Patch the Hash class to provide methods for adding its contents
-# to a Qpid::Proton::Data instance.
-#++
-
-# @private
-class Hash # :nodoc:
-
- # Places the contents of the hash into the specified data object.
- #
- # ==== Arguments
- #
- # * data - the Qpid::Proton::Data instance
- #
- # ==== Examples
- #
- # data = Qpid::Proton::Data.new
- # values = {:foo => :bar}
- # values.proton_data_put(data)
- #
- def proton_data_put(data)
- raise TypeError, "data object cannot be nil" if data.nil?
-
- data.put_map
- data.enter
-
- each_pair do |key, value|
- type = Qpid::Proton::Codec::Mapping.for_class(key.class)
- type.put(data, key)
- type = Qpid::Proton::Codec::Mapping.for_class(value.class)
- type.put(data, value)
- end
-
- data.exit
- end
-
- class << self
-
- def proton_data_get(data)
- raise TypeError, "data object cannot be nil" if data.nil?
-
- type = data.type
-
- raise TypeError, "element is not a map" unless type == Qpid::Proton::Codec::MAP
-
- count = data.map
- result = {}
-
- data.enter
-
- (0...(count/2)).each do
- data.next
- type = data.type
- key = type.get(data)
- data.next
- type = data.type
- value = type.get(data)
- result[key] = value
- end
-
- data.exit
-
- return result
- end
-
- end
-
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/types/strings.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/types/strings.rb b/proton-c/bindings/ruby/lib/types/strings.rb
deleted file mode 100644
index ffbea3c..0000000
--- a/proton-c/bindings/ruby/lib/types/strings.rb
+++ /dev/null
@@ -1,62 +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::Types
-
- # @private
- def self.is_valid_utf?(value)
- # In Ruby 1.9+ we have encoding methods that can check the content of
- # the string, so use them to see if what we have is unicode. If so,
- # good! If not, then just treat is as binary.
- #
- # No such thing in Ruby 1.8. So there we need to use Iconv to try and
- # convert it to unicode. If it works, good! But if it raises an
- # exception then we'll treat it as binary.
- if RUBY_VERSION < "1.9"
- return true if value.isutf8
- return false
- else
- return true if (value.encoding == "UTF-8" ||
- value.encode("UTF-8").valid_encoding?)
-
- return false
- end
- end
-
- # UTFString lets an application explicitly state that a
- # string of characters is to be UTF-8 encoded.
- #
- class UTFString < ::String
-
- def initialize(value)
- if !Qpid::Proton::Types.is_valid_utf?(value)
- raise RuntimeError.new("invalid UTF string")
- end
-
- super(value)
- end
-
- end
-
- # BinaryString lets an application explicitly declare that
- # a string value represents arbitrary data.
- #
- class BinaryString < ::String; end
-
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/util/class_wrapper.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/util/class_wrapper.rb b/proton-c/bindings/ruby/lib/util/class_wrapper.rb
deleted file mode 100644
index dec16e9..0000000
--- a/proton-c/bindings/ruby/lib/util/class_wrapper.rb
+++ /dev/null
@@ -1,54 +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::Util
-
- # This mixin provides a method for mapping from an underlying Proton
- # C library class to a Ruby class.
- #
- # @private
- #
- module ClassWrapper
-
- WRAPPERS =
- {
- "pn_void" => proc {|x| Cproton.pn_void2rb(x)},
- "pn_rbref" => proc {|x| Cproton.pn_void2rb(x)},
- "pn_connection" => proc {|x| Qpid::Proton::Connection.wrap(Cproton.pn_cast_pn_connection(x))},
- "pn_session" => proc {|x| Qpid::Proton::Session.wrap(Cproton.pn_cast_pn_session(x))},
- "pn_link" => proc {|x| Qpid::Proton::Link.wrap(Cproton.pn_cast_pn_link(x))},
- "pn_delivery" => proc {|x| Qpid::Proton::Delivery.wrap(Cproton.pn_cast_pn_delivery(x))},
- "pn_transport" => proc {|x| Qpid::Proton::Transport.wrap(Cproton.pn_cast_pn_transport(x))},
- "pn_selectable" => proc {|x| Qpid::Proton::Selectable.wrap(Cproton.pn_cast_pn_selectable(x))},
- "pn_reactor" => proc {|x| Qpid::Proton::Reactor::Reactor.wrap(Cproton.pn_cast_pn_reactor(x))},
- "pn_task" => proc {|x| Qpid::Proton::Reactor::Task.wrap(Cproton.pn_cast_pn_task(x))},
- }
-
- def class_wrapper(clazz, c_impl, &block)
- proc_func = WRAPPERS[clazz]
- if !proc_func.nil?
- proc_func.yield(c_impl)
- elsif block_given?
- yield(c_impl)
- end
- end
-
- end
-
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/util/condition.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/util/condition.rb b/proton-c/bindings/ruby/lib/util/condition.rb
deleted file mode 100644
index b8fd94b..0000000
--- a/proton-c/bindings/ruby/lib/util/condition.rb
+++ /dev/null
@@ -1,45 +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::Util
-
- class Condition
-
- def initialize(name, description = nil, info = nil)
- @name = name
- @description = description
- @info = info
- end
-
- # @private
- def to_s
- "Condition(#{@name}, #{@description}, #{@info})"
- end
-
- # @private
- def ==(other)
- ((other.class = self.class) &&
- (other.name == self.name) &&
- (other.description == self.description) &&
- (other.info == self.info))
- end
-
- end
-
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/util/constants.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/util/constants.rb b/proton-c/bindings/ruby/lib/util/constants.rb
deleted file mode 100644
index 50225e6..0000000
--- a/proton-c/bindings/ruby/lib/util/constants.rb
+++ /dev/null
@@ -1,85 +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::Util
-
- # Provides a means for defining constant values within the namespace
- # of a class.
- #
- # If the class has defined the class method, :post_add_constant, then that
- # method will be invoked after each new item is added. It must be defined
- # *before* any constants are defined.
- #
- # ==== Example
- #
- # class GrammarComponent
- #
- # include Qpid::Proton::Constants
- #
- # def self.post_add_constant(key, value)
- # @terminal << value if value.terminal?
- # @nonterminal << value if !value.terminal? && !value.rule
- # @rule << value if value.rule
- # end
- #
- # self.add_constant :LEFT_PARENTHESIS, new GrammarComponent("(", :terminal)
- # self.add_constant :RIGHT_PARENTHESIS, new GrammarComponent(")", :terminal)
- # self.add_constant :ELEMENT, new GrammarComponent("E", :rule)
- #
- # def initialize(component, type)
- # @component = component
- # @type = type
- # end
- #
- # def terminal?; @type == :terminal; end
- #
- # def rule?; @type == :rule; end
- #
- # end
- #
- # @private
- #
- module Constants
-
- def self.included(base)
- base.extend ClassMethods
- end
-
- module ClassMethods
-
- def add_constant(key, value)
- self.const_set(key, value)
-
- @pn_by_value ||= {}
- @pn_by_value[value] = key
-
- if self.respond_to? :post_add_constant
- self.post_add_constant(key, value)
- end
- end
-
- def by_value(value)
- (@pn_by_value || {})[value]
- end
-
- end
-
- end
-
-end
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/ruby/lib/util/engine.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/util/engine.rb b/proton-c/bindings/ruby/lib/util/engine.rb
deleted file mode 100644
index 53aa672..0000000
--- a/proton-c/bindings/ruby/lib/util/engine.rb
+++ /dev/null
@@ -1,82 +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::Util
-
- # @private
- module Engine
-
- # Convenience method to receive messages from a delivery.
- #
- # @param delivery [Qpid::Proton::Delivery] The delivery.
- # @param message [Qpid::Proton::Message] The message to use.
- #
- # @return [Qpid::Proton::Message] the message
- #
- def self.receive_message(delivery, msg = nil)
- msg = Qpid::Proton::Message.new if msg.nil?
- msg.decode(delivery.link.receive(delivery.pending))
- delivery.link.advance
- return msg
- end
-
- def data_to_object(data_impl) # :nodoc:
- object = nil
- unless data_impl.nil?
- data = Qpid::Proton::Codec::Data.new(data_impl)
- data.rewind
- data.next
- object = data.object
- data.rewind
- end
- return object
- end
-
- def object_to_data(object, data_impl) # :nodoc:
- unless object.nil?
- data = Data.new(data_impl)
- data.object = object
- end
- end
-
- def condition_to_object(condition) # :nodoc:
- result = nil
- if Cproton.pn_condition_is_set(condition)
- result = Condition.new(Cproton.pn_condition_get_name(condition),
- Cproton.pn_condition_get_description(condition),
- data_to_object(Cproton.pn_condition_info(condition)))
- end
- return result
- end
-
- def object_to_condition(object, condition) # :nodoc:
- Cproton.pn_condition_clear(condition)
- unless object.nil?
- Cproton.pn_condition_set_name(condition, object.name)
- Cproton.pn_condition_set_description(condition, object.description)
- info = Data.new(Cproton.pn_condition_info(condition))
- if object.info?
- info.object = object.info
- end
- end
- end
-
- end
-
-end
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org