Class: Fluent::WireProtocolCompatInput

Inherits:
Input
  • Object
show all
Defined in:
lib/fluent/plugin/in_wire_protocol_compat.rb

Defined Under Namespace

Modules: JSONParserMethods, SocketUtilBaseInputMethods

Instance Method Summary collapse

Instance Method Details

#configure(conf) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/fluent/plugin/in_wire_protocol_compat.rb', line 7

def configure(conf)
  super

  @inputs = [ ]
  config.each_element('input') do |input_config|
    type = input_config.delete('@type')
    next unless [ 'udp', 'tcp' ].include? type
    base_input = Plugin.new_input(type).class
    input_klass = Class.new(base_input) do
      include WireProtocolCompatInput::SocketUtilBaseInputMethods
    end
    input = input_klass.new
    input.configure(input_config)
    if input.format == 'json'
      parser_klass = Class.new(Fluent::TextParser::JSONParser) do
        include WireProtocolCompatInput::JSONParserMethods
      end
      input.instance_eval do
        @parser = parser_klass.new
        @parser.configure(@config)
      end
    end
    @inputs << input
  end
end

#shutdownObject



38
39
40
41
# File 'lib/fluent/plugin/in_wire_protocol_compat.rb', line 38

def shutdown
  super
  @inputs.each(&:shutdown)
end

#startObject



33
34
35
36
# File 'lib/fluent/plugin/in_wire_protocol_compat.rb', line 33

def start
  super
  @inputs.each(&:start)
end