lib/oxblood/buffered_io.rb in oxblood-0.1.0.dev6 vs lib/oxblood/buffered_io.rb in oxblood-0.1.0.dev7
- old
+ new
@@ -4,43 +4,9 @@
def initialize(socket)
@socket = socket
@buffer = String.new
end
- def gets(separator, timeout)
- crlf = nil
- while (crlf = @buffer.index(separator)) == nil
- @buffer << _read_from_socket(1024, timeout)
- end
-
- @buffer.slice!(0, crlf + separator.bytesize)
- end
-
- def read(nbytes, timeout)
- result = @buffer.slice!(0, nbytes)
-
- while result.bytesize < nbytes
- result << _read_from_socket(nbytes - result.bytesize, timeout)
- end
-
- result
- end
-
private
-
- def _read_from_socket(nbytes, timeout)
- begin
- @socket.read_nonblock(nbytes)
- rescue Errno::EWOULDBLOCK, Errno::EAGAIN
- if IO.select([@socket], nil, nil, timeout)
- retry
- else
- raise Connection::TimeoutError
- end
- end
-
- rescue EOFError
- raise Errno::ECONNRESET
- end
end
end