class Fluent::Plugin::UnixInput::Handler
Public Class Methods
new(io, log, on_message)
click to toggle source
Calls superclass method
# File lib/fluent/plugin/in_unix.rb, line 147 def initialize(io, log, on_message) super(io) @on_message = on_message @log = log end
Public Instance Methods
on_close()
click to toggle source
# File lib/fluent/plugin/in_unix.rb, line 190 def on_close @log.trace { "closed fluent socket object_id=#{self.object_id}" } end
on_connect()
click to toggle source
# File lib/fluent/plugin/in_unix.rb, line 154 def on_connect end
on_read(data)
click to toggle source
# File lib/fluent/plugin/in_unix.rb, line 157 def on_read(data) first = data[0] if first == '{'.freeze || first == '['.freeze m = method(:on_read_json) @parser = Yajl::Parser.new @parser.on_parse_complete = @on_message else m = method(:on_read_msgpack) @parser = Fluent::MessagePackFactory.msgpack_unpacker end singleton_class.module_eval do define_method(:on_read, m) end m.call(data) end
on_read_json(data)
click to toggle source
# File lib/fluent/plugin/in_unix.rb, line 174 def on_read_json(data) @parser << data rescue => e @log.error "unexpected error in json payload", error: e.to_s @log.error_backtrace close end
on_read_msgpack(data)
click to toggle source
# File lib/fluent/plugin/in_unix.rb, line 182 def on_read_msgpack(data) @parser.feed_each(data, &@on_message) rescue => e @log.error "unexpected error in msgpack payload", error: e.to_s @log.error_backtrace close end