[Groonga-commit] droonga/droonga-engine at b863505 [master] Use LineBuffer to support chunk data

Back to archive index

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 



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