Sha256: e486776d983501a192f7e24e2c594b6f955f6d4bc051f7f4592e7b03c95debba

Contents?: true

Size: 1.1 KB

Versions: 10

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

module Kafka
  module Protocol
    class JoinGroupResponse
      Metadata = Struct.new(:version, :topics, :user_data)

      attr_reader :error_code

      attr_reader :generation_id, :group_protocol

      attr_reader :leader_id, :member_id, :members

      def initialize(error_code:, generation_id:, group_protocol:, leader_id:, member_id:, members:)
        @error_code = error_code
        @generation_id = generation_id
        @group_protocol = group_protocol
        @leader_id = leader_id
        @member_id = member_id
        @members = members
      end

      def self.decode(decoder)
        new(
          error_code: decoder.int16,
          generation_id: decoder.int32,
          group_protocol: decoder.string,
          leader_id: decoder.string,
          member_id: decoder.string,
          members: Hash[
            decoder.array do
              member_id = decoder.string
              d = Decoder.from_string(decoder.bytes)
              [member_id, Metadata.new(d.int16, d.array { d.string }, d.bytes)]
            end
          ],
        )
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 3 rubygems

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