Sha256: 75e9b76ec3bafc35cda25b49190d1c77f8ec9544e660b70542d4575830bab5cc
Contents?: true
Size: 1.23 KB
Versions: 5
Compression:
Stored size: 1.23 KB
Contents
module UV class Pipe include Stream def open(fileno) assert_type(Integer, fileno, "io#fileno must return an integer file descriptor") check_result! UV.pipe_open(handle, fileno) self end def bind(name) assert_type(String, name, "name must be a String") name = windows_path name if FFI::Platform.windows? check_result! UV.pipe_bind(handle, name) self end def connect(name, &block) assert_block(block) assert_arity(1, block) assert_type(String, name, "name must be a String") @connect_block = block name = windows_path name if FFI::Platform.windows? UV.pipe_connect(UV.create_request(:uv_connect), handle, name, callback(:on_connect)) self end def pending_instances=(count) assert_type(Integer, count, "count must be an Integer") UV.pipe_pending_instances(handle, count) self end private def on_connect(req, status) UV.free(req) @connect_block.call(check_result(status)) end def windows_path(name) # test for \\\\.\\pipe if not name =~ /(\/|\\){2}\.(\/|\\)pipe/i name = ::File.join("\\\\.\\pipe", name) end name.gsub("/", "\\") end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
uvrb-0.2.0 | lib/uv/pipe.rb |
uvrb-0.1.4 | lib/uv/pipe.rb |
uvrb-0.1.3 | lib/uv/pipe.rb |
uvrb-0.1.2 | lib/uv/pipe.rb |
uvrb-0.1.1 | lib/uv/pipe.rb |