Sha256: 16d842c9373cdc92398da8b25ec836f9557680fc151ebd5842acff60bb0fbab5

Contents?: true

Size: 1.29 KB

Versions: 16

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

module Rdkafka
  class Producer
    # Handle to wait for a delivery report which is returned when
    # producing a message.
    class DeliveryHandle < Rdkafka::AbstractHandle
      layout :pending, :bool,
             :response, :int,
             :partition, :int,
             :offset, :int64,
             :topic_name, :pointer

      # @return [Object, nil] label set during message production or nil by default
      attr_accessor :label

      # @return [String] topic where we are trying to send the message
      # We use this instead of reading from `topic_name` pointer to save on memory allocations
      attr_accessor :topic

      # @return [String] the name of the operation (e.g. "delivery")
      def operation_name
        "delivery"
      end

      # @return [DeliveryReport] a report on the delivery of the message
      def create_result
        if self[:response] == 0
          DeliveryReport.new(
            self[:partition],
            self[:offset],
            topic,
            nil,
            label
          )
        else
          DeliveryReport.new(
            self[:partition],
            self[:offset],
            topic,
            Rdkafka::RdkafkaError.build(self[:response]),
            label
          )
        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
karafka-rdkafka-0.19.0 lib/rdkafka/producer/delivery_handle.rb
karafka-rdkafka-0.18.1 lib/rdkafka/producer/delivery_handle.rb
karafka-rdkafka-0.18.0 lib/rdkafka/producer/delivery_handle.rb
karafka-rdkafka-0.18.0.rc1 lib/rdkafka/producer/delivery_handle.rb
karafka-rdkafka-0.17.6 lib/rdkafka/producer/delivery_handle.rb
karafka-rdkafka-0.17.5 lib/rdkafka/producer/delivery_handle.rb
karafka-rdkafka-0.17.4 lib/rdkafka/producer/delivery_handle.rb
karafka-rdkafka-0.17.3 lib/rdkafka/producer/delivery_handle.rb
karafka-rdkafka-0.17.2 lib/rdkafka/producer/delivery_handle.rb
karafka-rdkafka-0.17.2.rc1 lib/rdkafka/producer/delivery_handle.rb
karafka-rdkafka-0.17.1 lib/rdkafka/producer/delivery_handle.rb
karafka-rdkafka-0.17.1.beta1 lib/rdkafka/producer/delivery_handle.rb
karafka-rdkafka-0.17.0 lib/rdkafka/producer/delivery_handle.rb
karafka-rdkafka-0.16.1 lib/rdkafka/producer/delivery_handle.rb
karafka-rdkafka-0.16.0 lib/rdkafka/producer/delivery_handle.rb
karafka-rdkafka-0.16.0.rc1 lib/rdkafka/producer/delivery_handle.rb