module Kgio::PipeMethods
This module may be used used to create classes that respond to various Kgio methods for reading and writing. This is included in Kgio::Pipe by default.
Public Instance Methods
Reads at most maxlen bytes from the stream socket. Returns with a newly allocated buffer, or may reuse an existing buffer if supplied.
This may block and call any method defined to
kgio_wait_readable
for the class.
Returns nil on EOF.
This behaves like read(2) and IO#readpartial, NOT fread(3) or IO#read which possess read-in-full behavior.
static VALUE kgio_read(int argc, VALUE *argv, VALUE io) { return my_read(1, argc, argv, io); }
Same as #kgio_read, except EOFError is raised on EOF without a backtrace. This method is intended as a drop-in replacement for places where IO#readpartial is used, and may be aliased as such.
static VALUE kgio_read_bang(int argc, VALUE *argv, VALUE io) { VALUE rv = my_read(1, argc, argv, io); if (NIL_P(rv)) my_eof_error(); return rv; }
Reads at most maxlen bytes from the stream socket. Returns with a newly allocated buffer, or may reuse an existing buffer if supplied.
Returns nil on EOF.
Returns :wait_readable if EAGAIN is encountered.
static VALUE kgio_tryread(int argc, VALUE *argv, VALUE io) { return my_read(0, argc, argv, io); }
Returns nil if the write was completed in full.
Returns a String containing the unwritten portion if EAGAIN was encountered, but some portion was successfully written.
Returns :wait_writable if EAGAIN is encountered and nothing was written.
static VALUE kgio_trywrite(VALUE io, VALUE str) { return my_write(io, str, 0); }
Returns nil if the write was completed in full.
Returns an Array of strings containing the unwritten portion if EAGAIN was encountered, but some portion was successfully written.
Returns :wait_writable if EAGAIN is encountered and nothing was written.
Note: it uses +Array()+ semantic for converting argument, so that it will succeed if you pass something else.
static VALUE kgio_trywritev(VALUE io, VALUE ary) { return my_writev(io, ary, 0); }
Returns nil when the write completes.
This may block and call any method defined to
kgio_wait_writable
for the class.
static VALUE kgio_write(VALUE io, VALUE str) { return my_write(io, str, 1); }
Returns nil when the write completes.
This may block and call any method defined to
kgio_wait_writable
for the class.
Note: it uses +Array()+ semantic for converting argument, so that it will succeed if you pass something else.
static VALUE kgio_writev(VALUE io, VALUE ary) { return my_writev(io, ary, 1); }