libretro.drivers.vfs.driver¶
Protocol definition for the virtual filesystem interface.
See also
libretro.api.vfsThe matching
ctypestypes and callback definitions.
Classes
Represents an open directory in the virtual file system. |
|
Represents an open file in the virtual file system. |
|
Protocol for backends that implement the libretro virtual filesystem interface. |
- class FileSystemDriver[source]¶
Bases:
ProtocolProtocol for backends that implement the libretro virtual filesystem interface.
Implementations expose file and directory operations to cores using the same semantics as the C
retro_vfs_*callbacks.See also
libretro.api.vfsThe matching
ctypestypes and callback definitions.
- abstract property version¶
Return the VFS interface version implemented by this driver.
- Returns:
The supported VFS interface version (1, 2, or 3).
- abstractmethod get_path(stream)[source]¶
Return the path that was used to open
stream.- Parameters:
stream (
retro_vfs_file_handle) – An open file handle previously returned byopen().- Return type:
- Returns:
The original path as
bytes, orNoneifstreamis unknown.
See also
retro_vfs_get_path_t()
- abstractmethod open(path, mode, hints)[source]¶
Open the file at
pathand return a handle to it.- Parameters:
mode (
VfsFileAccess) – Access mode flags controlling read/write behavior.hints (
VfsFileAccessHint) – Hints describing the intended access pattern.
- Return type:
- Returns:
A new
retro_vfs_file_handle, orNoneif the file could not be opened.
See also
retro_vfs_open_t()
- abstractmethod close(stream)[source]¶
Close the file referenced by
stream.- Parameters:
stream (
retro_vfs_file_handle) – A file handle previously returned byopen().- Return type:
- Returns:
Trueif the file was closed successfully,Falseotherwise.
See also
retro_vfs_close_t()
- abstractmethod size(stream)[source]¶
Return the size of the file referenced by
stream.- Parameters:
stream (
retro_vfs_file_handle) – An open file handle previously returned byopen().- Return type:
- Returns:
The size of the file in bytes, or a negative value on failure.
See also
retro_vfs_size_t()
- abstractmethod truncate(stream, length)[source]¶
Truncate (or extend) the file referenced by
streamtolengthbytes.- Parameters:
stream (
retro_vfs_file_handle) – An open file handle previously returned byopen().length (
int) – The new size of the file, in bytes.
- Return type:
- Returns:
Trueif the operation succeeded,Falseotherwise.
See also
retro_vfs_truncate_t()
- abstractmethod tell(stream)[source]¶
Return the current read/write offset within
stream.- Parameters:
stream (
retro_vfs_file_handle) – An open file handle previously returned byopen().- Return type:
- Returns:
The current byte offset from the start of the file, or a negative value on failure.
See also
retro_vfs_tell_t()
- abstractmethod seek(stream, offset, whence)[source]¶
Move
stream’s read/write offset tooffsetrelative towhence.- Parameters:
stream (
retro_vfs_file_handle) – An open file handle previously returned byopen().offset (
int) – The new offset, in bytes, relative towhence.whence (
VfsSeekPosition) – The reference position used to interpretoffset.
- Return type:
- Returns:
The resulting absolute offset, or a negative value on failure.
See also
retro_vfs_seek_t()
- abstractmethod read(stream, buffer)[source]¶
Read bytes from
streamintobuffer.- Parameters:
stream (
retro_vfs_file_handle) – An open file handle previously returned byopen().buffer (
memoryview[int]) – A writable buffer to receive the bytes that were read.
- Return type:
- Returns:
The number of bytes actually read, or a negative value on failure.
See also
retro_vfs_read_t()
- abstractmethod write(stream, buffer)[source]¶
Write the contents of
buffertostreamat its current offset.- Parameters:
stream (
retro_vfs_file_handle) – An open file handle previously returned byopen().buffer (
memoryview[int]) – A readable buffer holding the bytes to write.
- Return type:
- Returns:
The number of bytes actually written, or a negative value on failure.
See also
retro_vfs_write_t()
- abstractmethod flush(stream)[source]¶
Flush any buffered data for
streamto the underlying storage.- Parameters:
stream (
retro_vfs_file_handle) – An open file handle previously returned byopen().- Return type:
- Returns:
Trueif the flush succeeded,Falseotherwise.
See also
retro_vfs_flush_t()
- abstractmethod remove(path)[source]¶
Delete the file at
path.- Parameters:
path (
bytes) – Path of the file to remove, encoded asbytes.- Return type:
- Returns:
Trueif the file was removed successfully,Falseotherwise.
See also
retro_vfs_remove_t()
- abstractmethod rename(old_path, new_path)[source]¶
Rename or move the file at
old_pathtonew_path.- Parameters:
- Return type:
- Returns:
Trueif the rename succeeded,Falseotherwise.
See also
retro_vfs_rename_t()
- abstractmethod stat(path)[source]¶
Return file metadata for
path.- Parameters:
path (
bytes) – Path of the entry to inspect, encoded asbytes.- Return type:
- Returns:
A pair of
VfsStatflags and the entry size in bytes, orNoneifpathdoes not exist.
See also
retro_vfs_stat_t()
- abstractmethod mkdir(path)[source]¶
Create a directory at
path.- Parameters:
path (
bytes) – Path of the directory to create, encoded asbytes.- Return type:
- Returns:
A
VfsMkdirResultdescribing the outcome of the operation.
See also
retro_vfs_mkdir_t()
- abstractmethod opendir(path, include_hidden)[source]¶
Open the directory at
pathfor iteration.- Parameters:
- Return type:
- Returns:
A new
retro_vfs_dir_handle, orNoneif the directory could not be opened.
See also
retro_vfs_opendir_t()
- abstractmethod readdir(dir)[source]¶
Advance
dirto its next entry.- Parameters:
dir (
retro_vfs_dir_handle) – An open directory handle previously returned byopendir().- Return type:
- Returns:
Trueif a new entry is now available,Falseif the end was reached.
See also
retro_vfs_readdir_t()
- abstractmethod dirent_get_name(dir)[source]¶
Return the name of the current entry in
dir.- Parameters:
dir (
retro_vfs_dir_handle) – An open directory handle previously returned byopendir().- Return type:
- Returns:
The entry name as
bytes, orNoneif no entry is available.
See also
retro_vfs_dirent_get_name_t()
- abstractmethod dirent_is_dir(dir)[source]¶
Return whether the current entry in
dirrefers to a subdirectory.- Parameters:
dir (
retro_vfs_dir_handle) – An open directory handle previously returned byopendir().- Return type:
- Returns:
Trueif the current entry is a directory,Falseotherwise.
See also
retro_vfs_dirent_is_dir_t()
- abstractmethod closedir(dir)[source]¶
Close
dirand release any associated resources.- Parameters:
dir (
retro_vfs_dir_handle) – A directory handle previously returned byopendir().- Return type:
- Returns:
Trueif the directory was closed successfully,Falseotherwise.
See also
retro_vfs_closedir_t()
- __init__(*args, **kwargs)¶
- classmethod __new__(*args, **kwargs)¶
- class FileHandle[source]¶
Bases:
ProtocolRepresents an open file in the virtual file system.
This is a higher-level abstraction than the raw file handle provided by the VFS interface. Optional.
- abstractmethod __init__(path, mode, hints)[source]¶
Open the file at
pathwith the given accessmodeandhints.- Parameters:
mode (
VfsFileAccess) – Access mode flags controlling read/write behavior.hints (
VfsFileAccessHint) – Hints describing the intended access pattern.
- Raises:
OSError – If the file cannot be opened.
- abstractmethod close()[source]¶
Close the underlying file and release any associated resources.
- Return type:
- Returns:
Trueif the file was closed successfully,Falseotherwise.
- abstract property path¶
Return the path that was used to open this file.
- abstract property size¶
Return the size of the open file in bytes.
- Returns:
The current file size in bytes.
- Raises:
IOError – If the file is closed.
- abstractmethod seek(offset, whence)[source]¶
Move the file’s read/write offset to
offsetrelative towhence.- Parameters:
offset (
int) – The new offset, in bytes, relative towhence.whence (
VfsSeekPosition) – The reference position used to interpretoffset.
- Return type:
- Returns:
The resulting absolute offset from the start of the file.
- Raises:
IOError – If the file is closed.
- abstractmethod read(buffer)[source]¶
Read bytes from the file into
buffer.- Parameters:
buffer (
memoryview[int]) – A writable buffer to receive the bytes that were read.- Return type:
- Returns:
The number of bytes that were actually read.
- Raises:
IOError – If the file is closed.
- abstractmethod write(buffer)[source]¶
Write the contents of
bufferto the file at the current offset.- Parameters:
buffer (
memoryview[int]) – A readable buffer holding the bytes to write.- Return type:
- Returns:
The number of bytes that were actually written.
- Raises:
IOError – If the file is closed.
- classmethod __new__(*args, **kwargs)¶
- class DirectoryHandle[source]¶
Bases:
ProtocolRepresents an open directory in the virtual file system.
This is a higher-level abstraction than the raw directory handle provided by the VFS interface. Optional.
- abstract property dirent_name¶
Return the name of the current directory entry, if any.
- abstract property dirent_is_dir¶
Return whether the current directory entry refers to a subdirectory.
- Returns:
Trueif the current entry is a directory,Falseotherwise.- Raises:
IOError – If the directory is closed.
ValueError – If no current entry is available.
- abstractmethod closedir()[source]¶
Close the directory and release any associated resources.
- Return type:
- Returns:
Trueif the directory was closed successfully,Falseotherwise.
- classmethod __new__(*args, **kwargs)¶