contur2
Loading...
Searching...
No Matches
contur::IFileSystem Class Referenceabstract

Abstract file-system interface. More...

#include <i_filesystem.h>

Inheritance diagram for contur::IFileSystem:

Public Member Functions

virtual ~IFileSystem ()=default
virtual Result< FileDescriptoropen (const std::string &path, OpenMode mode)=0
 Opens a file path with the requested mode.
virtual Result< std::size_t > read (FileDescriptor fd, std::span< std::byte > buffer)=0
 Reads bytes from an open descriptor.
virtual Result< std::size_t > write (FileDescriptor fd, std::span< const std::byte > data)=0
 Writes bytes to an open descriptor.
virtual Result< void > close (FileDescriptor fd)=0
 Closes an open descriptor.
virtual Result< void > mkdir (const std::string &path)=0
 Creates a directory at path.
virtual Result< void > remove (const std::string &path)=0
 Removes a file or an empty directory.
virtual Result< std::vector< DirectoryEntry > > listDir (const std::string &path) const =0
 Lists immediate child entries in a directory.
virtual Result< InodeInfostat (const std::string &path) const =0
 Returns metadata for path.

Detailed Description

Abstract file-system interface.

Definition at line 40 of file i_filesystem.h.

Constructor & Destructor Documentation

◆ ~IFileSystem()

virtual contur::IFileSystem::~IFileSystem ( )
virtualdefault

Member Function Documentation

◆ close()

virtual Result< void > contur::IFileSystem::close ( FileDescriptor fd)
nodiscardpure virtual

Closes an open descriptor.

Parameters
fdDescriptor to close.
Returns
Ok on success; NotFound for unknown descriptor.

Implemented in contur::SimpleFS.

◆ listDir()

virtual Result< std::vector< DirectoryEntry > > contur::IFileSystem::listDir ( const std::string & path) const
nodiscardpure virtual

Lists immediate child entries in a directory.

Parameters
pathAbsolute directory path.
Returns
Vector of directory entries, or error.

Implemented in contur::SimpleFS.

◆ mkdir()

virtual Result< void > contur::IFileSystem::mkdir ( const std::string & path)
nodiscardpure virtual

Creates a directory at path.

Parameters
pathAbsolute directory path.
Returns
Ok on success; AlreadyExists/NotFound/InvalidArgument otherwise.

Implemented in contur::SimpleFS.

◆ open()

virtual Result< FileDescriptor > contur::IFileSystem::open ( const std::string & path,
OpenMode mode )
nodiscardpure virtual

Opens a file path with the requested mode.

Parameters
pathAbsolute file path.
modeOpen mode flags.
Returns
File descriptor on success; error otherwise.

Implemented in contur::SimpleFS.

◆ read()

virtual Result< std::size_t > contur::IFileSystem::read ( FileDescriptor fd,
std::span< std::byte > buffer )
nodiscardpure virtual

Reads bytes from an open descriptor.

Parameters
fdOpen descriptor.
bufferOutput buffer.
Returns
Number of bytes read, or error.

Implemented in contur::SimpleFS.

◆ remove()

virtual Result< void > contur::IFileSystem::remove ( const std::string & path)
nodiscardpure virtual

Removes a file or an empty directory.

Parameters
pathAbsolute path to remove.
Returns
Ok on success; NotFound/InvalidState on failure.

Implemented in contur::SimpleFS.

◆ stat()

virtual Result< InodeInfo > contur::IFileSystem::stat ( const std::string & path) const
nodiscardpure virtual

Returns metadata for path.

Parameters
pathAbsolute path of file or directory.
Returns
Inode info or NotFound.

Implemented in contur::SimpleFS.

◆ write()

virtual Result< std::size_t > contur::IFileSystem::write ( FileDescriptor fd,
std::span< const std::byte > data )
nodiscardpure virtual

Writes bytes to an open descriptor.

Parameters
fdOpen descriptor.
dataData bytes to write.
Returns
Number of bytes written, or error.

Implemented in contur::SimpleFS.


The documentation for this class was generated from the following file: