Sha256: 080fd9874ac3301494f0cf34d5bb6dce13dd13a5646605a6f8baf5ef05197baf

Contents?: true

Size: 1.26 KB

Versions: 2

Compression:

Stored size: 1.26 KB

Contents

module Kafka
  module Protocol
    class AlterConfigsResponse
      class ResourceDescription
        attr_reader :name, :type, :error_code, :error_message

        def initialize(name:, type:, error_code:, error_message:)
          @name = name
          @type = type
          @error_code = error_code
          @error_message = error_message
        end
      end

      attr_reader :resources

      def initialize(throttle_time_ms:, resources:)
        @throttle_time_ms = throttle_time_ms
        @resources = resources
      end

      def self.decode(decoder)
        throttle_time_ms = decoder.int32
        resources = decoder.array do
          error_code = decoder.int16
          error_message = decoder.string

          resource_type = decoder.int8
          if Kafka::Protocol::RESOURCE_TYPES[resource_type].nil?
            raise Kafka::ProtocolError, "Resource type not supported: #{resource_type}"
          end
          resource_name = decoder.string

          ResourceDescription.new(
            type: RESOURCE_TYPES[resource_type],
            name: resource_name,
            error_code: error_code,
            error_message: error_message
          )
        end

        new(throttle_time_ms: throttle_time_ms, resources: resources)
      end
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ruby-kafka-0.6.0.beta4 lib/kafka/protocol/alter_configs_response.rb
ruby-kafka-0.6.0.beta3 lib/kafka/protocol/alter_configs_response.rb