Class: Rdkafka::Callbacks::DescribeAclHandler

Inherits:
BaseHandler
  • Object
show all
Defined in:
lib/rdkafka/callbacks/describe_acl_handler.rb

Overview

Handles RD_KAFKA_EVENT_DESCRIBEACLS_RESULT events

Class Method Summary collapse

Class Method Details

.call(event_ptr) ⇒ void

This method returns an undefined value.

Resolves the describe-ACL handle from its result event

Parameters:

  • event_ptr (FFI::Pointer)

    pointer to the event



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/rdkafka/callbacks/describe_acl_handler.rb', line 12

def call(event_ptr)
  describe_acl = DescribeAclResult.new(event_ptr)
  describe_acl_handle_ptr = Rdkafka::Bindings.rd_kafka_event_opaque(event_ptr)

  if describe_acl_handle = Rdkafka::Admin::DescribeAclHandle.remove(describe_acl_handle_ptr.address)
    describe_acl_handle[:response] = describe_acl.result_error
    describe_acl_handle.broker_message = read_event_string(describe_acl.error_string)

    describe_acl_handle.result = if describe_acl.result_error == Rdkafka::Bindings::RD_KAFKA_RESP_ERR_NO_ERROR
      Rdkafka::Admin::DescribeAclReport.new(
        acls: describe_acl.matching_acls,
        acls_count: describe_acl.matching_acls_count
      )
    else
      Rdkafka::Admin::DescribeAclReport.new(acls: FFI::Pointer::NULL, acls_count: 0)
    end

    describe_acl_handle.unlock
  end
end