sead::NinSaveFileDevice class

Base classes

class NinFileDeviceBase

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 }
enum class HeapNullOption { AlwaysUseSpecifiedHeap = 0, UseSpecifiedOrContainHeap = 1, DoNotAppendDisposerIfNoHeapSpecified = 2, UseSpecifiedOrCurrentHeap = 3 }

Public static variables

static const s32 cBufferMinAlignment

Public static functions

static auto getListNodeOffset() -> u32

Constructors, destructors, conversion operators

NinSaveFileDevice(const SafeString& mount) explicit

Public functions

auto tryCommit() -> bool
auto getDriveName() const -> const SafeString&
void setDriveName(const SafeString& name)
auto hasPermission() const -> bool
void setHasPermission(bool perm)
auto isAvailable() const -> bool
auto tryLoad(LoadArg& arg) -> u8*
auto save(SaveArg& arg) -> bool
auto trySave(SaveArg& arg) -> bool
auto open(FileHandle* handle, const SafeString& path, FileOpenFlag flag, u32 divSize = 0) -> FileDevice*
auto tryOpen(FileHandle* handle, const SafeString& path, FileOpenFlag flag, u32 divSize = 0) -> FileDevice*
auto close(FileHandle* handle) -> bool
auto tryClose(FileHandle* handle) -> bool
auto flush(FileHandle* handle) -> bool
auto tryFlush(FileHandle* handle) -> bool
auto remove(const SafeString& str) -> bool
auto tryRemove(const SafeString& str) -> bool
auto read(FileHandle* handle, u8* data, u32 size) -> u32
auto tryRead(u32* bytesRead, FileHandle* handle, u8* outBuffer, u32 bytesToRead) -> bool
auto write(FileHandle* handle, const u8* data, u32 size) -> u32
auto tryWrite(u32* bytesWritten, FileHandle* handle, const u8* inBuffer, u32 bytesToWrite) -> bool
auto seek(FileHandle* handle, s32 offset, SeekOrigin origin) -> bool
auto trySeek(FileHandle* handle, s32 offset, SeekOrigin origin) -> bool
auto getCurrentSeekPos(FileHandle* handle) -> u32
auto tryGetCurrentSeekPos(u32* seekPos, FileHandle* handle) -> bool
auto getFileSize(const SafeString& path) -> u32
auto getFileSize(FileHandle* handle) -> u32
auto tryGetFileSize(u32* fileSize, const SafeString& path) -> bool
auto tryGetFileSize(u32* size, FileHandle* handle) -> bool
auto isExistFile(const SafeString& path) -> bool
auto tryIsExistFile(bool* exists, const SafeString& path) -> bool
auto isExistDirectory(const SafeString& path) -> bool
auto tryIsExistDirectory(bool* exists, const SafeString& path) -> bool
auto openDirectory(DirectoryHandle* handle, const SafeString& path) -> FileDevice*
auto tryOpenDirectory(DirectoryHandle* handle, const SafeString& path) -> FileDevice*
auto closeDirectory(DirectoryHandle* handle) -> bool
auto tryCloseDirectory(DirectoryHandle* handle) -> bool
auto readDirectory(DirectoryHandle* handle, DirectoryEntry* entries, u32 num_entries) -> u32
auto tryReadDirectory(u32* entriesRead, DirectoryHandle* handle, DirectoryEntry* entries, u32 entriesToRead) -> bool
auto makeDirectory(const SafeString& path, u32 x) -> bool
auto tryMakeDirectory(const SafeString& path, u32) -> bool
auto makeDirectoryWithParent(const SafeString& path, u32 x) -> bool
auto tryMakeDirectoryWithParent(const SafeString& path, u32) -> bool
auto getLastRawError() const -> s32
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
auto isMatchDevice_(const HandleBase* handle) const -> bool virtual
void erase()

Public variables

FileDevice* mData
TList<FileDevice*>* mList

Protected functions

