2019-09-02 07:24:26 -07:00
|
|
|
class @beta Efl.Io.File extends Efl.Loop_Fd
|
|
|
|
implements Efl.File, Efl.Io.Reader_Fd, Efl.Io.Writer_Fd, Efl.Io.Closer_Fd, Efl.Io.Sizer_Fd,
|
|
|
|
Efl.Io.Positioner_Fd {
|
2016-08-13 00:50:29 -07:00
|
|
|
[[File access (open, close, read, write, lseek, ftruncate)
|
|
|
|
|
2016-09-12 08:23:29 -07:00
|
|
|
@Efl.Io.Closer.close_on_exec and
|
2018-04-17 16:17:29 -07:00
|
|
|
@Efl.Io.Closer.close_on_invalidate are respected and default to
|
2016-09-12 08:23:29 -07:00
|
|
|
$true. @Efl.Io.Closer.close_on_exec.set sets flag O_CLOEXEC.
|
2016-08-13 00:50:29 -07:00
|
|
|
]]
|
|
|
|
|
|
|
|
methods {
|
|
|
|
@property flags {
|
2016-11-11 01:58:22 -08:00
|
|
|
[[Bitwise OR'ed flags to open the file, like O_CREAT, O_APPEND...
|
2016-09-12 08:23:29 -07:00
|
|
|
|
|
|
|
Defaults to O_RDONLY | O_CLOEXEC.
|
|
|
|
|
|
|
|
The flag O_CLOEXEC will be also managed by
|
|
|
|
@Efl.Io.Closer.close_on_exec.set. Setting the property
|
|
|
|
after the file is opened will change its blocking
|
|
|
|
behavior.
|
|
|
|
]]
|
2016-08-13 00:50:29 -07:00
|
|
|
get {
|
|
|
|
}
|
|
|
|
|
|
|
|
set {
|
2016-11-11 01:58:22 -08:00
|
|
|
[[Constructor property to define flags to open the file]]
|
2016-08-13 00:50:29 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
values {
|
2016-11-11 01:58:22 -08:00
|
|
|
flags: uint32; [[Flags to open file, see man:open(2).]]
|
2016-08-13 00:50:29 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@property mode {
|
2016-11-17 04:08:41 -08:00
|
|
|
[[Mode property]]
|
2016-08-13 00:50:29 -07:00
|
|
|
get {
|
|
|
|
}
|
|
|
|
|
|
|
|
set {
|
2016-11-11 01:58:22 -08:00
|
|
|
[[Constructor property to define mode to open the file]]
|
2016-08-13 00:50:29 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
values {
|
2016-11-11 01:58:22 -08:00
|
|
|
mode: uint32; [[Mode to open file, see man:open(2).]]
|
2016-08-13 00:50:29 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
implements {
|
2016-09-12 08:23:29 -07:00
|
|
|
Efl.Object.constructor;
|
2016-08-13 00:50:29 -07:00
|
|
|
Efl.Object.destructor;
|
|
|
|
Efl.Object.finalize;
|
2018-04-12 04:56:02 -07:00
|
|
|
Efl.Loop_Fd.fd_file { set; }
|
2016-08-13 00:50:29 -07:00
|
|
|
Efl.Io.Reader.read;
|
|
|
|
Efl.Io.Writer.write;
|
|
|
|
Efl.Io.Closer.close;
|
2016-12-27 07:19:06 -08:00
|
|
|
Efl.Io.Closer.close_on_exec { set; }
|
2016-08-13 00:50:29 -07:00
|
|
|
Efl.Io.Sizer.resize;
|
|
|
|
Efl.Io.Positioner.seek;
|
|
|
|
}
|
|
|
|
}
|