Sha256: dfac2f80c0f89a1b45e907a36ab74e6251fea673aefc1201e02fdfff320d67a6

Contents?: true

Size: 1.02 KB

Versions: 2

Compression:

Stored size: 1.02 KB

Contents

module Kafka
  module Protocol
    class ProduceResponse
      class TopicInfo
        attr_reader :topic, :partitions

        def initialize(topic:, partitions:)
          @topic = topic
          @partitions = partitions
        end
      end

      class PartitionInfo
        attr_reader :partition, :error_code, :offset

        def initialize(partition:, error_code:, offset:)
          @partition = partition
          @error_code = error_code
          @offset = offset
        end
      end

      attr_reader :topics

      def initialize(topics: [])
        @topics = topics
      end

      def self.decode(decoder)
        topics = decoder.array do
          topic = decoder.string

          partitions = decoder.array do
            PartitionInfo.new(
              partition: decoder.int32,
              error_code: decoder.int16,
              offset: decoder.int64,
            )
          end

          TopicInfo.new(topic: topic, partitions: partitions)
        end

        new(topics: topics)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ruby-kafka-0.1.0.pre.beta1 lib/kafka/protocol/produce_response.rb
ruby-kafka-0.1.0.pre.alpha2 lib/kafka/protocol/produce_response.rb