CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::IFileHandle Class Referenceabstract

Base interface for file handles implementation. More...

#include <CeresEngine/Foundation/IO/FileHandle.hpp>

Inheritance diagram for CeresEngine::IFileHandle:
CeresEngine::LocalFileHandle CeresEngine::POSIXFileHandle CeresEngine::Win32FileHandle

Public Member Functions

 IFileHandle ()=default
 
virtual ~IFileHandle ()=default
 
virtual IFileSystemgetFileSystem () const =0
 Gets the backing IFileSystem for the handle.
 
virtual void updateFileInfo ()=0
 Update file information.
 
virtual StringView getPath () const =0
 
virtual bool exists () const =0
 Checks if the file exists on the file system.
 
virtual bool isFile () const =0
 Checks if item is a file.
 
virtual bool isDirectory () const =0
 Checks if item is a directory.
 
virtual bool isSymbolicLink () const =0
 Checks if item is a symbolic link.
 
virtual FileIterator begin () const =0
 Gets an iterator that points to the first directory entry.
 
virtual UInt64 getSize () const =0
 Gets the file size.
 
virtual Int64 getAccessTime () const =0
 Gets the time of last access.
 
virtual Int64 getModificationTime () const =0
 Gets time of last modification.
 
virtual bool createDirectory ()=0
 Creates a new directory.
 
virtual bool removeDirectory ()=0
 Removes a directory.
 
virtual bool copy (IFileHandle &dest)=0
 Copies a file.
 
virtual bool move (IFileHandle &dest)=0
 Moves a file.
 
virtual bool createLink (IFileHandle &dest)=0
 Creates a hard link.
 
virtual bool createSymbolicLink (IFileHandle &dest)=0
 Creates a symbolic link.
 
virtual bool rename (StringView filename)=0
 Renames a file or directory.
 
virtual bool remove ()=0
 Removes a file.
 
virtual InputStream createInputStream (std::ios_base::openmode mode) const =0
 Creates an input stream to read from the file.
 
virtual OutputStream createOutputStream (std::ios_base::openmode mode)=0
 Creates an output stream to write to the file.
 

Detailed Description

Base interface for file handles implementation.

Constructor & Destructor Documentation

◆ IFileHandle()

CeresEngine::IFileHandle::IFileHandle ( )
default

◆ ~IFileHandle()

virtual CeresEngine::IFileHandle::~IFileHandle ( )
virtualdefault

Member Function Documentation

◆ begin()

virtual FileIterator CeresEngine::IFileHandle::begin ( ) const
pure virtual

Gets an iterator that points to the first directory entry.

Returns
An iterator to the directory contents.

Implemented in CeresEngine::LocalFileHandle.

◆ copy()

virtual bool CeresEngine::IFileHandle::copy ( IFileHandle dest)
pure virtual

Copies a file.

Parameters
destThe destination file or directory.
Returns
true if successful, else false.

Implemented in CeresEngine::LocalFileHandle.

◆ createDirectory()

virtual bool CeresEngine::IFileHandle::createDirectory ( )
pure virtual

Creates a new directory.

Returns
true if successful, else false.

Implemented in CeresEngine::LocalFileHandle.

◆ createInputStream()

virtual InputStream CeresEngine::IFileHandle::createInputStream ( std::ios_base::openmode  mode) const
pure virtual

Creates an input stream to read from the file.

Returns
The input stream. Can be nullptr if opening the stream failed.

Implemented in CeresEngine::LocalFileHandle.

◆ createLink()

virtual bool CeresEngine::IFileHandle::createLink ( IFileHandle dest)
pure virtual

Creates a hard link.

Parameters
destThe destination file or directory.
Returns
true if successful, else false.

Implemented in CeresEngine::LocalFileHandle.

◆ createOutputStream()

virtual OutputStream CeresEngine::IFileHandle::createOutputStream ( std::ios_base::openmode  mode)
pure virtual

Creates an output stream to write to the file.

Returns
The output stream. Can be nullptr if opening the stream failed.

Implemented in CeresEngine::LocalFileHandle.