auto doIsAvailable_() const -> bool override
auto doOpen_(FileHandle* handle, const SafeString& path, FileOpenFlag flag) -> FileDevice* override
auto doClose_(FileHandle* handle) -> bool override
auto doFlush_(FileHandle* handle) -> bool override
auto doRemove_(const SafeString& path) -> bool override
auto doRead_(u32* bytesRead, FileHandle* handle, u8* outBuffer, u32 bytesToRead) -> bool override
auto doWrite_(u32* bytesWritten, FileHandle* handle, const u8* inBuffer, u32 bytesToWrite) -> bool override
auto doSeek_(FileHandle* handle, s32 offset, SeekOrigin origin) -> bool override
auto doGetCurrentSeekPos_(u32* seekPos, FileHandle* handle) -> bool override
auto doGetFileSize_(u32* fileSize, const SafeString& path) -> bool override
auto doGetFileSize_(u32* fileSize, FileHandle* handle) -> bool override
auto doIsExistFile_(bool* exists, const SafeString& path) -> bool override
auto doIsExistDirectory_(bool* exists, const SafeString& path) -> bool override
auto doOpenDirectory_(DirectoryHandle* handle, const SafeString& path) -> FileDevice* override
auto doCloseDirectory_(DirectoryHandle* handle) -> bool override
auto doReadDirectory_(u32* entriesRead, DirectoryHandle* handle, DirectoryEntry* entries, u32 entriesToRead) -> bool override
auto doMakeDirectory_(const SafeString& path, u32 u_32) -> bool override
auto doGetLastRawError_() const -> s32 override
void doResolvePath_(BufferedSafeString* out, const SafeString& path) const override
auto formatPathForFS_(BufferedSafeString* out, const SafeString& path) const -> bool virtual
auto getFileHandleInner_(HandleBase* handle, bool construct = false) const -> FileHandleInner*
auto getDirectoryHandleInner_(HandleBase* handle, bool construct = false) const -> DirectoryHandleInner*
auto doLoad_(LoadArg& arg) -> u8* virtual
auto doSave_(SaveArg& arg) -> bool virtual
void doTracePath_(const SafeString& path) const virtual
void setFileHandleDivSize_(FileHandle* handle, u32 divSize) const
void setHandleBaseFileDevice_(HandleBase* handle, FileDevice* device) const
void setHandleBaseOriginalFileDevice_(HandleBase* handle, FileDevice* device) const
auto getHandleBaseHandleBuffer_(HandleBase* handle) const -> HandleBuffer&
auto getDisposerHeap_() const -> Heap*

Protected variables

nn::Result mLastError
SafeString mMountPoint
FixedSafeString<32> mDriveName
bool mPermission

Enum documentation

enum sead::NinSaveFileDevice::FileOpenFlag

enum sead::NinSaveFileDevice::SeekOrigin

enum class sead::NinSaveFileDevice::HeapNullOption

Function documentation

static u32 sead::NinSaveFileDevice::getListNodeOffset()

const SafeString& sead::NinSaveFileDevice::getDriveName() const

void sead::NinSaveFileDevice::setDriveName(const SafeString& name)

bool sead::NinSaveFileDevice::hasPermission() const

void sead::NinSaveFileDevice::setHasPermission(bool perm)

bool sead::NinSaveFileDevice::isAvailable() const

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

bool sead::NinSaveFileDevice::save(SaveArg& arg)

bool sead::NinSaveFileDevice::trySave(SaveArg& arg)

FileDevice* sead::NinSaveFileDevice::open(FileHandle* handle, const SafeString& path, FileOpenFlag flag, u32 divSize = 0)

FileDevice* sead::NinSaveFileDevice::tryOpen(FileHandle* handle, const SafeString& path, FileOpenFlag flag, u32 divSize = 0)

bool sead::NinSaveFileDevice::close(FileHandle* handle)

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

bool sead::NinSaveFileDevice::flush(FileHandle* handle)

bool sead::NinSaveFileDevice::tryFlush(FileHandle* handle)

bool sead::NinSaveFileDevice::remove(const SafeString& str)

bool sead::NinSaveFileDevice::tryRemove(const SafeString& str)

u32 sead::NinSaveFileDevice::read(FileHandle* handle, u8* data, u32 size)

bool sead::NinSaveFileDevice::tryRead(u32* bytesRead, FileHandle* handle, u8* outBuffer, u32 bytesToRead)

u32 sead::NinSaveFileDevice::write(FileHandle* handle, const u8* data, u32 size)

bool sead::NinSaveFileDevice::tryWrite(u32* bytesWritten, FileHandle* handle, const u8* inBuffer, u32 bytesToWrite)

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

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

u32 sead::NinSaveFileDevice::getCurrentSeekPos(FileHandle* handle)

bool sead::NinSaveFileDevice::tryGetCurrentSeekPos(u32* seekPos, FileHandle* handle)

u32 sead::NinSaveFileDevice::getFileSize(const SafeString& path)

u32 sead::NinSaveFileDevice::getFileSize(FileHandle* handle)

bool sead::NinSaveFileDevice::tryGetFileSize(u32* fileSize, const SafeString& path)

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

bool sead::NinSaveFileDevice::isExistFile(const SafeString& path)

bool sead::NinSaveFileDevice::tryIsExistFile(bool* exists, const SafeString& path)

bool sead::NinSaveFileDevice::isExistDirectory(const SafeString& path)

bool sead::NinSaveFileDevice::tryIsExistDirectory(bool* exists, const SafeString& path)

