class Kafka::Protocol::OffsetFetchRequest

Public Class Methods

new(group_id:, topics:) click to toggle source
# File lib/kafka/protocol/offset_fetch_request.rb, line 6
def initialize(group_id:, topics:)
  @group_id = group_id
  @topics = topics
end

Public Instance Methods

api_key() click to toggle source
# File lib/kafka/protocol/offset_fetch_request.rb, line 11
def api_key
  OFFSET_FETCH_API
end
api_version() click to toggle source

setting topics to nil fetches all offsets for a consumer group and that feature is only available in API version 2+

# File lib/kafka/protocol/offset_fetch_request.rb, line 17
def api_version
  @topics.nil? ? 2 : 1
end
encode(encoder) click to toggle source
# File lib/kafka/protocol/offset_fetch_request.rb, line 25
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
response_class() click to toggle source
# File lib/kafka/protocol/offset_fetch_request.rb, line 21
def response_class
  OffsetFetchResponse
end