summaryrefslogtreecommitdiff
path: root/cpp/bindings/qpid/ruby/lib
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/bindings/qpid/ruby/lib')
-rw-r--r--cpp/bindings/qpid/ruby/lib/qpid.rb1
-rw-r--r--cpp/bindings/qpid/ruby/lib/qpid/sender.rb82
2 files changed, 83 insertions, 0 deletions
diff --git a/cpp/bindings/qpid/ruby/lib/qpid.rb b/cpp/bindings/qpid/ruby/lib/qpid.rb
index b5ac578b7c..b72747d9e3 100644
--- a/cpp/bindings/qpid/ruby/lib/qpid.rb
+++ b/cpp/bindings/qpid/ruby/lib/qpid.rb
@@ -22,4 +22,5 @@ require 'qpid/duration'
require 'qpid/address'
require 'qpid/encoding'
require 'qpid/message'
+require 'qpid/sender'
diff --git a/cpp/bindings/qpid/ruby/lib/qpid/sender.rb b/cpp/bindings/qpid/ruby/lib/qpid/sender.rb
new file mode 100644
index 0000000000..5d59c20d7e
--- /dev/null
+++ b/cpp/bindings/qpid/ruby/lib/qpid/sender.rb
@@ -0,0 +1,82 @@
+#
+# 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
+
+ module Messaging
+
+ # Sender defines a type for sending messages.
+ class Sender
+
+ def initialize(sender_impl) # :nodoc:
+ @sender_impl = sender_impl
+ end
+
+ def sender_impl # :nodoc:
+ @sender_impl
+ end
+
+ # Sends a message.
+ def send(message, args = {})
+ block = args[:block] || false
+ @sender_impl.send message.message_impl, block
+ end
+
+ # Closes the sender.
+ def close; @sender_impl.close; end
+
+ # Returns the name for the sender.
+ def name; @sender_impl.getName; end
+
+ # Sets the capacity for the sender, which is the number of outgoing
+ # messages that can be held pending confirmation or receipt by
+ # the broker.
+ def capacity=(capacity); @sender_impl.setCapacity capacity; end
+
+ # Returns the capacity.
+ def capacity; @sender_impl.getCapacity; end
+
+ # Returns the number of messages sent that are pending receipt
+ # confirmation by the broker.
+ def unsettled; @sender_impl.getUnsettled; end
+
+ # Returns the available capacity for sending messages.
+ def available
+ @sender_impl.getAvailable
+ end
+
+ # Returns the Session for this sender.
+ def session; Qpid::Messaging::Session.new @sender_impl.getSession; end
+
+ # Returns if the underlying sender is valid.
+ def valid?; @sender_impl.isValid; end
+
+ # Returns if the underlying sender is null.
+ def null?; @sender_impl.isNull; end
+
+ def swap sender
+ @sender_impl.swap sender.sender_impl
+ end
+
+ end
+
+ end
+
+end
+