Sha256: 44959c16e89d05eecb46580b5ba012ea0a4548358d21e9c10f83b2b8fe21e33b

Contents?: true

Size: 829 Bytes

Versions: 14

Compression:

Stored size: 829 Bytes

Contents

# frozen_string_literal: true

module Kafka
  module Protocol
    class OffsetFetchRequest
      def initialize(group_id:, topics:)
        @group_id = group_id
        @topics = topics
      end

      def api_key
        OFFSET_FETCH_API
      end

      # setting topics to nil fetches all offsets for a consumer group
      # and that feature is only available in API version 2+
      def api_version
        @topics.nil? ? 2 : 1
      end

      def response_class
        OffsetFetchResponse
      end

      def encode(encoder)
        encoder.write_string(@group_id)

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

          encoder.write_array(partitions) do |partition|
            encoder.write_int32(partition)
          end
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 3 rubygems

Version Path
ruby-kafka-1.5.0 lib/kafka/protocol/offset_fetch_request.rb
ruby-kafka-aws-iam-1.4.5 lib/kafka/protocol/offset_fetch_request.rb
ruby-kafka-aws-iam-1.4.4 lib/kafka/protocol/offset_fetch_request.rb
ruby-kafka-aws-iam-1.4.3 lib/kafka/protocol/offset_fetch_request.rb
ruby-kafka-aws-iam-1.4.2 lib/kafka/protocol/offset_fetch_request.rb
ruby-kafka-aws-iam-1.4.1 lib/kafka/protocol/offset_fetch_request.rb
ruby-kafka-1.4.0 lib/kafka/protocol/offset_fetch_request.rb
ruby-kafka-temp-fork-0.0.2 lib/kafka/protocol/offset_fetch_request.rb
ruby-kafka-temp-fork-0.0.1 lib/kafka/protocol/offset_fetch_request.rb
ruby-kafka-1.3.0 lib/kafka/protocol/offset_fetch_request.rb
ruby-kafka-1.2.0 lib/kafka/protocol/offset_fetch_request.rb
ruby-kafka-1.1.0 lib/kafka/protocol/offset_fetch_request.rb
ruby-kafka-1.1.0.beta1 lib/kafka/protocol/offset_fetch_request.rb
ruby-kafka-1.0.0 lib/kafka/protocol/offset_fetch_request.rb