Method: Kafka::FFI::Message#detach_headers

Defined in:
lib/kafka/ffi/message.rb

#detach_headersnil, Message::Header

Get the Message’s headers and detach them from the Message (setting its headers to nil). Calling detach_headers means the applicaiton is now the owner of the returned Message::Header and must eventually call #destroy when the application is done with them.

Returns:

  • (nil)

    Message does not have any headers

  • (Message::Header)

    Set of headers

Raises:



140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# File 'lib/kafka/ffi/message.rb', line 140

def detach_headers
  ptr = ::FFI::MemoryPointer.new(:pointer)

  err = ::Kafka::FFI.rd_kafka_message_detach_headers(self, ptr)
  case err
  when :ok
    if ptr.null?
      nil
    else
      Message::Header.new(ptr)
    end
  when RD_KAFKA_RESP_ERR__NOENT
    # Messages does not have headers
    nil
  else
    raise ::Kafka::ResponseError, err
  end
ensure
  ptr.free
end