summaryrefslogtreecommitdiff
path: root/cpp/bindings/qpid/ruby/examples/map_receiver.rb
diff options
context:
space:
mode:
authorStephen D. Huston <shuston@apache.org>2011-10-20 18:42:46 +0000
committerStephen D. Huston <shuston@apache.org>2011-10-20 18:42:46 +0000
commit5eb354b338bb8d8fcd35b6ac3fb33f8103e757c3 (patch)
treef24776684c025fbed6a0431bf3d6811f0a1aae7a /cpp/bindings/qpid/ruby/examples/map_receiver.rb
parent718ff5b34dd1e87eb79fa4c61fec668d1dc33103 (diff)
downloadqpid-python-5eb354b338bb8d8fcd35b6ac3fb33f8103e757c3.tar.gz
Merge trunk to QPID-2519 branch
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/QPID-2519@1186990 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/bindings/qpid/ruby/examples/map_receiver.rb')
-rw-r--r--cpp/bindings/qpid/ruby/examples/map_receiver.rb63
1 files changed, 63 insertions, 0 deletions
diff --git a/cpp/bindings/qpid/ruby/examples/map_receiver.rb b/cpp/bindings/qpid/ruby/examples/map_receiver.rb
new file mode 100644
index 0000000000..805943a0a4
--- /dev/null
+++ b/cpp/bindings/qpid/ruby/examples/map_receiver.rb
@@ -0,0 +1,63 @@
+#
+# 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.
+#
+
+$:.unshift File.join(File.dirname(__FILE__), "..", "lib")
+
+require 'qpid'
+
+broker = ARGV[0] || "amqp:tcp:127.0.0.1:5672"
+address = ARGV[1] || "message_queue; {create: always}"
+options = ARGV[2] || ""
+
+connection = Qpid::Messaging::Connection.new broker, options
+connection.open
+
+def display_value value
+ case value
+ when Array
+ result = ""
+ value.each_with_index {|element, index| result += "#{', ' if index > 0}#{element}"}
+ return "[#{result}]"
+ end
+
+ value.to_s
+end
+
+begin
+ session = connection.create_session
+ receiver = session.create_receiver address
+
+ message = receiver.fetch
+ content = message.content
+
+ print "content-type:#{message.content_type}"
+ print "{"
+ content.keys.sort.each_with_index do |key, index|
+ print "#{', ' if index > 0}#{key}:#{display_value content[key]}"
+ end
+ print "}\n"
+
+ session.acknowledge
+
+rescue Exception => error
+ puts "Exception: #{error.message}"
+end
+
+connection.close
+