Kouhei Sutou
null+****@clear*****
Tue Jun 3 12:24:54 JST 2014
Kouhei Sutou 2014-06-03 12:24:54 +0900 (Tue, 03 Jun 2014) New Revision: b86350589aea1d718cfd9fc19c058233159ab73f https://github.com/droonga/droonga-engine/commit/b86350589aea1d718cfd9fc19c058233159ab73f Message: Use LineBuffer to support chunk data Modified files: lib/droonga/command/droonga_engine.rb lib/droonga/command/droonga_engine_service.rb Modified: lib/droonga/command/droonga_engine.rb (+3 -2) =================================================================== --- lib/droonga/command/droonga_engine.rb 2014-06-03 12:23:04 +0900 (6ead147) +++ lib/droonga/command/droonga_engine.rb 2014-06-03 12:24:54 +0900 (296931b) @@ -24,6 +24,7 @@ require "droonga/path" require "droonga/serf" require "droonga/catalog_observer" require "droonga/service_control_protocol" +require "droonga/line_buffer" module Droonga module Command @@ -412,9 +413,9 @@ module Droonga def attach_control_read_in(control_read_in) @control_read_in = Coolio::IO.new(control_read_in) + line_buffer = LineBuffer.new on_read = lambda do |data| - # TODO: should buffer data to handle half line received case - data.each_line do |line| + line_buffer.feed(data) do |line| case line when Messages::READY on_ready Modified: lib/droonga/command/droonga_engine_service.rb (+3 -2) =================================================================== --- lib/droonga/command/droonga_engine_service.rb 2014-06-03 12:23:04 +0900 (649f38b) +++ lib/droonga/command/droonga_engine_service.rb 2014-06-03 12:24:54 +0900 (6605c73) @@ -18,6 +18,7 @@ require "optparse" require "coolio" require "droonga/service_control_protocol" +require "droonga/line_buffer" require "droonga/engine" require "droonga/fluent_message_receiver" require "droonga/internal_fluent_message_receiver" @@ -162,8 +163,8 @@ module Droonga @control_read = Coolio::IO.new(IO.new(@control_read_fd)) @control_read_fd = nil on_read = lambda do |data| - # TODO: should buffer data to handle half line received case - data.each_line do |line| + line_buffer = LineBuffer.new + line_buffer.feed(data) do |line| case line when Messages::STOP_GRACEFUL stop_gracefully -------------- next part -------------- HTML����������������������������...Download