diff options
Diffstat (limited to 'cpp/bindings/qpid/ruby/lib/qpid/session.rb')
-rw-r--r-- | cpp/bindings/qpid/ruby/lib/qpid/session.rb | 271 |
1 files changed, 0 insertions, 271 deletions
diff --git a/cpp/bindings/qpid/ruby/lib/qpid/session.rb b/cpp/bindings/qpid/ruby/lib/qpid/session.rb deleted file mode 100644 index feb8aa5bb4..0000000000 --- a/cpp/bindings/qpid/ruby/lib/qpid/session.rb +++ /dev/null @@ -1,271 +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 'cqpid' - -require 'qpid/errors' - -module Qpid - - module Messaging - - # A Session represents a distinct conversation between end points. - class Session - - def initialize(connection, session) # :nodoc: - @connection = connection - @session_impl = session - @senders = Hash.new - @receivers = Hash.new - end - - def session_impl # :nodoc: - @session_impl - end - - # Returns the +Connection+ associated with this session. - def connection - @connection - end - - # Creates a new endpoint for sending messages. - # - # The +address+ can either be an instance +Address+ or else a - # string that describes an address endpoint. - # - # ==== Arguments - # - # * +address+ The end point address. - # - # ==== Examples - # - # sender = session.create_sender "my-queue;{create:always}" - # - def create_sender(address) - _address = address - - if address.class == Qpid::Messaging::Address - _address = address.address_impl - end - - sender_impl = @session_impl.createSender(_address) - sender_name = sender_impl.getName - - @senders[sender_name] = Qpid::Messaging::Sender.new(self, sender_impl) - - @senders[sender_name] - end - - # Retrieves the +Sender+ with the specified name. - # - # The +Sender+ must have been previously created using - # the +create_sender+ method. - # - # ==== Arguments - # - # * +name+ The +Sender+ name. - # - # ==== Examples - # - # sender = session.sender "my-queue" - # - def sender(name) - raise Qpid::Messaging::KeyError, "No such sender: #{name}" unless @senders.has_key? name - - @senders[name] - end - - # Creates a new endpoint for receiving messages. - # - # The +address+ can either be an instance +Address+ or else a - # string that describes an address endpoint. - # - # ==== Arguments - # - # * +address+ The end point address. - # - # ==== Examples - # - # receiver = session.create_receiver "my-queue" - # - def create_receiver(address) - result = nil - receiver_impl = nil - - if address.class == Qpid::Messaging::Address - address_impl = address.address_impl - receiver_impl = @session_impl.createReceiver address_impl - else - receiver_impl = @session_impl.createReceiver(address) - end - - receiver_name = receiver_impl.getName - - @receivers[receiver_name] = Qpid::Messaging::Receiver.new self, receiver_impl - - @receivers[receiver_name] - end - - # Retrieves the +Receiver+ with the specified name. - # - # The +Receiver+ must have been previously created using - # the +create_receiver+ method. - # - # ==== Arguments - # - # * +name+ The +Receiver+ name. - # - # ==== Examples - # - # receiver = session.receiver "my-queue" - # - def receiver(name) - raise Qpid::Messaging::KeyError, "No such receiver: #{name}" unless @receivers.has_key? name - - @receivers[name] - end - - # Closes the +Session+ and all associated +Sender+ and +Receiver+ instances. - # - # NOTE: All +Session+ instances for a +Connection+ are closed when the - # +Connection+ is closed. - def close; @session_impl.close; end - - # Commits any pending transactions for a transactional session. - def commit; @session_impl.commit; end - - # Rolls back any uncommitted transactions on a transactional session. - def rollback; @session_impl.rollback; end - - # Acknowledges one or more outstanding messages that have been received - # on this session. - # - # ==== Arguments - # - # * :message - if specified, then only the +Message+ specified is acknowledged - # * :sync - if true then the call will block until processed by the server (def. false) - # - # ==== Examples - # - # session.acknowledge # acknowledges all received messages - # session.acknowledge :message => message # acknowledge one message - # session.acknowledge :sync => true # blocks until the call completes - # - #-- - # TODO: Add an optional block to be used for blocking calls. - #++ - def acknowledge(args = {}) - sync = args[:sync] || false - message = args[:message] if args[:message] - - unless message.nil? - @session_impl.acknowledge message.message_impl, sync - else - @session_impl.acknowledge sync - end - end - - # Rejects the specified message. A rejected message will not be - # redelivered. - # - # NOTE: A message cannot be rejected once it has been acknowledged. - def reject(message); @session_impl.reject message.message_impl; end - - # Releases the message, which allows the broker to attempt to - # redeliver it. - # - # NOTE: A message connot be released once it has been acknowled. - def release(message); @session_impl.release message.message_impl; end - - # Requests synchronization with the server. - # - # ==== Arguments - # - # * :block - if true then the call blocks until the server acknowledges it (def. false) - # - #-- - # TODO: Add an optional block to be used for blocking calls. - #++ - def sync(args = {}) - block = args[:block] || false - @session_impl.sync block - end - - # Returns the total number of receivable messages, and messages already - # received, by +Receiver+ instances associated with this +Session+. - def receivable; @session_impl.getReceivable; end - - # Returns the number of messages that have been acknowledged by this session - # whose acknowledgements have not been confirmed as processed by the server. - def unsettled_acks; @session_impl.getUnsettledAcks; end - - # Fetches the +Receiver+ for the next message. - # - # ==== Arguments - # - # * timeout - time to wait for a +Receiver+ before timing out - # - # ==== Examples - # - # recv = session.next_receiver # wait forever for the next +Receiver+ - # # execute a block on the next receiver - # session.next_receiver do |recv| - # msg = recv.get - # puts "Received message: #{msg.content}" - # end - def next_receiver(timeout = Qpid::Messaging::Duration::FOREVER, &block) - receiver_impl = @session_impl.nextReceiver(timeout.duration_impl) - - unless receiver_impl.nil? - recv = Qpid::Messaging::Receiver.new self, receiver_impl - block.call recv unless block.nil? - end - - return recv - end - - # Returns true if there were exceptions on this session. - # - # ==== Examples - # - # puts "There were session errors." if @session.errors? - def errors?; @session_impl.hasError; end - - # If the +Session+ has been rendered invalid due to some exception, - # this method will result in that exception being raised. - # - # If none have occurred, then no exceptions are raised. - # - # ==== Examples - # - # if @session.errors? - # begin - # @session.errors - # rescue Exception => error - # puts "An error occurred: #{error}" - # end - # end - def errors; @session_impl.checkError; end - - end - - end - -end - |