Class: Libuv::File
Constant Summary
Constants included
from Assertions
Assertions::MSG_NO_PROC
Constants inherited
from Q::Promise
Q::Promise::MAKE_PROMISE
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Assertions
#assert_block, #assert_boolean, #assert_type
Methods included from Resource
#check_result, #check_result!, #resolve, #to_ptr
Methods included from FsChecks
#stat
#then
Methods inherited from Q::Promise
#catch, #finally, #progress
Constructor Details
#initialize(loop, path, flags = 0, mode = 0) ⇒ File
Returns a new instance of File.
9
10
11
12
13
14
15
16
17
18
|
# File 'lib/libuv/file.rb', line 9
def initialize(loop, path, flags = 0, mode = 0)
super(loop, loop.defer)
@fileno = -1
@closed = true
@path, @flags, @mode = path, flags, mode
request = ::Libuv::Ext.create_request(:uv_fs)
pre_check @defer, request, ::Libuv::Ext.fs_open(@loop, request, @path, @flags, @mode, callback(:on_open))
end
|
Instance Attribute Details
#closed ⇒ Object
Returns the value of attribute closed.
6
7
8
|
# File 'lib/libuv/file.rb', line 6
def closed
@closed
end
|
#fileno ⇒ Object
Returns the value of attribute fileno.
6
7
8
|
# File 'lib/libuv/file.rb', line 6
def fileno
@fileno
end
|
Instance Method Details
#chmod(mode) ⇒ Object
86
87
88
89
90
91
92
93
|
# File 'lib/libuv/file.rb', line 86
def chmod(mode)
assert_type(Integer, mode, "mode must be an Integer")
@chmod_deferred = @loop.defer
request = ::Libuv::Ext.create_request(:uv_fs)
pre_check @chmod_deferred, request, ::Libuv::Ext.fs_fchmod(@loop.handle, request, @fileno, mode, callback(:on_chmod))
@chmod_deferred.promise
end
|
#chown(uid, gid) ⇒ Object
95
96
97
98
99
100
101
102
103
|
# File 'lib/libuv/file.rb', line 95
def chown(uid, gid)
assert_type(Integer, uid, "uid must be an Integer")
assert_type(Integer, gid, "gid must be an Integer")
@chown_deferred = @loop.defer
request = ::Libuv::Ext.create_request(:uv_fs)
pre_check @chown_deferred, request, ::Libuv::Ext.fs_fchown(@loop.handle, request, @fileno, uid, gid, callback(:on_chown))
@chown_deferred.promise
end
|
#close ⇒ Object
20
21
22
23
24
|
# File 'lib/libuv/file.rb', line 20
def close
@closed = true
request = ::Libuv::Ext.create_request(:uv_fs)
pre_check(@defer, request, ::Libuv::Ext.fs_close(@loop.handle, request, @fileno, callback(:on_close)))
end
|
#datasync ⇒ Object
59
60
61
62
63
64
65
|
# File 'lib/libuv/file.rb', line 59
def datasync
@datasync_deferred = @loop.defer
request = ::Libuv::Ext.create_request(:uv_fs)
pre_check @datasync_deferred, request, ::Libuv::Ext.fs_fdatasync(@loop.handle, request, @fileno, callback(:on_datasync))
@datasync_deferred.promise
end
|
#read(length, offset = 0) ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/libuv/file.rb', line 26
def read(length, offset = 0)
assert_type(Integer, length, "length must be an Integer")
assert_type(Integer, offset, "offset must be an Integer")
@read_deferred = @loop.defer
@read_buffer = FFI::MemoryPointer.new(length)
request = ::Libuv::Ext.create_request(:uv_fs)
pre_check(@read_deferred, request, ::Libuv::Ext.fs_read(@loop.handle, request, @fileno, @read_buffer, length, offset, callback(:on_read)))
@read_deferred.promise
end
|
#sync ⇒ Object
51
52
53
54
55
56
57
|
# File 'lib/libuv/file.rb', line 51
def sync
@sync_deferred = @loop.defer
request = ::Libuv::Ext.create_request(:uv_fs)
pre_check @sync_deferred, request, ::Libuv::Ext.fs_fsync(@loop.handle, request, @fileno, callback(:on_sync))
@sync_deferred.promise
end
|
#truncate(offset) ⇒ Object
67
68
69
70
71
72
73
74
|
# File 'lib/libuv/file.rb', line 67
def truncate(offset)
assert_type(Integer, offset, "offset must be an Integer")
@truncate_deferred = @loop.defer
request = ::Libuv::Ext.create_request(:uv_fs)
pre_check @truncate_deferred, request, ::Libuv::Ext.fs_ftruncate(@loop.handle, request, @fileno, offset, callback(:on_truncate))
@truncate_deferred.promise
end
|
#utime(atime, mtime) ⇒ Object
76
77
78
79
80
81
82
83
84
|
# File 'lib/libuv/file.rb', line 76
def utime(atime, mtime)
assert_type(Integer, atime, "atime must be an Integer")
assert_type(Integer, mtime, "mtime must be an Integer")
@utime_deferred = @loop.defer
request = ::Libuv::Ext.create_request(:uv_fs)
pre_check @utime_deferred, request, ::Libuv::Ext.fs_futime(@loop.handle, request, @fileno, atime, mtime, callback(:on_utime))
@utime_deferred.promise
end
|
#write(data, offset = 0) ⇒ Object
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/libuv/file.rb', line 38
def write(data, offset = 0)
assert_type(String, data, "data must be a String")
assert_type(Integer, offset, "offset must be an Integer")
@write_deferred = @loop.defer
length = data.respond_to?(:bytesize) ? data.bytesize : data.size
@write_buffer = FFI::MemoryPointer.from_string(data)
request = ::Libuv::Ext.create_request(:uv_fs)
pre_check(@write_deferred, request, ::Libuv::Ext.fs_write(@loop.handle, request, @fileno, @write_buffer, length, offset, callback(:on_write)))
@write_deferred.promise
end
|