Kouhei Sutou
null+****@clear*****
Thu Dec 19 19:07:36 JST 2013
Kouhei Sutou 2013-12-19 19:07:36 +0900 (Thu, 19 Dec 2013) New Revision: 2819a79ce70ba72c1a5bf07cd651b826c67afb98 https://github.com/droonga/fluent-plugin-droonga/commit/2819a79ce70ba72c1a5bf07cd651b826c67afb98 Message: Split adapter to input adapter and output adapter Copied files: lib/droonga/input_adapter.rb (from lib/droonga/adapter.rb) lib/droonga/input_adapter_plugin.rb (from lib/droonga/adapter_plugin.rb) Modified files: lib/droonga/dispatcher.rb lib/droonga/plugin/adapter/groonga.rb Renamed files: lib/droonga/output_adapter.rb (from lib/droonga/adapter.rb) lib/droonga/output_adapter_plugin.rb (from lib/droonga/adapter_plugin.rb) Modified: lib/droonga/dispatcher.rb (+12 -8) =================================================================== --- lib/droonga/dispatcher.rb 2013-12-19 18:33:13 +0900 (aa6afd2) +++ lib/droonga/dispatcher.rb 2013-12-19 19:07:36 +0900 (24e42f9) @@ -16,7 +16,8 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA require 'tsort' -require "droonga/adapter" +require "droonga/input_adapter" +require "droonga/output_adapter" require "droonga/distributor" require "droonga/catalog" require "droonga/collector" @@ -34,8 +35,10 @@ module Droonga @collectors = {} @current_id = 0 @local = Regexp.new("^#{@name}") - @adapter = Adapter.new(self, - :adapters => Droonga.catalog.option("plugins")) + @input_adapter = + InputAdapter.new(self, :plugins => Droonga.catalog.option("plugins")) + @output_adapter = + OutputAdapter.new(self, :plugins => Droonga.catalog.option("plugins")) @loop = EventLoop.new @forwarder = Forwarder.new(@loop) @distributor = Distributor.new(self, @options) @@ -52,7 +55,8 @@ module Droonga def shutdown @forwarder.shutdown @distributor.shutdown - @adapter.shutdown + @input_adapter.shutdown + @output_adapter.shutdown @farm.shutdown @loop.stop @loop_thread.join @@ -102,8 +106,8 @@ module Droonga else if command == "dispatcher" handle(body, arguments) - elsif****@adapt*****?(command) - @adapter.process(command, body, *arguments) + elsif @output_adapter.processable?(command) + @output_adapter.process(command, body, *arguments) end end add_route(route) if route @@ -179,8 +183,8 @@ module Droonga loop do input_message = InputMessage.new(adapted_envelope) command = input_message.command - break unles****@adapt*****?(command) - @adapter.process(command, input_message) + break unless @input_adapter.processable?(command) + @input_adapter.process(command, input_message) new_command = input_message.command adapted_envelope = input_message.adapted_envelope break if command == new_command Copied: lib/droonga/input_adapter.rb (+5 -5) 83% =================================================================== --- lib/droonga/adapter.rb 2013-12-19 18:33:13 +0900 (a48505e) +++ lib/droonga/input_adapter.rb 2013-12-19 19:07:36 +0900 (0558b9f) @@ -16,24 +16,24 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA require "droonga/pluggable" -require "droonga/adapter_plugin" +require "droonga/input_adapter_plugin" module Droonga - class Adapter + class InputAdapter include Pluggable def initialize(dispatcher, options={}) @dispatcher = dispatcher - load_plugins(options[:adapters] || []) + load_plugins(options[:plugins] || []) end private def instantiate_plugin(name) - AdapterPlugin.repository.instantiate(name, @dispatcher) + InputAdapterPlugin.repository.instantiate(name, @dispatcher) end def log_tag - "adapter" + "input-adapter" end end end Copied: lib/droonga/input_adapter_plugin.rb (+1 -1) 97% =================================================================== --- lib/droonga/adapter_plugin.rb 2013-12-19 18:33:13 +0900 (4b5e6c0) +++ lib/droonga/input_adapter_plugin.rb 2013-12-19 19:07:36 +0900 (d221775) @@ -18,7 +18,7 @@ require "droonga/plugin" module Droonga - class AdapterPlugin < Plugin + class InputAdapterPlugin < Plugin extend PluginRegisterable def initialize(dispatcher) Renamed: lib/droonga/output_adapter.rb (+5 -5) 83% =================================================================== --- lib/droonga/adapter.rb 2013-12-19 18:33:13 +0900 (a48505e) +++ lib/droonga/output_adapter.rb 2013-12-19 19:07:36 +0900 (c3e1ad4) @@ -16,24 +16,24 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA require "droonga/pluggable" -require "droonga/adapter_plugin" +require "droonga/output_adapter_plugin" module Droonga - class Adapter + class OutputAdapter include Pluggable def initialize(dispatcher, options={}) @dispatcher = dispatcher - load_plugins(options[:adapters] || []) + load_plugins(options[:plugins] || []) end private def instantiate_plugin(name) - AdapterPlugin.repository.instantiate(name, @dispatcher) + OutputAdapterPlugin.repository.instantiate(name, @dispatcher) end def log_tag - "adapter" + "output-adapter" end end end Renamed: lib/droonga/output_adapter_plugin.rb (+1 -5) 92% =================================================================== --- lib/droonga/adapter_plugin.rb 2013-12-19 18:33:13 +0900 (4b5e6c0) +++ lib/droonga/output_adapter_plugin.rb 2013-12-19 19:07:36 +0900 (da0db5c) @@ -18,7 +18,7 @@ require "droonga/plugin" module Droonga - class AdapterPlugin < Plugin + class OutputAdapterPlugin < Plugin extend PluginRegisterable def initialize(dispatcher) @@ -26,10 +26,6 @@ module Droonga @dispatcher = dispatcher end - def add_route(route) - @dispatcher.add_route(route) - end - def post(body, destination=nil) @dispatcher.post(body, destination) end Modified: lib/droonga/plugin/adapter/groonga.rb (+9 -4) =================================================================== --- lib/droonga/plugin/adapter/groonga.rb 2013-12-19 18:33:13 +0900 (8ac7708) +++ lib/droonga/plugin/adapter/groonga.rb 2013-12-19 19:07:36 +0900 (70bde87) @@ -13,25 +13,30 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -require "droonga/adapter_plugin" +require "droonga/input_adapter_plugin" +require "droonga/output_adapter_plugin" module Droonga - class GroongaAdapter < Droonga::AdapterPlugin + class GroongaInputAdapter < Droonga::InputAdapterPlugin repository.register("select", self) command :select def select(input_message) - command = Select.new + command = GroongaAdapter::Select.new select_request = input_message.body search_request = command.convert_request(select_request) input_message.add_route("select_response") input_message.command = "search" input_message.body = search_request end + end + + class GroongaOutputAdapter < Droonga::OutputAdapterPlugin + repository.register("select", self) command :select_response def select_response(search_response) - command = Select.new + command = GroongaAdapter::Select.new emit(command.convert_response(search_response)) end end -------------- next part -------------- HTML����������������������������... 다운로드