class Kafka::Protocol::JoinGroupRequest

Constants

PROTOCOL_TYPE

Public Class Methods

new(group_id:, session_timeout:, member_id:, topics: []) click to toggle source
# File lib/kafka/protocol/join_group_request.rb, line 10
def initialize(group_id:, session_timeout:, member_id:, topics: [])
  @group_id = group_id
  @session_timeout = session_timeout * 1000 # Kafka wants ms.
  @member_id = member_id || ""
  @protocol_type = PROTOCOL_TYPE
  @group_protocols = {
    "standard" => ConsumerGroupProtocol.new(topics: ["test-messages"]),
  }
end

Public Instance Methods

api_key() click to toggle source
# File lib/kafka/protocol/join_group_request.rb, line 20
def api_key
  JOIN_GROUP_API
end
encode(encoder) click to toggle source
# File lib/kafka/protocol/join_group_request.rb, line 28
def encode(encoder)
  encoder.write_string(@group_id)
  encoder.write_int32(@session_timeout)
  encoder.write_string(@member_id)
  encoder.write_string(@protocol_type)

  encoder.write_array(@group_protocols) do |name, metadata|
    encoder.write_string(name)
    encoder.write_bytes(Encoder.encode_with(metadata))
  end
end
response_class() click to toggle source
# File lib/kafka/protocol/join_group_request.rb, line 24
def response_class
  JoinGroupResponse
end