module Fluent::PluginHelper::EventEmitter
def after_shutdown
def after_shutdown @router = nil super end
def close # unset router many times to reduce test cost
def close # unset router many times to reduce test cost @router = nil super end
def configure(conf)
def configure(conf) require 'fluent/engine' super @router = event_emitter_router(conf['@label']) end
def event_emitter_router(label_name)
def event_emitter_router(label_name) if label_name Engine.root_agent.find_label(label_name).event_router elsif self.respond_to?(:as_secondary) && self.as_secondary if @primary_instance.has_router? @_event_emitter_lazy_init = true nil # primary plugin's event router is not initialized yet, here. else @primary_instance.context_router end else # `Engine.root_agent.event_router` is for testing self.context_router || Engine.root_agent.event_router end end
def event_emitter_used_actually?
def event_emitter_used_actually? @_event_emitter_used_actually end
def has_router?
def has_router? true end
def initialize
def initialize super @_event_emitter_used_actually = false @_event_emitter_lazy_init = false @router = nil end
def router
def router @_event_emitter_used_actually = true if @_event_emitter_lazy_init @router = @primary_instance.router end @router end
def router=(r)
def router=(r) # not recommended now... @router = r end
def terminate
def terminate @router = nil super end