# File lib/amq/client/async/adapter.rb, line 23
        def self.included(host)
          host.extend ClassMethods
          host.extend ProtocolMethodHandlers

          host.class_eval do

            #
            # API
            #

            attr_accessor :logger
            attr_accessor :settings

            # @return [Array<#call>]
            attr_reader :callbacks


            # The locale defines the language in which the server will send reply texts.
            #
            # @see http://bit.ly/amqp091reference AMQP 0.9.1 protocol reference (Section 1.4.2.2)
            attr_accessor :locale

            # Client capabilities
            #
            # @see http://bit.ly/amqp091reference AMQP 0.9.1 protocol reference (Section 1.4.2.2.1)
            attr_accessor :client_properties

            # Server properties
            #
            # @see http://bit.ly/amqp091reference AMQP 0.9.1 protocol reference (Section 1.4.2.1.3)
            attr_reader :server_properties

            # Server capabilities
            #
            # @see http://bit.ly/amqp091reference AMQP 0.9.1 protocol reference (Section 1.4.2.1.3)
            attr_reader :server_capabilities

            # Locales server supports
            #
            # @see http://bit.ly/amqp091reference AMQP 0.9.1 protocol reference (Section 1.4.2.1.3)
            attr_reader :server_locales

            # Authentication mechanism used.
            #
            # @see http://bit.ly/amqp091reference AMQP 0.9.1 protocol reference (Section 1.4.2.2)
            attr_reader :mechanism

            # Authentication mechanisms broker supports.
            #
            # @see http://bit.ly/amqp091reference AMQP 0.9.1 protocol reference (Section 1.4.2.2)
            attr_reader :server_authentication_mechanisms

            # Channels within this connection.
            #
            # @see http://bit.ly/amqp091spec AMQP 0.9.1 specification (Section 2.2.5)
            attr_reader :channels

            # Maximum channel number that the server permits this connection to use.
            # Usable channel numbers are in the range 1..channel_max.
            # Zero indicates no specified limit.
            #
            # @see http://bit.ly/amqp091reference AMQP 0.9.1 protocol reference (Sections 1.4.2.5.1 and 1.4.2.6.1)
            attr_accessor :channel_max

            # Maximum frame size that the server permits this connection to use.
            #
            # @see http://bit.ly/amqp091reference AMQP 0.9.1 protocol reference (Sections 1.4.2.5.2 and 1.4.2.6.2)
            attr_accessor :frame_max


            attr_reader :known_hosts



            # @api plugin
            # @see #disconnect
            # @note Adapters must implement this method but it is NOT supposed to be used directly.
            #       AMQ protocol defines two-step process of closing connection (send Connection.Close
            #       to the peer and wait for Connection.Close-Ok), implemented by {Adapter#disconnect}
            def close_connection
              raise NotImplementedError
            end unless defined?(:close_connection) # since it is a module, this method may already be defined
          end
        end