Sha256: 9f0e922a53a6888a6377c4fef32ce5d4d6c54baad1449ba6acda02cf7972abcf

Contents?: true

Size: 1.18 KB

Versions: 18

Compression:

Stored size: 1.18 KB

Contents

# frozen_string_literal: true

module Kafka

  # An ordered sequence of messages fetched from a Kafka partition.
  class FetchedBatch
    # @return [String]
    attr_reader :topic

    # @return [Integer]
    attr_reader :partition

    # @return [Integer]
    attr_reader :last_offset

    # @return [Integer]
    attr_reader :leader_epoch

    # @return [Integer] the offset of the most recent message in the partition.
    attr_reader :highwater_mark_offset

    # @return [Array<Kafka::FetchedMessage>]
    attr_accessor :messages

    def initialize(topic:, partition:, highwater_mark_offset:, messages:, last_offset: nil, leader_epoch: nil)
      @topic = topic
      @partition = partition
      @highwater_mark_offset = highwater_mark_offset
      @messages = messages
      @last_offset = last_offset
      @leader_epoch = leader_epoch
    end

    def empty?
      @messages.empty?
    end

    def unknown_last_offset?
      @last_offset.nil?
    end

    def first_offset
      if empty?
        nil
      else
        messages.first.offset
      end
    end

    def offset_lag
      if empty?
        0
      else
        (highwater_mark_offset - 1) - last_offset
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 3 rubygems

Version Path
ruby-kafka-1.5.0 lib/kafka/fetched_batch.rb
ruby-kafka-aws-iam-1.4.5 lib/kafka/fetched_batch.rb
ruby-kafka-aws-iam-1.4.4 lib/kafka/fetched_batch.rb
ruby-kafka-aws-iam-1.4.3 lib/kafka/fetched_batch.rb
ruby-kafka-aws-iam-1.4.2 lib/kafka/fetched_batch.rb
ruby-kafka-aws-iam-1.4.1 lib/kafka/fetched_batch.rb
ruby-kafka-1.4.0 lib/kafka/fetched_batch.rb
ruby-kafka-temp-fork-0.0.2 lib/kafka/fetched_batch.rb
ruby-kafka-temp-fork-0.0.1 lib/kafka/fetched_batch.rb
ruby-kafka-1.3.0 lib/kafka/fetched_batch.rb
ruby-kafka-1.2.0 lib/kafka/fetched_batch.rb
ruby-kafka-1.1.0 lib/kafka/fetched_batch.rb
ruby-kafka-1.1.0.beta1 lib/kafka/fetched_batch.rb
ruby-kafka-1.0.0 lib/kafka/fetched_batch.rb
ruby-kafka-0.7.10 lib/kafka/fetched_batch.rb
ruby-kafka-0.7.9 lib/kafka/fetched_batch.rb
ruby-kafka-0.7.8 lib/kafka/fetched_batch.rb
ruby-kafka-0.7.7 lib/kafka/fetched_batch.rb