sead
Loading...
Searching...
No Matches
sead::FileDevice Class Referenceabstract

#include <seadFileDevice.h>

Inherits sead::TListNode< FileDevice * >, and sead::IDisposer.

Inherited by sead::ArchiveFileDevice, sead::CafeFSAFileDevice, and sead::MainFileDevice.

Classes

struct  LoadArg

Public Types

enum  FileOpenFlag { cFileOpenFlag_ReadOnly = 0 , cFileOpenFlag_WriteOnly = 1 , cFileOpenFlag_ReadWrite = 2 , cFileOpenFlag_Create = 3 }
enum  SeekOrigin { cSeekOrigin_Begin = 0 , cSeekOrigin_Current = 1 , cSeekOrigin_End = 2 }

Public Member Functions

 FileDevice (const SafeString &default_drive_name)
 ~FileDevice () override
const SafeStringgetDriveName () const
void setDriveName (const SafeString &drive_name)
void setPermission (bool permission)
bool hasPermission () const
bool isAvailable () const
u8 * load (LoadArg &arg)
u8 * tryLoad (LoadArg &arg)
void unload (u8 *data)
FileDeviceopen (FileHandle *handle, const SafeString &filename, FileOpenFlag flag, u32 div_size)
FileDevicetryOpen (FileHandle *handle, const SafeString &filename, FileOpenFlag flag, u32 div_size)
bool close (FileHandle *handle)
bool tryClose (FileHandle *handle)
u32 read (FileHandle *handle, u8 *buf, u32 size)
bool tryRead (u32 *read_size, FileHandle *handle, u8 *buf, u32 size)
u32 write (FileHandle *handle, const u8 *buf, u32 size)
bool tryWrite (u32 *write_size, FileHandle *handle, const u8 *buf, u32 size)
bool seek (FileHandle *handle, s32 offset, SeekOrigin origin)
bool trySeek (FileHandle *handle, s32 offset, SeekOrigin origin)
u32 getCurrentSeekPos (FileHandle *handle)
bool tryGetCurrentSeekPos (u32 *pos, FileHandle *handle)
u32 getFileSize (const SafeString &path)
u32 getFileSize (FileHandle *handle)
bool tryGetFileSize (u32 *size, const SafeString &path)
bool tryGetFileSize (u32 *size, FileHandle *handle)
bool isExistFile (const SafeString &path)
bool tryIsExistFile (bool *is_exist, const SafeString &path)
bool isExistDirectory (const SafeString &path)
bool tryIsExistDirectory (bool *is_exist, const SafeString &path)
FileDeviceopenDirectory (DirectoryHandle *handle, const SafeString &dirname)
FileDevicetryOpenDirectory (DirectoryHandle *handle, const SafeString &dirname)
bool closeDirectory (DirectoryHandle *handle)
bool tryCloseDirectory (DirectoryHandle *handle)
u32 readDirectory (DirectoryHandle *handle, DirectoryEntry *entry, u32 num)
bool tryReadDirectory (u32 *read_num, DirectoryHandle *handle, DirectoryEntry *entry, u32 num)
bool makeDirectory (const SafeString &path, u32 permission)
bool tryMakeDirectory (const SafeString &path, u32 permission)
bool makeDirectoryWithParent (const SafeString &path, u32 permission)
bool tryMakeDirectoryWithParent (const SafeString &path, u32 permission)
RawErrorCode getLastRawError () const
virtual void traceFilePath (const SafeString &path) const
virtual void traceDirectoryPath (const SafeString &path) const
virtual void resolveFilePath (BufferedSafeString *out, const SafeString &path) const
virtual void resolveDirectoryPath (BufferedSafeString *out, const SafeString &path) const
virtual bool isMatchDevice_ (const HandleBase *handle) const
Public Member Functions inherited from sead::TListNode< FileDevice * >
 TListNode ()
void insertBack (TListNode< FileDevice * > *n)
void insertFront (TListNode< FileDevice * > *n)
void erase ()
Public Member Functions inherited from sead::ListNode
 ListNode ()
ListNodenext () const
ListNodeprev () const
bool isLinked () const
Public Member Functions inherited from sead::IDisposer
 IDisposer ()
virtual ~IDisposer ()

Static Public Attributes

static const s32 cDriveNameBufferSize = 32
static const s32 cBufferMinAlignment = 64

Protected Member Functions

