Module: Fluent::PluginHelper::EventEmitter

Defined in:
lib/fluent/plugin_helper/event_emitter.rb

Instance Method Summary collapse

Instance Method Details

#after_shutdownObject



84
85
86
87
# File 'lib/fluent/plugin_helper/event_emitter.rb', line 84

def after_shutdown
  @router = nil
  super
end

#closeObject

unset router many times to reduce test cost



89
90
91
92
# File 'lib/fluent/plugin_helper/event_emitter.rb', line 89

def close # unset router many times to reduce test cost
  @router = nil
  super
end

#configure(conf) ⇒ Object



78
79
80
81
82
# File 'lib/fluent/plugin_helper/event_emitter.rb', line 78

def configure(conf)
  require 'fluent/engine'
  super
  @router = event_emitter_router(conf['@label'])
end

#event_emitter_router(label_name) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/fluent/plugin_helper/event_emitter.rb', line 51

def event_emitter_router(label_name)
  if label_name
    if label_name == "@ROOT"
      Engine.root_agent.event_router
    else
      Engine.root_agent.find_label(label_name).event_router
    end
  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

#event_emitter_used_actually?Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/fluent/plugin_helper/event_emitter.rb', line 47

def event_emitter_used_actually?
  @_event_emitter_used_actually
end

#has_router?Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/fluent/plugin_helper/event_emitter.rb', line 43

def has_router?
  true
end

#initializeObject



71
72
73
74
75
76
# File 'lib/fluent/plugin_helper/event_emitter.rb', line 71

def initialize
  super
  @_event_emitter_used_actually = false
  @_event_emitter_lazy_init = false
  @router = nil
end

#routerObject

stop : [-] shutdown : disable @router close : [-] terminate: [-]



27
28
29
30
31
32
33
34
35
36
# File 'lib/fluent/plugin_helper/event_emitter.rb', line 27

def router
  @_event_emitter_used_actually = true
  if @_event_emitter_lazy_init
    @router = @primary_instance.router
  end
  if @router.respond_to?(:caller_plugin_id=)
    @router.caller_plugin_id = self.plugin_id
  end
  @router
end

#router=(r) ⇒ Object



38
39
40
41
# File 'lib/fluent/plugin_helper/event_emitter.rb', line 38

def router=(r)
  # not recommended now...
  @router = r
end

#terminateObject



94
95
96
97
# File 'lib/fluent/plugin_helper/event_emitter.rb', line 94

def terminate
  @router = nil
  super
end