[Groonga-commit] droonga/droonga-engine at 16702db [master] Reuse the instance of NodeMetadata globally

Back to archive index

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 



More information about the Groonga-commit mailing list
Back to archive index