virtual bool doIsAvailable_ () const =0
virtual u8 * doLoad_ (LoadArg &arg)
virtual FileDevicedoOpen_ (FileHandle *handle, const SafeString &filename, FileOpenFlag flag)=0
virtual bool doClose_ (FileHandle *handle)=0
virtual bool doRead_ (u32 *read_size, FileHandle *handle, u8 *buf, u32 size)=0
virtual bool doWrite_ (u32 *write_size, FileHandle *handle, const u8 *buf, u32 size)=0
virtual bool doSeek_ (FileHandle *handle, s32 offset, SeekOrigin origin)=0
virtual bool doGetCurrentSeekPos_ (u32 *pos, FileHandle *handle)=0
virtual bool doGetFileSize_ (u32 *size, const SafeString &path)=0
virtual bool doGetFileSize_ (u32 *size, FileHandle *handle)=0
virtual bool doIsExistFile_ (bool *is_exist, const SafeString &path)=0
virtual bool doIsExistDirectory_ (bool *is_exist, const SafeString &path)=0
virtual FileDevicedoOpenDirectory_ (DirectoryHandle *handle, const SafeString &dirname)=0
virtual bool doCloseDirectory_ (DirectoryHandle *handle)=0
virtual bool doReadDirectory_ (u32 *read_num, DirectoryHandle *handle, DirectoryEntry *entry, u32 num)=0
virtual bool doMakeDirectory_ (const SafeString &path, u32 permission)=0
virtual RawErrorCode doGetLastRawError_ () const =0
virtual void doTracePath_ (const SafeString &path) const
virtual void doResolvePath_ (BufferedSafeString *out, const SafeString &path) const
HandleBuffergetHandleBaseHandleBuffer_ (HandleBase *handle) const
void setHandleBaseFileDevice_ (HandleBase *handle, FileDevice *device) const
void setHandleBaseOriginalFileDevice_ (HandleBase *handle, FileDevice *device) const
void setFileHandleDivSize_ (FileHandle *handle, u32 div_size) const

Protected Attributes

FixedSafeString< cDriveNameBufferSizemDriveName
bool mPermission

Friends

class FileDeviceMgr

Additional Inherited Members

Public Attributes inherited from sead::TListNode< FileDevice * >
FileDevicemData
TList< FileDevice * > * mList

Member Enumeration Documentation

◆ FileOpenFlag

Enumerator
cFileOpenFlag_ReadOnly 
cFileOpenFlag_WriteOnly 
cFileOpenFlag_ReadWrite 
cFileOpenFlag_Create 

◆ SeekOrigin

Enumerator
cSeekOrigin_Begin 
cSeekOrigin_Current 
cSeekOrigin_End 

Constructor & Destructor Documentation

◆ FileDevice()

sead::FileDevice::FileDevice ( const SafeString & default_drive_name)
inline

◆ ~FileDevice()

sead::FileDevice::~FileDevice ( )
override

Member Function Documentation

◆ getDriveName()

const SafeString & sead::FileDevice::getDriveName ( ) const
inline

◆ setDriveName()

void sead::FileDevice::setDriveName ( const SafeString & drive_name)
inline

◆ setPermission()

void sead::FileDevice::setPermission ( bool permission)
inline

◆ hasPermission()

bool sead::FileDevice::hasPermission ( ) const
inline

◆ isAvailable()

bool sead::FileDevice::isAvailable ( ) const

◆ load()

u8 * sead::FileDevice::load ( LoadArg & arg)
inline

◆ tryLoad()

u8 * sead::FileDevice::tryLoad ( LoadArg & arg)

◆ unload()

void sead::FileDevice::unload ( u8 * data)
inline

◆ open()

FileDevice * sead::FileDevice::open ( FileHandle * handle,
const SafeString & filename,
FileOpenFlag flag,
u32 div_size )
inline

◆ tryOpen()

FileDevice * sead::FileDevice::tryOpen ( FileHandle * handle,
const SafeString & filename,
FileOpenFlag flag,
u32 div_size )

◆ close()

bool sead::FileDevice::close ( FileHandle * handle)
inline

◆ tryClose()

bool sead::FileDevice::tryClose ( FileHandle * handle)

◆ read()

u32 sead::FileDevice::read ( FileHandle * handle,
u8 * buf,
u32 size )
inline

◆ tryRead()

bool sead::FileDevice::tryRead ( u32 * read_size,
FileHandle * handle,
u8 * buf,
u32 size )

◆ write()

