1#ifndef SEAD_FILEDEVICEMGR_H_
2#define SEAD_FILEDEVICEMGR_H_
8#include <basis/seadAssert.h>
9#include <container/seadTList.h>
10#include <filedevice/seadFileDevice.h>
11#include <filedevice/seadMainFileDevice.h>
12#include <heap/seadDisposer.h>
13#include <prim/seadSafeString.h>
37 FileDevice* device = tryOpen(handle, filename, flag, div_num);
38 SEAD_ASSERT_MSG(device !=
nullptr,
"open failed. [%s]", filename.cstr());
49 SEAD_ASSERT_MSG(device !=
nullptr,
"open directory failed. [%s]", dirname.cstr());
57 u8* ret = tryLoad(arg);
124 #error "Unknown platform"
128static_assert(
sizeof(
FileDeviceMgr) == 0x182C,
"sead::FileDeviceMgr size mismatch");
Definition seadFileDevice.h:421
Definition seadFileDeviceMgr.h:18
FileDevice * setDefaultFileDevice(FileDevice *device)
Definition seadFileDeviceMgr.h:75
FileDevice * tryOpen(FileHandle *handle, const SafeString &filename, FileDevice::FileOpenFlag flag, u32 div_num)
Definition seadFileDeviceMgr.cpp:199
virtual void traceFilePath(const SafeString &path) const
Definition seadFileDeviceMgr.cpp:78
MainFileDevice * getMainFileDevice() const
Definition seadFileDeviceMgr.h:87
u8 * load(FileDevice::LoadArg &arg)
Definition seadFileDeviceMgr.h:55
virtual void traceDirectoryPath(const SafeString &path) const
Definition seadFileDeviceMgr.cpp:92
TList< FileDevice * > DeviceList
Definition seadFileDeviceMgr.h:29
FileDevice * getDefaultFileDevice() const
Definition seadFileDeviceMgr.h:82
FileDevice * mDefaultFileDevice
Definition seadFileDeviceMgr.h:101
virtual void resolveFilePath(BufferedSafeString *out, const SafeString &path) const
Definition seadFileDeviceMgr.cpp:106
u8 * tryLoad(FileDevice::LoadArg &arg)
Definition seadFileDeviceMgr.cpp:210
DeviceList mDeviceList
Definition seadFileDeviceMgr.h:100
void unmount(FileDevice *device)
Definition seadFileDeviceMgr.cpp:142
void unload(u8 *data)
Definition seadFileDeviceMgr.cpp:232
const DeviceList & getDeviceList() const
Definition seadFileDeviceMgr.h:70
FileDevice * findDevice(const SafeString &drive) const
Definition seadFileDeviceMgr.cpp:190
void mount(FileDevice *device, const SafeString &drive_name=SafeString::cEmptyString)
Definition seadFileDeviceMgr.cpp:134
FileDevice * findDeviceFromPath(const SafeString &path, BufferedSafeString *no_drive_path) const
Definition seadFileDeviceMgr.cpp:159
FileDevice * open(FileHandle *handle, const SafeString &filename, FileDevice::FileOpenFlag flag, u32 div_num)
Definition seadFileDeviceMgr.h:35
static const s32 cNoDrivePathBufferSize
Definition seadFileDeviceMgr.h:26
FileDevice * tryOpenDirectory(DirectoryHandle *handle, const SafeString &dirname)
FileDeviceMgr()
Definition seadFileDeviceMgr.cpp:19
void unmount(const SafeString &drive)
Definition seadFileDeviceMgr.cpp:151
virtual void resolveDirectoryPath(BufferedSafeString *out, const SafeString &path) const
Definition seadFileDeviceMgr.cpp:120
~FileDeviceMgr()
Definition seadFileDeviceMgr.cpp:60
FileDevice * openDirectory(DirectoryHandle *handle, const SafeString &dirname)
Definition seadFileDeviceMgr.h:46
MainFileDevice * mMainFileDevice
Definition seadFileDeviceMgr.h:102
Definition seadFileDevice.h:56
FileOpenFlag
Definition seadFileDevice.h:61
Definition seadFileDevice.h:376
Definition seadMainFileDevice.h:11
Definition seadTList.h:49
Definition seadAssert.h:44
SafeStringBase< char > SafeString
Definition seadSafeString.h:420
BufferedSafeStringBase< char > BufferedSafeString
Definition seadSafeString.h:422
#define SEAD_ASSERT_MSG(condition, format,...)
Definition seadAssert.h:33
#define SEAD_SINGLETON_DISPOSER(CLASS)
Definition seadDisposer.h:29
Definition seadFileDevice.h:83