Class: Perennial::Protocols::PureRuby::JSONTransport::BufferedIO

Inherits:
Net::BufferedIO
  • Object
show all
Defined in:
lib/perennial/protocols/pure_ruby/json_transport.rb

Overview

:nodoc:

Constant Summary collapse

BUFSIZE =
1024 * 16

Instance Method Summary collapse

Instance Method Details

#getsObject



179
180
181
# File 'lib/perennial/protocols/pure_ruby/json_transport.rb', line 179

def gets
  readuntil(SEPERATOR)
end

#rbuf_fillObject



161
162
163
164
165
166
167
168
169
170
171
172
# File 'lib/perennial/protocols/pure_ruby/json_transport.rb', line 161

def rbuf_fill
  begin
    @rbuf << @io.read_nonblock(BUFSIZE)
  rescue Errno::EWOULDBLOCK
    retry unless @read_timeout
    if IO.select([@io], nil, nil, @read_timeout)
      retry
    else
      raise Timeout::Error, 'IO timeout'
    end
  end
end

#setsockopt(*args) ⇒ Object



175
176
177
# File 'lib/perennial/protocols/pure_ruby/json_transport.rb', line 175

def setsockopt(*args)
  @io.setsockopt(*args)
end