OpenTTD Source 20250705-master-gebd984d894
FileHandle Class Reference

Public Member Functions

void Close ()
 
 operator FILE * ()
 

Static Public Member Functions

static std::optional< FileHandleOpen (const std::string &filename, std::string_view mode)
 Open an RAII file handle if possible.
 
static std::optional< FileHandleOpen (std::string_view filename, std::string_view mode)
 

Private Member Functions

 FileHandle (FILE *f)
 

Private Attributes

AutoRelease< FILE, fclose > f
 

Detailed Description

Definition at line 132 of file fileio_type.h.

Constructor & Destructor Documentation

◆ FileHandle()

FileHandle::FileHandle ( FILE *  f)
inlineprivate

Definition at line 148 of file fileio_type.h.

Member Function Documentation

◆ Close()

void FileHandle::Close ( )
inline

Definition at line 137 of file fileio_type.h.

◆ Open() [1/2]

std::optional< FileHandle > FileHandle::Open ( const std::string &  filename,
std::string_view  mode 
)
static

Open an RAII file handle if possible.

Simplified FileHandle::Open which ignores OTTD2FS.

The canonical RAII-way is for FileHandle to open the file and throw an exception on failure, but we don't want that.

Parameters
filenameUTF-8 encoded filename to open.
modeMode to open file.
Returns
FileHandle, or std::nullopt on failure.

Required as settingsgen does not include all of the fileio system.

Parameters
filenameUTF-8 encoded filename to open.
modeMode to open file.
Returns
FileHandle, or std::nullopt on failure.

Definition at line 1168 of file fileio.cpp.

References OTTD2FS().

Referenced by TarScanner::AddFile(), AppendFile(), ClientNetworkContentSocketHandler::BeforeDownload(), ExtractTar(), FioFOpenFileTar(), GetLanguageFileHeader(), GunzipFile(), DLSFile::LoadFile(), LoadFromHighScore(), main(), SettingsIniFile::OpenFile(), ReadFileToMem(), and SaveToHighScore().

◆ Open() [2/2]

static std::optional< FileHandle > FileHandle::Open ( std::string_view  filename,
std::string_view  mode 
)
inlinestatic

Definition at line 135 of file fileio_type.h.

◆ operator FILE *()

FileHandle::operator FILE * ( )
inline

Definition at line 139 of file fileio_type.h.

Field Documentation

◆ f

AutoRelease<FILE, fclose> FileHandle::f
private

Definition at line 146 of file fileio_type.h.


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