FileDevice* sead::NinSaveFileDevice::openDirectory(DirectoryHandle* handle, const SafeString& path)

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

bool sead::NinSaveFileDevice::closeDirectory(DirectoryHandle* handle)

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

u32 sead::NinSaveFileDevice::readDirectory(DirectoryHandle* handle, DirectoryEntry* entries, u32 num_entries)

bool sead::NinSaveFileDevice::tryReadDirectory(u32* entriesRead, DirectoryHandle* handle, DirectoryEntry* entries, u32 entriesToRead)

bool sead::NinSaveFileDevice::makeDirectory(const SafeString& path, u32 x)

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

bool sead::NinSaveFileDevice::makeDirectoryWithParent(const SafeString& path, u32 x)

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

s32 sead::NinSaveFileDevice::getLastRawError() const

void sead::NinSaveFileDevice::traceFilePath(const SafeString& path) const virtual

void sead::NinSaveFileDevice::traceDirectoryPath(const SafeString& path) const virtual

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

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

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

void sead::NinSaveFileDevice::erase()

bool sead::NinSaveFileDevice::doIsAvailable_() const override protected

FileDevice* sead::NinSaveFileDevice::doOpen_(FileHandle* handle, const SafeString& path, FileOpenFlag flag) override protected

bool sead::NinSaveFileDevice::doClose_(FileHandle* handle) override protected

bool sead::NinSaveFileDevice::doFlush_(FileHandle* handle) override protected

bool sead::NinSaveFileDevice::doRemove_(const SafeString& path) override protected

bool sead::NinSaveFileDevice::doRead_(u32* bytesRead, FileHandle* handle, u8* outBuffer, u32 bytesToRead) override protected

bool sead::NinSaveFileDevice::doWrite_(u32* bytesWritten, FileHandle* handle, const u8* inBuffer, u32 bytesToWrite) override protected

bool sead::NinSaveFileDevice::doSeek_(FileHandle* handle, s32 offset, SeekOrigin origin) override protected

bool sead::NinSaveFileDevice::doGetCurrentSeekPos_(u32* seekPos, FileHandle* handle) override protected

bool sead::NinSaveFileDevice::doGetFileSize_(u32* fileSize, const SafeString& path) override protected

bool sead::NinSaveFileDevice::doGetFileSize_(u32* fileSize, FileHandle* handle) override protected

bool sead::NinSaveFileDevice::doIsExistFile_(bool* exists, const SafeString& path) override protected

bool sead::NinSaveFileDevice::doIsExistDirectory_(bool* exists, const SafeString& path) override protected

FileDevice* sead::NinSaveFileDevice::doOpenDirectory_(DirectoryHandle* handle, const SafeString& path) override protected

bool sead::NinSaveFileDevice::doCloseDirectory_(DirectoryHandle* handle) override protected

bool sead::NinSaveFileDevice::doReadDirectory_(u32* entriesRead, DirectoryHandle* handle, DirectoryEntry* entries, u32 entriesToRead) override protected

bool sead::NinSaveFileDevice::doMakeDirectory_(const SafeString& path, u32 u_32) override protected

s32 sead::NinSaveFileDevice::doGetLastRawError_() const override protected

void sead::NinSaveFileDevice::doResolvePath_(BufferedSafeString* out, const SafeString& path) const override protected

bool sead::NinSaveFileDevice::formatPathForFS_(BufferedSafeString* out, const SafeString& path) const virtual protected

FileHandleInner* sead::NinSaveFileDevice::getFileHandleInner_(HandleBase* handle, bool construct = false) const protected

DirectoryHandleInner* sead::NinSaveFileDevice::getDirectoryHandleInner_(HandleBase* handle, bool construct = false) const protected

u8* sead::NinSaveFileDevice::doLoad_(LoadArg& arg) virtual protected

bool sead::NinSaveFileDevice::doSave_(SaveArg& arg) virtual protected

void sead::NinSaveFileDevice::doTracePath_(const SafeString& path) const virtual protected

void sead::NinSaveFileDevice::setFileHandleDivSize_(FileHandle* handle, u32 divSize) const protected

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

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

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

Heap* sead::NinSaveFileDevice::getDisposerHeap_() const protected

Variable documentation

static const s32 sead::NinSaveFileDevice::cBufferMinAlignment

FileDevice* sead::NinSaveFileDevice::mData

TList<FileDevice*>* sead::NinSaveFileDevice::mList

nn::Result sead::NinSaveFileDevice::mLastError protected

SafeString sead::NinSaveFileDevice::mMountPoint protected

FixedSafeString<32> sead::NinSaveFileDevice::mDriveName protected

bool sead::NinSaveFileDevice::mPermission protected