Sha256: 89e36783513a2e6ea27d1ffa1e353a3ef1bd2d8d68e9e92e43cede5055eab83c

Contents?: true

Size: 852 Bytes

Versions: 8

Compression:

Stored size: 852 Bytes

Contents

module Kafka
  module Protocol

    class CreateTopicsRequest
      def initialize(topics:, timeout:)
        @topics, @timeout = topics, timeout
      end

      def api_key
        CREATE_TOPICS_API
      end

      def api_version
        0
      end

      def response_class
        Protocol::CreateTopicsResponse
      end

      def encode(encoder)
        encoder.write_array(@topics) do |topic, config|
          encoder.write_string(topic)
          encoder.write_int32(config.fetch(:num_partitions))
          encoder.write_int16(config.fetch(:replication_factor))

          # Replica assignments. We don't care.
          encoder.write_array([])

          # Config entries. We don't care.
          encoder.write_array([])
        end

        # Timeout is in ms.
        encoder.write_int32(@timeout * 1000)
      end
    end

  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
ruby-kafka-0.5.3 lib/kafka/protocol/create_topics_request.rb
ruby-kafka-0.5.2 lib/kafka/protocol/create_topics_request.rb
ruby-kafka-0.5.2.beta3 lib/kafka/protocol/create_topics_request.rb
ruby-kafka-0.5.2.beta2 lib/kafka/protocol/create_topics_request.rb
ruby-kafka-0.5.2.beta1 lib/kafka/protocol/create_topics_request.rb
ruby-kafka-0.5.1 lib/kafka/protocol/create_topics_request.rb
ruby-kafka-0.5.1.beta2 lib/kafka/protocol/create_topics_request.rb
ruby-kafka-0.5.1.beta1 lib/kafka/protocol/create_topics_request.rb