Sha256: eaecd35fba189f561720011fd01ba02ef3dc88d616e891995b59d9258bd5eded

Contents?: true

Size: 1.11 KB

Versions: 26

Compression:

Stored size: 1.11 KB

Contents

module Kafka
  module Protocol
    # A request to list the available offsets for a set of topics/partitions.
    #
    # ## API Specification
    #
    #     OffsetRequest => ReplicaId [TopicName [Partition Time MaxNumberOfOffsets]]
    #       ReplicaId => int32
    #       TopicName => string
    #       Partition => int32
    #       Time => int64
    #       MaxNumberOfOffsets => int32
    #
    class ListOffsetRequest

      # @param topics [Hash]
      def initialize(topics:)
        @replica_id = REPLICA_ID
        @topics = topics
      end

      def api_key
        LIST_OFFSET_API
      end

      def response_class
        Protocol::ListOffsetResponse
      end

      def encode(encoder)
        encoder.write_int32(@replica_id)

        encoder.write_array(@topics) do |topic, partitions|
          encoder.write_string(topic)

          encoder.write_array(partitions) do |partition|
            encoder.write_int32(partition.fetch(:partition))
            encoder.write_int64(partition.fetch(:time))
            encoder.write_int32(partition.fetch(:max_offsets))
          end
        end
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
ruby-kafka-0.6.0.beta4 lib/kafka/protocol/list_offset_request.rb
ruby-kafka-0.6.0.beta3 lib/kafka/protocol/list_offset_request.rb
ruby-kafka-0.6.0.beta2 lib/kafka/protocol/list_offset_request.rb
ruby-kafka-0.6.0.beta1 lib/kafka/protocol/list_offset_request.rb
ruby-kafka-0.5.5 lib/kafka/protocol/list_offset_request.rb
ruby-kafka-0.5.4 lib/kafka/protocol/list_offset_request.rb
ruby-kafka-0.5.4.beta1 lib/kafka/protocol/list_offset_request.rb
ruby-kafka-0.5.3 lib/kafka/protocol/list_offset_request.rb
ruby-kafka-0.5.2 lib/kafka/protocol/list_offset_request.rb
ruby-kafka-0.5.2.beta3 lib/kafka/protocol/list_offset_request.rb
ruby-kafka-0.5.2.beta2 lib/kafka/protocol/list_offset_request.rb
ruby-kafka-0.5.2.beta1 lib/kafka/protocol/list_offset_request.rb
ruby-kafka-0.5.1 lib/kafka/protocol/list_offset_request.rb
ruby-kafka-0.5.1.beta2 lib/kafka/protocol/list_offset_request.rb
ruby-kafka-0.5.1.beta1 lib/kafka/protocol/list_offset_request.rb
ruby-kafka-0.4.4 lib/kafka/protocol/list_offset_request.rb
ruby-kafka-0.5.0 lib/kafka/protocol/list_offset_request.rb
ruby-kafka-0.5.0.beta6 lib/kafka/protocol/list_offset_request.rb
ruby-kafka-0.5.0.beta5 lib/kafka/protocol/list_offset_request.rb
ruby-kafka-0.5.0.beta4 lib/kafka/protocol/list_offset_request.rb