def self.encode(channel, exchange, type, passive, durable, auto_delete, internal, nowait, arguments)
ticket = 0
buffer = ''
buffer << @packed_indexes
buffer << [ticket].pack(PACK_UINT16)
buffer << exchange.bytesize.chr
buffer << exchange
buffer << type.bytesize.chr
buffer << type
bit_buffer = 0
bit_buffer = bit_buffer | (1 << 0) if passive
bit_buffer = bit_buffer | (1 << 1) if durable
bit_buffer = bit_buffer | (1 << 2) if auto_delete
bit_buffer = bit_buffer | (1 << 3) if internal
bit_buffer = bit_buffer | (1 << 4) if nowait
buffer << [bit_buffer].pack(PACK_CHAR)
buffer << AMQ::Protocol::Table.encode(arguments)
MethodFrame.new(buffer, channel)
end