forked from LeenkxTeam/LNXSDK
Update Files
This commit is contained in:
424
Kha/Tools/linux_arm64/std/eval/luv/File.hx
Normal file
424
Kha/Tools/linux_arm64/std/eval/luv/File.hx
Normal file
@ -0,0 +1,424 @@
|
||||
package eval.luv;
|
||||
|
||||
import eval.integers.Int64;
|
||||
import eval.integers.UInt64;
|
||||
|
||||
@:forward
|
||||
abstract FileRequest(Request) to Request {}
|
||||
|
||||
enum abstract FileOpenFlag(Int) {
|
||||
var RDONLY = 0;
|
||||
var WRONLY = 1;
|
||||
var RDWR = 2;
|
||||
var CREAT = 3;
|
||||
var EXCL = 4;
|
||||
var EXLOCK = 5;
|
||||
var NOCTTY = 6;
|
||||
var NOFOLLOW = 7;
|
||||
var TEMPORARY = 8;
|
||||
var TRUNC = 9;
|
||||
var APPEND = 10;
|
||||
var DIRECT = 11;
|
||||
var DSYNC = 12;
|
||||
var FILEMAP = 13;
|
||||
var NOATIME = 14;
|
||||
var NONBLOCK = 15;
|
||||
var RANDOM = 16;
|
||||
var SEQUENTIAL = 17;
|
||||
var SHORT_LIVED = 18;
|
||||
var SYMLINK = 19;
|
||||
var SYNC = 20;
|
||||
}
|
||||
|
||||
/**
|
||||
Permission bits.
|
||||
@see https://aantron.github.io/luv/luv/Luv/File/Mode
|
||||
**/
|
||||
enum FileMode {
|
||||
IRWXU;
|
||||
IRUSR;
|
||||
IWUSR;
|
||||
IXUSR;
|
||||
IRWXG;
|
||||
IRGRP;
|
||||
IWGRP;
|
||||
IXGRP;
|
||||
IRWXO;
|
||||
IROTH;
|
||||
IWOTH;
|
||||
IXOTH;
|
||||
ISUID;
|
||||
ISGID;
|
||||
ISVTX;
|
||||
IFMT;
|
||||
IFREG;
|
||||
IFDIR;
|
||||
IFBLK;
|
||||
IFCHR;
|
||||
IFLNK;
|
||||
IFIFO;
|
||||
NUMERIC(mode:Int);
|
||||
}
|
||||
|
||||
/**
|
||||
Abstract type for a bit field of permissions bits, i.e., an `int` in which
|
||||
multiple bits may be set. These bit fields are returned by operations such
|
||||
as `eval.luv.File.stat`
|
||||
**/
|
||||
@:coreType abstract FileModeNumeric {}
|
||||
|
||||
typedef FileStatTimeSpec = {
|
||||
var sec:Int64;
|
||||
var nsec:Int64;
|
||||
}
|
||||
|
||||
typedef FileStat = {
|
||||
var dev:UInt64;
|
||||
var mode:FileModeNumeric;
|
||||
var nlink:UInt64;
|
||||
var uid:UInt64;
|
||||
var gid:UInt64;
|
||||
var rdev:UInt64;
|
||||
var ino:UInt64;
|
||||
var size:UInt64;
|
||||
var blksize:UInt64;
|
||||
var blocks:UInt64;
|
||||
var flags:UInt64;
|
||||
var gen:UInt64;
|
||||
var atim:FileStatTimeSpec;
|
||||
var mtim:FileStatTimeSpec;
|
||||
var ctim:FileStatTimeSpec;
|
||||
var birthtim:FileStatTimeSpec;
|
||||
}
|
||||
|
||||
typedef FileStatFs = {
|
||||
var type:UInt64;
|
||||
var bsize:UInt64;
|
||||
var blocks:UInt64;
|
||||
var bfree:UInt64;
|
||||
var bavail:UInt64;
|
||||
var files:UInt64;
|
||||
var ffree:UInt64;
|
||||
var fspare:Array<UInt64>;
|
||||
}
|
||||
|
||||
enum abstract FileCopyFlag(Int) {
|
||||
var COPYFILE_EXCL = 0;
|
||||
var COPYFILE_FICLONE = 1;
|
||||
var COPYFILE_FICLONE_FORCE = 2;
|
||||
}
|
||||
|
||||
enum abstract FileAccessFlag(Int) {
|
||||
var F_OK = 0;
|
||||
var R_OK = 1;
|
||||
var W_OK = 2;
|
||||
var X_OK = 3;
|
||||
}
|
||||
|
||||
enum abstract FileSymlinkFlag(Int) {
|
||||
var SYMLINK_DIR = 0;
|
||||
var SYMLINK_JUNCTION = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
Files.
|
||||
|
||||
@see https://aantron.github.io/luv/luv/Luv/File
|
||||
**/
|
||||
@:using(eval.luv.Handle)
|
||||
@:coreType abstract File to Handle {
|
||||
|
||||
extern static public final stdin:File;
|
||||
extern static public final stdout:File;
|
||||
extern static public final stderr:File;
|
||||
|
||||
static public function createRequest():FileRequest;
|
||||
|
||||
/**
|
||||
Checks whether all the bits in `mask` are set in `bits`.
|
||||
|
||||
For example, if `bits` is equal to octal 0o644, then
|
||||
`eval.luv.File.testMode [IRUSR] bits` evaluates to `true`.
|
||||
**/
|
||||
static public function testMode(mask:Array<FileMode>, bits:FileModeNumeric):Bool;
|
||||
|
||||
/**
|
||||
Opens the file at the given path.
|
||||
The default value of the `mode` argument is equal to octal `0o644`.
|
||||
**/
|
||||
static public function open(loop:Loop, path:NativeString, flags:Array<FileOpenFlag>, ?mode:Array<FileMode>, ?request:FileRequest, callback:(result:Result<File>)->Void):Void;
|
||||
|
||||
/**
|
||||
Closes the file.
|
||||
**/
|
||||
public function close(loop:Loop, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
|
||||
|
||||
/**
|
||||
Reads from the file.
|
||||
|
||||
The incoming data is written consecutively to into the given buffers.
|
||||
The number of bytes that the operation tries to read is the total length
|
||||
of the buffers.
|
||||
|
||||
End of file is indicated by `Result.Ok(0)`. Note that this is different
|
||||
from `eval.luv.Stream.readStart`.
|
||||
**/
|
||||
public function read(loop:Loop, fileOffset:Int64, buffers:Array<Buffer>, ?request:FileRequest, callback:(result:Result<UInt64>)->Void):Void;
|
||||
|
||||
/**
|
||||
Writes to the file.
|
||||
**/
|
||||
public function write(loop:Loop, fileOffset:Int64, buffers:Array<Buffer>, ?request:FileRequest, callback:(result:Result<UInt64>)->Void):Void;
|
||||
|
||||
/**
|
||||
Deletes the file at the given path.
|
||||
**/
|
||||
static public function unlink(loop:Loop, path:NativeString, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
|
||||
|
||||
/**
|
||||
Moves the file at the given path to the path given by `toPath`
|
||||
**/
|
||||
static public function rename(loop:Loop, path:NativeString, toPath:NativeString, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
|
||||
|
||||
/**
|
||||
Creates a temporary file with name based on the given pattern.
|
||||
**/
|
||||
static public function mkstemp(loop:Loop, pattern:NativeString, ?request:FileRequest, callback:(result:Result<{name:NativeString,file:File}>)->Void):Void;
|
||||
|
||||
/**
|
||||
Creates a temporary directory with name based on the given pattern.
|
||||
**/
|
||||
static public function mkdtemp(loop:Loop, pattern:NativeString, ?request:FileRequest, callback:(result:Result<NativeString>)->Void):Void;
|
||||
|
||||
/**
|
||||
Creates a directory.
|
||||
**/
|
||||
static public function mkdir(loop:Loop, path:NativeString, ?mode:Array<FileMode>, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
|
||||
|
||||
/**
|
||||
Deletes a directory.
|
||||
**/
|
||||
static public function rmdir(loop:Loop, path:NativeString, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
|
||||
|
||||
/**
|
||||
Retrieves status information for the file at the given path.
|
||||
**/
|
||||
static public function stat(loop:Loop, path:NativeString, ?request:FileRequest, callback:(result:Result<FileStat>)->Void):Void;
|
||||
|
||||
/**
|
||||
Like `eval.luv.File.stat`, but does not dereference symlinks.
|
||||
**/
|
||||
static public function lstat(loop:Loop, path:NativeString, ?request:FileRequest, callback:(result:Result<FileStat>)->Void):Void;
|
||||
|
||||
/**
|
||||
Retrieves status information for this file.
|
||||
**/
|
||||
public function fstat(loop:Loop, ?request:FileRequest, callback:(result:Result<FileStat>)->Void):Void;
|
||||
|
||||
/**
|
||||
Retrieves status information for the filesystem containing the given path.
|
||||
**/
|
||||
static public function statFs(loop:Loop, path:NativeString, ?request:FileRequest, callback:(result:Result<FileStatFs>)->Void):Void;
|
||||
|
||||
/**
|
||||
Flushes file changes to storage.
|
||||
**/
|
||||
public function fsync(loop:Loop, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
|
||||
|
||||
/**
|
||||
Like `eval.luv.File.fsync`, but may omit some metadata.
|
||||
**/
|
||||
public function fdataSync(loop:Loop, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
|
||||
|
||||
/**
|
||||
Truncates the given file to the given length.
|
||||
**/
|
||||
public function ftruncate(loop:Loop, length:Int64, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
|
||||
|
||||
/**
|
||||
Copies the file at the given path to the path given by `toPath`.
|
||||
**/
|
||||
static public function copyFile(loop:Loop, path:NativeString, toPath:NativeString, ?flags:Array<FileCopyFlag>, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
|
||||
|
||||
/**
|
||||
Transfers data between file descriptors.
|
||||
**/
|
||||
public function sendFile(loop:Loop, toFile:File, offset:Int64, length:UInt64, ?request:FileRequest, callback:(result:Result<UInt64>)->Void):Void;
|
||||
|
||||
/**
|
||||
Checks whether the calling process can access the file at the given path.
|
||||
**/
|
||||
static public function access(loop:Loop, path:NativeString, flags:Array<FileAccessFlag>, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
|
||||
|
||||
/**
|
||||
Changes permissions of the file at the given path.
|
||||
**/
|
||||
static public function chmod(loop:Loop, path:NativeString, mode:Array<FileMode>, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
|
||||
|
||||
/**
|
||||
Changes permissions of the file.
|
||||
**/
|
||||
public function fchmod(loop:Loop, mode:Array<FileMode>, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
|
||||
|
||||
/**
|
||||
Sets timestamps of the file at the given path.
|
||||
**/
|
||||
static public function utime(loop:Loop, path:NativeString, atime:Float, mtime:Float, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
|
||||
|
||||
/**
|
||||
Sets timestamps of the file.
|
||||
**/
|
||||
public function futime(loop:Loop, atime:Float, mtime:Float, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
|
||||
|
||||
/**
|
||||
Sets timestamps of the file at the given path without dereferencing symlinks.
|
||||
**/
|
||||
static public function lutime(loop:Loop, path:NativeString, atime:Float, mtime:Float, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
|
||||
|
||||
/**
|
||||
Hardlinks a file at the location given by `link`.
|
||||
**/
|
||||
static public function link(loop:Loop, path:NativeString, link:NativeString, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
|
||||
|
||||
/**
|
||||
Symlinks a file at the location given by `link`.
|
||||
**/
|
||||
static public function symlink(loop:Loop, path:NativeString, link:NativeString, ?flags:Array<FileSymlinkFlag>, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
|
||||
|
||||
/**
|
||||
Reads the target path of a symlink.
|
||||
**/
|
||||
static public function readLink(loop:Loop, path:NativeString, ?request:FileRequest, callback:(result:Result<NativeString>)->Void):Void;
|
||||
|
||||
/**
|
||||
Resolves a real absolute path to the given file.
|
||||
**/
|
||||
static public function realPath(loop:Loop, path:NativeString, ?request:FileRequest, callback:(result:Result<NativeString>)->Void):Void;
|
||||
|
||||
/**
|
||||
Changes owneship of the file at the given path.
|
||||
**/
|
||||
static public function chown(loop:Loop, path:NativeString, uid:Int, gid:Int, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
|
||||
|
||||
/**
|
||||
Changes owneship of the file at the given path. without dereferencing symlinks.
|
||||
**/
|
||||
static public function lchown(loop:Loop, path:NativeString, uid:Int, gid:Int, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
|
||||
|
||||
/**
|
||||
Changes owneship of the file.
|
||||
**/
|
||||
public function fchown(loop:Loop, uid:Int, gid:Int, ?request:FileRequest, callback:(result:Result<Result.NoData>)->Void):Void;
|
||||
|
||||
/**
|
||||
Returns the integer representation of `eval.luv.File`.
|
||||
|
||||
`eval.luv.File` is defined as an integer file descriptor by libuv on all
|
||||
platforms at the moment. This is a convenience function for interoperability
|
||||
with `eval.luv.Process`, the API of which assumes that files are represented
|
||||
by integers.
|
||||
**/
|
||||
public function toInt():Int;
|
||||
}
|
||||
|
||||
/**
|
||||
Synchronous version of `eval.luv.File` API
|
||||
**/
|
||||
extern class FileSync {
|
||||
@:inheritDoc(eval.luv.File.open)
|
||||
static function open(path:NativeString, flags:Array<FileOpenFlag>, ?mode:Array<FileMode>):Result<File>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.close)
|
||||
static function close(file:File):Result<Result.NoData>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.read)
|
||||
static function read(file:File, fileOffset:Int64, buffers:Array<Buffer>):Result<UInt64>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.write)
|
||||
static function write(file:File, fileOffset:Int64, buffers:Array<Buffer>):Result<UInt64>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.unlink)
|
||||
static function unlink(path:NativeString):Result<Result.NoData>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.rename)
|
||||
static function rename(path:NativeString, toPath:NativeString):Result<Result.NoData>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.mkstemp)
|
||||
static function mkstemp(pattern:NativeString):Result<{name:NativeString,file:File}>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.mkdtemp)
|
||||
static function mkdtemp(pattern:NativeString):Result<NativeString>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.mkdir)
|
||||
static function mkdir(path:NativeString, ?mode:Array<FileMode>):Result<Result.NoData>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.rmdir)
|
||||
static function rmdir(path:NativeString):Result<Result.NoData>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.stat)
|
||||
static function stat(path:NativeString):Result<FileStat>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.lstat)
|
||||
static function lstat(path:NativeString):Result<FileStat>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.fstat)
|
||||
static function fstat(file:File):Result<FileStat>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.statFs)
|
||||
static function statFs(path:NativeString):Result<FileStatFs>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.fsync)
|
||||
static function fsync(file:File):Result<Result.NoData>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.fdataSync)
|
||||
static function fdataSync(file:File):Result<Result.NoData>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.ftruncate)
|
||||
static function ftruncate(file:File, length:Int64):Result<Result.NoData>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.copyFile)
|
||||
static function copyFile(path:NativeString, toPath:NativeString, ?flags:Array<FileCopyFlag>):Result<Result.NoData>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.sendFile)
|
||||
static function sendFile(file:File, toFile:File, offset:Int64, length:UInt64):Result<UInt64>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.access)
|
||||
static function access(path:NativeString, flags:Array<FileAccessFlag>):Result<Result.NoData>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.chmod)
|
||||
static function chmod(path:NativeString, mode:Array<FileMode>):Result<Result.NoData>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.fchmod)
|
||||
static function fchmod(file:File, mode:Array<FileMode>):Result<Result.NoData>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.utime)
|
||||
static function utime(path:NativeString, atime:Float, mtime:Float):Result<Result.NoData>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.futime)
|
||||
static function futime(file:File, atime:Float, mtime:Float):Result<Result.NoData>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.lutime)
|
||||
static function lutime(path:NativeString, atime:Float, mtime:Float):Result<Result.NoData>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.link)
|
||||
static function link(path:NativeString, link:NativeString):Result<Result.NoData>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.symlink)
|
||||
static function symlink(path:NativeString, link:NativeString, ?flags:Array<FileSymlinkFlag>):Result<Result.NoData>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.readLink)
|
||||
static function readLink(path:NativeString):Result<NativeString>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.realPath)
|
||||
static function realPath(path:NativeString):Result<NativeString>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.chown)
|
||||
static function chown(path:NativeString, uid:Int, gid:Int):Result<Result.NoData>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.lchown)
|
||||
static function lchown(path:NativeString, uid:Int, gid:Int):Result<Result.NoData>;
|
||||
|
||||
@:inheritDoc(eval.luv.File.fchown)
|
||||
static function fchown(file:File, uid:Int, gid:Int):Result<Result.NoData>;
|
||||
|
||||
}
|
Reference in New Issue
Block a user