u32 sead::FileDevice::write ( FileHandle * handle,
const u8 * buf,
u32 size )
inline

◆ tryWrite()

bool sead::FileDevice::tryWrite ( u32 * write_size,
FileHandle * handle,
const u8 * buf,
u32 size )

◆ seek()

bool sead::FileDevice::seek ( FileHandle * handle,
s32 offset,
SeekOrigin origin )
inline

◆ trySeek()

bool sead::FileDevice::trySeek ( FileHandle * handle,
s32 offset,
FileDevice::SeekOrigin origin )

◆ getCurrentSeekPos()

u32 sead::FileDevice::getCurrentSeekPos ( FileHandle * handle)
inline

◆ tryGetCurrentSeekPos()

bool sead::FileDevice::tryGetCurrentSeekPos ( u32 * pos,
FileHandle * handle )

◆ getFileSize() [1/2]

u32 sead::FileDevice::getFileSize ( const SafeString & path)
inline

◆ getFileSize() [2/2]

u32 sead::FileDevice::getFileSize ( FileHandle * handle)
inline

◆ tryGetFileSize() [1/2]

bool sead::FileDevice::tryGetFileSize ( u32 * size,
const SafeString & path )

◆ tryGetFileSize() [2/2]

bool sead::FileDevice::tryGetFileSize ( u32 * size,
FileHandle * handle )

◆ isExistFile()

bool sead::FileDevice::isExistFile ( const SafeString & path)
inline

◆ tryIsExistFile()

bool sead::FileDevice::tryIsExistFile ( bool * is_exist,
const SafeString & path )

◆ isExistDirectory()

bool sead::FileDevice::isExistDirectory ( const SafeString & path)
inline

◆ tryIsExistDirectory()

bool sead::FileDevice::tryIsExistDirectory ( bool * is_exist,
const SafeString & path )

◆ openDirectory()

FileDevice * sead::FileDevice::openDirectory ( DirectoryHandle * handle,
const SafeString & dirname )
inline

◆ tryOpenDirectory()

FileDevice * sead::FileDevice::tryOpenDirectory ( DirectoryHandle * handle,
const SafeString & dirname )

◆ closeDirectory()

bool sead::FileDevice::closeDirectory ( DirectoryHandle * handle)
inline

◆ tryCloseDirectory()

bool sead::FileDevice::tryCloseDirectory ( DirectoryHandle * handle)

◆ readDirectory()

u32 sead::FileDevice::readDirectory ( DirectoryHandle * handle,
DirectoryEntry * entry,
u32 num )
inline

◆ tryReadDirectory()

bool sead::FileDevice::tryReadDirectory ( u32 * read_num,
DirectoryHandle * handle,
DirectoryEntry * entry,
u32 num )

◆ makeDirectory()

bool sead::FileDevice::makeDirectory ( const SafeString & path,
u32 permission )
inline

◆ tryMakeDirectory()

bool sead::FileDevice::tryMakeDirectory ( const SafeString & path,
u32 permission )

◆ makeDirectoryWithParent()

bool sead::FileDevice::makeDirectoryWithParent ( const SafeString & path,
u32 permission )
inline

◆ tryMakeDirectoryWithParent()

bool sead::FileDevice::tryMakeDirectoryWithParent ( const SafeString & path,
u32 permission )

◆ getLastRawError()

RawErrorCode sead::FileDevice::getLastRawError ( ) const

◆ traceFilePath()

virtual void sead::FileDevice::traceFilePath ( const SafeString & path) const
inlinevirtual

Reimplemented in sead::MainFileDevice.

◆ traceDirectoryPath()

virtual void sead::FileDevice::traceDirectoryPath ( const SafeString & path) const
inlinevirtual

Reimplemented in sead::MainFileDevice.

◆ resolveFilePath()

virtual void sead::FileDevice::resolveFilePath ( BufferedSafeString * out,
const SafeString & path ) const
inlinevirtual

Reimplemented in sead::MainFileDevice.

◆ resolveDirectoryPath()

virtual void sead::FileDevice::resolveDirectoryPath ( BufferedSafeString * out,
const SafeString & path ) const
inlinevirtual

Reimplemented in sead::MainFileDevice.

◆ isMatchDevice_()

bool sead::FileDevice::isMatchDevice_ ( const HandleBase * handle) const
virtual

Reimplemented in sead::MainFileDevice.

◆ doIsAvailable_()