◆ createSymbolicLink()

virtual bool CeresEngine::IFileHandle::createSymbolicLink ( IFileHandle dest)
pure virtual

Creates a symbolic link.

Parameters
destThe destination file or directory.
Returns
true if successful, else false.

Implemented in CeresEngine::LocalFileHandle.

◆ exists()

virtual bool CeresEngine::IFileHandle::exists ( ) const
pure virtual

Checks if the file exists on the file system.

Returns
true if it exists, else false.

Implemented in CeresEngine::LocalFileHandle.

◆ getAccessTime()

virtual Int64 CeresEngine::IFileHandle::getAccessTime ( ) const
pure virtual

Gets the time of last access.

Implemented in CeresEngine::Win32FileHandle, CeresEngine::LocalFileHandle, and CeresEngine::POSIXFileHandle.

◆ getFileSystem()

virtual IFileSystem * CeresEngine::IFileHandle::getFileSystem ( ) const
pure virtual

Gets the backing IFileSystem for the handle.

Can be nullptr if the handle is empty.

Implemented in CeresEngine::LocalFileHandle.

◆ getModificationTime()

virtual Int64 CeresEngine::IFileHandle::getModificationTime ( ) const
pure virtual

Gets time of last modification.

Implemented in CeresEngine::Win32FileHandle, CeresEngine::LocalFileHandle, and CeresEngine::POSIXFileHandle.

◆ getPath()

virtual StringView CeresEngine::IFileHandle::getPath ( ) const
pure virtual

Returns
The path to file or directory

Implemented in CeresEngine::LocalFileHandle.

◆ getSize()

virtual UInt64 CeresEngine::IFileHandle::getSize ( ) const
pure virtual

Gets the file size.

Returns
The file size if handle points to a file, else 0.

Implemented in CeresEngine::LocalFileHandle.

◆ isDirectory()

virtual bool CeresEngine::IFileHandle::isDirectory ( ) const
pure virtual

Checks if item is a directory.

Returns
true if it is a directory, else false.

Implemented in CeresEngine::LocalFileHandle.

◆ isFile()

virtual bool CeresEngine::IFileHandle::isFile ( ) const
pure virtual

Checks if item is a file.

Returns
true if it is a file, else false.

Implemented in CeresEngine::LocalFileHandle.

◆ isSymbolicLink()

virtual bool CeresEngine::IFileHandle::isSymbolicLink ( ) const
pure virtual

Checks if item is a symbolic link.

Returns
true if it is a symbolic link, else false.

Implemented in CeresEngine::LocalFileHandle.

◆ move()

virtual bool CeresEngine::IFileHandle::move ( IFileHandle dest)
pure virtual

Moves a file.

Parameters
destThe destination file or directory.
Returns
true if successful, else false.

Implemented in CeresEngine::LocalFileHandle.

◆ remove()

virtual bool CeresEngine::IFileHandle::remove ( )
pure virtual

Removes a file.

Returns
true if successful, else false.
Note
Only works if the handle points to a valid file, not a directory.

Implemented in CeresEngine::LocalFileHandle.

◆ removeDirectory()

virtual bool CeresEngine::IFileHandle::removeDirectory ( )
pure virtual

Removes a directory.

Returns
true if successful, else false.
Note
If RemoveDirectoryFlag::Recursive is not set, the call will only succeed if the directory exists and is empty.

Implemented in CeresEngine::LocalFileHandle.

◆ rename()

virtual bool CeresEngine::IFileHandle::rename ( StringView  filename)
pure virtual

Renames a file or directory.

Parameters
filenameThe new file name to rename the file to.
Returns
true if successful, else false.

Implemented in CeresEngine::LocalFileHandle.

◆ updateFileInfo()

virtual void CeresEngine::IFileHandle::updateFileInfo ( )
pure virtual

Update file information.

Must reload and update the file information. It will for example be called after a file has been created, copied, or removed to ensure that the file information returned by the handle is correct.

Implemented in CeresEngine::Win32FileHandle, CeresEngine::LocalFileHandle, and CeresEngine::POSIXFileHandle.


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