class Kafka::Protocol::ListOffsetRequest

A request to list the available offsets for a set of topics/partitions.

## API Specification

OffsetRequest => ReplicaId [TopicName [Partition Time MaxNumberOfOffsets]]
  ReplicaId => int32
  IsolationLevel => int8
  TopicName => string
  Partition => int32
  Time => int64

Constants

ISOLATION_READ_COMMITTED
ISOLATION_READ_UNCOMMITTED

Public Class Methods

new(topics:) click to toggle source

@param topics [Hash]

# File lib/kafka/protocol/list_offset_request.rb, line 21
def initialize(topics:)
  @replica_id = REPLICA_ID
  @topics = topics
end

Public Instance Methods

api_key() click to toggle source
# File lib/kafka/protocol/list_offset_request.rb, line 30
def api_key
  LIST_OFFSET_API
end
api_version() click to toggle source
# File lib/kafka/protocol/list_offset_request.rb, line 26
def api_version
  2
end
encode(encoder) click to toggle source
# File lib/kafka/protocol/list_offset_request.rb, line 38
def encode(encoder)
  encoder.write_int32(@replica_id)
  encoder.write_int8(ISOLATION_READ_COMMITTED)

  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))
    end
  end
end
response_class() click to toggle source
# File lib/kafka/protocol/list_offset_request.rb, line 34
def response_class
  Protocol::ListOffsetResponse
end