    # File lib/amqp/deprecated/rpc.rb, line 131
          def initialize(channel, queue_name, impl)
            @channel  = channel
            @exchange = AMQP::Exchange.default(@channel)
            @queue    = @channel.queue(queue_name)
            @impl     = impl

            @handlers     = Hash.new
            @id           = "client_identifier_#{rand(1_000_000)}"

            @queue.subscribe(:ack => true) do |header, payload|
              selector, *args = Marshal.load(payload)
              result = @impl.__send__(selector, *args)

              respond_to(header, result) if header.to_hash[:reply_to]
              header.ack
            end
          end