Class: KafkaSyrup::Protocol::ProduceRequest

Inherits:
Request
  • Object
show all
Defined in:
lib/kafka_syrup/protocol/produce_request.rb

Defined Under Namespace

Classes: Partition, Topic

Instance Attribute Summary collapse

Attributes inherited from Request

#client_id, #correlation_id

Instance Method Summary collapse

Methods inherited from Request

#api_key, #api_version, #initialize

Methods inherited from Base

#==, #config, #decode, #initialize

Methods included from Utils

#load_args, #log

Constructor Details

This class inherits a constructor from KafkaSyrup::Protocol::Request

Instance Attribute Details

#required_acksObject

Returns the value of attribute required_acks.



6
7
8
# File 'lib/kafka_syrup/protocol/produce_request.rb', line 6

def required_acks
  @required_acks
end

#timeoutObject

Returns the value of attribute timeout.



6
7
8
# File 'lib/kafka_syrup/protocol/produce_request.rb', line 6

def timeout
  @timeout
end

#topicsObject

Returns the value of attribute topics.



6
7
8
# File 'lib/kafka_syrup/protocol/produce_request.rb', line 6

def topics
  @topics
end

Instance Method Details

#add_topic(name) ⇒ Object



16
17
18
19
20
# File 'lib/kafka_syrup/protocol/produce_request.rb', line 16

def add_topic(name)
  topic = Topic.new(name, [])
  topics << topic
  topic
end

#defaultsObject



8
9
10
11
12
13
14
# File 'lib/kafka_syrup/protocol/produce_request.rb', line 8

def defaults
  {
    required_acks: config.produce_required_acks,
    timeout: config.produce_timeout,
    topics: []
  }
end

#encodeObject



22
23
24
25
26
27
28
29
30
# File 'lib/kafka_syrup/protocol/produce_request.rb', line 22

def encode
  super do
    [
      E.write_int16(required_acks),
      E.write_int32(timeout),
      E.write_array(topics)
    ].join
  end
end