PROTON-799: Added the Sender 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/c1c46223 Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/c1c46223 Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/c1c46223 Branch: refs/heads/ruby-engine-apis Commit: c1c46223e572db1093447576a2cc6d73b1169758 Parents: 24a1878 Author: Darryl L. Pierce <mcpie...@gmail.com> Authored: Tue Jan 20 09:17:14 2015 -0500 Committer: Darryl L. Pierce <mcpie...@gmail.com> Committed: Mon May 18 11:33:31 2015 -0400 ---------------------------------------------------------------------- proton-c/bindings/ruby/lib/core/sender.rb | 76 ++++++++++++++++++++++++++ proton-c/bindings/ruby/lib/qpid_proton.rb | 1 + 2 files changed, 77 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/c1c46223/proton-c/bindings/ruby/lib/core/sender.rb ---------------------------------------------------------------------- diff --git a/proton-c/bindings/ruby/lib/core/sender.rb b/proton-c/bindings/ruby/lib/core/sender.rb new file mode 100644 index 0000000..9ddcaa0 --- /dev/null +++ b/proton-c/bindings/ruby/lib/core/sender.rb @@ -0,0 +1,76 @@ +#-- +# 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 + + # The sending endpoint. + # + # @see Receiver + # + class Sender < Link + + # @private + include Util::ErrorHandler + + # @private + can_raise_error :stream, :error_class => Qpid::Proton::LinkError + + # Signals the availability of deliveries. + # + # @param n [Fixnum] The number of deliveries potentially available. + # + def offered(n) + Cproton.pn_link_offered(@impl, n) + end + + # Sends the specified data to the remote endpoint. + # + # @param object [Object] The content to send. + # @param tag [Object] The tag + # + # @return [Fixnum] The number of bytes sent. + # + def send(object, tag = nil) + if object.respond_to? :proton_send + object.proton_send(self, tag) + else + stream(object) + end + end + + # Send the specified bytes as part of the current delivery. + # + # @param bytes [Array] The bytes to send. + # + # @return n [Fixnum] The number of bytes sent. + # + def stream(bytes) + Cproton.pn_link_send(@impl, bytes) + end + + def delivery_tag + @tag_count ||= 0 + result = @tag_count.succ + @tag_count = result + return "#{result}" + end + + end + +end http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/c1c46223/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 9b3becb..39ef351 100644 --- a/proton-c/bindings/ruby/lib/qpid_proton.rb +++ b/proton-c/bindings/ruby/lib/qpid_proton.rb @@ -60,6 +60,7 @@ require "core/terminus" require "core/disposition" require "core/delivery" require "core/link" +require "core/sender" # 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