virtual bool sead::FileDevice::doIsAvailable_ ( ) const
protectedpure virtual

◆ doLoad_()

u8 * sead::FileDevice::doLoad_ ( LoadArg & arg)
protectedvirtual

Reimplemented in sead::ArchiveFileDevice.

◆ doOpen_()

virtual FileDevice * sead::FileDevice::doOpen_ ( FileHandle * handle,
const SafeString & filename,
FileOpenFlag flag )
protectedpure virtual

◆ doClose_()

virtual bool sead::FileDevice::doClose_ ( FileHandle * handle)
protectedpure virtual

◆ doRead_()

virtual bool sead::FileDevice::doRead_ ( u32 * read_size,
FileHandle * handle,
u8 * buf,
u32 size )
protectedpure virtual

◆ doWrite_()

virtual bool sead::FileDevice::doWrite_ ( u32 * write_size,
FileHandle * handle,
const u8 * buf,
u32 size )
protectedpure virtual

◆ doSeek_()

virtual bool sead::FileDevice::doSeek_ ( FileHandle * handle,
s32 offset,
SeekOrigin origin )
protectedpure virtual

◆ doGetCurrentSeekPos_()

virtual bool sead::FileDevice::doGetCurrentSeekPos_ ( u32 * pos,
FileHandle * handle )
protectedpure virtual

◆ doGetFileSize_() [1/2]

virtual bool sead::FileDevice::doGetFileSize_ ( u32 * size,
const SafeString & path )
protectedpure virtual

◆ doGetFileSize_() [2/2]

virtual bool sead::FileDevice::doGetFileSize_ ( u32 * size,
FileHandle * handle )
protectedpure virtual

◆ doIsExistFile_()

virtual bool sead::FileDevice::doIsExistFile_ ( bool * is_exist,
const SafeString & path )
protectedpure virtual

◆ doIsExistDirectory_()

virtual bool sead::FileDevice::doIsExistDirectory_ ( bool * is_exist,
const SafeString & path )
protectedpure virtual

◆ doOpenDirectory_()

virtual FileDevice * sead::FileDevice::doOpenDirectory_ ( DirectoryHandle * handle,
const SafeString & dirname )
protectedpure virtual

◆ doCloseDirectory_()

virtual bool sead::FileDevice::doCloseDirectory_ ( DirectoryHandle * handle)
protectedpure virtual

◆ doReadDirectory_()

virtual bool sead::FileDevice::doReadDirectory_ ( u32 * read_num,
DirectoryHandle * handle,
DirectoryEntry * entry,
u32 num )
protectedpure virtual

◆ doMakeDirectory_()

virtual bool sead::FileDevice::doMakeDirectory_ ( const SafeString & path,
u32 permission )
protectedpure virtual

◆ doGetLastRawError_()

virtual RawErrorCode sead::FileDevice::doGetLastRawError_ ( ) const
protectedpure virtual

◆ doTracePath_()

void sead::FileDevice::doTracePath_ ( const SafeString & path) const
protectedvirtual

◆ doResolvePath_()

void sead::FileDevice::doResolvePath_ ( BufferedSafeString * out,
const SafeString & path ) const
protectedvirtual

Reimplemented in sead::CafeFSAFileDevice.

◆ getHandleBaseHandleBuffer_()

HandleBuffer & sead::FileDevice::getHandleBaseHandleBuffer_ ( HandleBase * handle) const
protected

◆ setHandleBaseFileDevice_()

void sead::FileDevice::setHandleBaseFileDevice_ ( HandleBase * handle,
FileDevice * device ) const
protected

◆ setHandleBaseOriginalFileDevice_()

void sead::FileDevice::setHandleBaseOriginalFileDevice_ ( HandleBase * handle,
FileDevice * device ) const
protected

◆ setFileHandleDivSize_()

void sead::FileDevice::setFileHandleDivSize_ ( FileHandle * handle,
u32 div_size ) const
protected

◆ FileDeviceMgr

friend class FileDeviceMgr
friend

Member Data Documentation

◆ cDriveNameBufferSize

const s32 sead::FileDevice::cDriveNameBufferSize = 32
static

◆ cBufferMinAlignment

const s32 sead::FileDevice::cBufferMinAlignment = 64
static

◆ mDriveName

FixedSafeString<cDriveNameBufferSize> sead::FileDevice::mDriveName
protected

◆ mPermission

bool sead::FileDevice::mPermission
protected