# File lib/protocols/line_and_text.rb, line 39
39:       def receive_data data
40:         if @lbp_mode == :lines
41:           begin
42:             @lpb_buffer.extract(data).each do |line| 
43:               receive_line(line.chomp) if respond_to?(:receive_line)
44:             end
45:           rescue Exception
46:             receive_error('overlength line') if respond_to?(:receive_error)
47:             close_connection
48:             return
49:           end
50:         else
51:           if @lbp_binary_limit > 0
52:             wanted = @lbp_binary_limit - @lbp_binary_bytes_received
53:             chunk = nil
54:             if data.length > wanted
55:               chunk = data.slice!(0...wanted)
56:             else
57:               chunk = data
58:               data = ""
59:             end
60:             @lbp_binary_buffer[@lbp_binary_bytes_received...(@lbp_binary_bytes_received+chunk.length)] = chunk
61:             @lbp_binary_bytes_received += chunk.length
62:             if @lbp_binary_bytes_received == @lbp_binary_limit
63:               receive_binary_data(@lbp_binary_buffer) if respond_to?(:receive_binary_data)
64:               lbp_init_line_state
65:             end
66:             receive_data(data) if data.length > 0
67:           else
68:             receive_binary_data(data) if respond_to?(:receive_binary_data)
69:             data = ""
70:           end
71:         end
72:       end