Menu Search

map_receiver.rb

$:.unshift File.join(File.dirname(__FILE__), "..", "lib")

require 'qpid_messaging'

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 :url => broker, :options => 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_object

  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

Download this file