class EventMachine::Synchrony::AMQP::Exchange
def delete(opts = {})
def delete(opts = {}) EM::Synchrony::AMQP.sync { |f| adelete(opts, &EM::Synchrony::AMQP.sync_cb(f)) } end
def initialize(channel, type, name, opts = {}, &block)
def initialize(channel, type, name, opts = {}, &block) f = Fiber.current # AMQP Exchange constructor handles certain special exchanges differently. # The callback passed in isn't called when the response comes back # but is called immediately on the original calling fiber. That means that # when the sync_cb callback yields the fiber when called, it will hang and never # be resumed. So handle these exchanges without yielding if name == "amq.#{type}" or name.empty? or opts[:no_declare] exchange = nil super(channel, type, name, opts) { |ex| exchange = ex } else super(channel, type, name, opts, &EM::Synchrony::AMQP.sync_cb(f)) exchange, declare_ok = Fiber.yield raise Error.new(declare_ok.to_s) unless declare_ok.is_a?(::AMQ::Protocol::Exchange::DeclareOk) end exchange end
def publish payload, options = {}
def publish payload, options = {} apublish(payload, options) end