YUKI Hiroshi
null+****@clear*****
Thu Jan 15 16:23:31 JST 2015
YUKI Hiroshi 2015-01-15 16:23:31 +0900 (Thu, 15 Jan 2015) New Revision: 16702db325bfed21ef5cfd206abfe7f834ece203 https://github.com/droonga/droonga-engine/commit/16702db325bfed21ef5cfd206abfe7f834ece203 Message: Reuse the instance of NodeMetadata globally Modified files: lib/droonga/cluster.rb lib/droonga/engine.rb lib/droonga/engine_node.rb lib/droonga/engine_state.rb Modified: lib/droonga/cluster.rb (+6 -2) =================================================================== --- lib/droonga/cluster.rb 2015-01-15 16:06:55 +0900 (c3b2a40) +++ lib/droonga/cluster.rb 2015-01-15 16:23:31 +0900 (80490b9) @@ -26,12 +26,13 @@ module Droonga attr_accessor :catalog attr_writer :on_change - def initialize(loop) + def initialize(loop, options={}) @loop = loop @catalog = nil @state = nil @on_change = nil + @node_metadata = options[:metadata] reload end @@ -157,7 +158,10 @@ module Droonga def create_engine_nodes all_node_names.collect do |name| node_state = @state[name] || {} - EngineNode.new(name, node_state, node_metadata.role, @loop) + EngineNode.new(name, + node_state, + @loop, + :metadata => node_metadata) end end Modified: lib/droonga/engine.rb (+5 -2) =================================================================== --- lib/droonga/engine.rb 2015-01-15 16:06:55 +0900 (67a838f) +++ lib/droonga/engine.rb 2015-01-15 16:23:31 +0900 (1d5298e) @@ -32,8 +32,11 @@ module Droonga attr_writer :on_ready def initialize(loop, name, internal_name) - @state = EngineState.new(loop, name, internal_name) - @cluster = Cluster.new(loop) + @state = EngineState.new(loop, name, + internal_name, + :metadata => node_metadata) + @cluster = Cluster.new(loop, + :metadata => node_metadata) @catalog = load_catalog @state.catalog =****@clust***** = @catalog @dispatcher = create_dispatcher Modified: lib/droonga/engine_node.rb (+12 -4) =================================================================== --- lib/droonga/engine_node.rb 2015-01-15 16:06:55 +0900 (ac2194f) +++ lib/droonga/engine_node.rb 2015-01-15 16:23:31 +0900 (9157b28) @@ -23,10 +23,10 @@ module Droonga attr_reader :name - def initialize(name, state, sender_role, loop) + def initialize(name, state, loop, options={}) @name = name @state = state - @sender_role = sender_role + @sender_node_metadata ||= options[:metadata] parsed_name = parse_node_name(@name) @sender = FluentMessageSender.new(loop, @@ -54,11 +54,11 @@ module Droonga def forwardable? return false unless live? - role == @sender_role + role == sender_role end def writable? - case @sender_role + case sender_role when NodeMetadata::Role::SERVICE_PROVIDER true when NodeMetadata::Role::ABSORB_SOURCE @@ -133,6 +133,14 @@ module Droonga role == NodeMetadata::Role::ABSORB_DESTINATION end + def sender_role + sender_node_metadata.role + end + + def sender_node_metadata + @sender_node_metadata ||= NodeMetadata.new + end + def output(message, destination) command = destination["type"] receiver = destination["to"] Modified: lib/droonga/engine_state.rb (+2 -1) =================================================================== --- lib/droonga/engine_state.rb 2015-01-15 16:06:55 +0900 (bb21f23) +++ lib/droonga/engine_state.rb 2015-01-15 16:23:31 +0900 (bf0eb31) @@ -36,7 +36,7 @@ module Droonga attr_accessor :catalog attr_accessor :on_finish - def initialize(loop, name, internal_name) + def initialize(loop, name, internal_name, options={}) @loop = loop @name = name @internal_name = internal_name @@ -47,6 +47,7 @@ module Droonga @on_ready = nil @on_finish = nil @catalog = nil + @node_metadata = options[:metadata] end def start -------------- next part -------------- HTML����������������������������...Download