Sha256: f0549e89f35d15da9088c5f6555b8cc5303b9c245293027163cbe598be1da100
Contents?: true
Size: 970 Bytes
Versions: 1
Compression:
Stored size: 970 Bytes
Contents
# frozen_string_literal: true require 'ds9' module GrpcKit module Session class IO def initialize(io) @io = io end def close @io.close end def recv_event(length) data = @io.read_nonblock(length, nil, exception: false) case data when :wait_readable DS9::ERR_WOULDBLOCK when nil # nil means EOF DS9::ERR_EOF else data end end def send_event(data) return 0 if data.empty? bytes = @io.write_nonblock(data, exception: false) if bytes == :wait_writable DS9::ERR_WOULDBLOCK else bytes end end def wait_readable ::IO.select([@io], [], []) true rescue IOError false end def select(timeout = 1) ::IO.select([@io], [@io], [], timeout) end def flush @io.flush end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
grpc_kit-0.1.8 | lib/grpc_kit/session/io.rb |