sead
Loading...
Searching...
No Matches
seadAnyFileDevice.h
Go to the documentation of this file.
1#ifndef SEAD_ANY_FILEDEVICE_H_
2#define SEAD_ANY_FILEDEVICE_H_
3
4#include <container/seadPtrArray.h>
5#include <filedevice/seadFileDevice.h>
6
7namespace sead {
8
10{
12
13private:
15
16public:
17 AnyFileDevice(s32 limit_num, Heap* heap, s32 alignment = 4);
18 ~AnyFileDevice() override;
19
20 bool pushBack(FileDevice* device);
21 bool pushFront(FileDevice* device);
22 bool erase(FileDevice* device);
23
24 void traceFilePath(const SafeString& path) const override;
25 void traceDirectoryPath(const SafeString& path) const override;
26 void resolveFilePath(BufferedSafeString* out, const SafeString& path) const override;
27 void resolveDirectoryPath(BufferedSafeString* out, const SafeString& path) const override;
28
29 //? Added
30 const FileDeviceList& getFileDeviceList() const { return mFileDeviceList; }
31
32protected:
33 bool doIsAvailable_() const override;
34 u8* doLoad_(LoadArg& arg) override;
35
38
39 FileDevice* doOpen_(FileHandle* handle, const SafeString& filename, FileOpenFlag flag) override;
40 bool doClose_(FileHandle* handle) override;
41 bool doRead_(u32* read_size, FileHandle* handle, u8* buf, u32 size) override;
42 bool doWrite_(u32* write_size, FileHandle* handle, const u8* buf, u32 size) override;
43 bool doSeek_(FileHandle* handle, s32 offset, SeekOrigin origin) override;
44 bool doGetCurrentSeekPos_(u32* pos, FileHandle* handle) override;
45 bool doGetFileSize_(u32* size, const SafeString& path) override;
46 bool doGetFileSize_(u32* size, FileHandle* handle) override;
47 bool doIsExistFile_(bool* is_exist, const SafeString& path) override;
48 bool doIsExistDirectory_(bool* is_exist, const SafeString& path) override;
49 FileDevice* doOpenDirectory_(DirectoryHandle* handle, const SafeString& dirname) override;
50 bool doCloseDirectory_(DirectoryHandle* handle) override;
51 bool doReadDirectory_(u32* read_num, DirectoryHandle* handle, DirectoryEntry* entry, u32 num) override;
52 bool doMakeDirectory_(const SafeString& path, u32 permission) override;
53 bool isMatchDevice_(const HandleBase* handle) const override;
54 RawErrorCode doGetLastRawError_() const override;
55
56protected:
59};
60#ifdef cafe
61static_assert(sizeof(AnyFileDevice) == 0x64, "sead::AnyFileDevice size mismatch");
62#endif // cafe
63
64} // namespace sead
65
66#endif // SEAD_ANY_FILEDEVICE_H_
Definition seadAnyFileDevice.h:10
u8 * doLoad_(LoadArg &arg) override
Definition seadAnyFileDevice.cpp:66
bool doCloseDirectory_(DirectoryHandle *handle) override
Definition seadAnyFileDevice.cpp:192
void resolveDirectoryPath(BufferedSafeString *out, const SafeString &path) const override
Definition seadAnyFileDevice.cpp:325
FileDevice * doOpenDirectory_(DirectoryHandle *handle, const SafeString &dirname) override
Definition seadAnyFileDevice.cpp:172
bool doIsExistFile_(bool *is_exist, const SafeString &path) override
Definition seadAnyFileDevice.cpp:156
bool doIsExistDirectory_(bool *is_exist, const SafeString &path) override
Definition seadAnyFileDevice.cpp:164
FileDevice * mLastFileDevice
Definition seadAnyFileDevice.h:58
RawErrorCode doGetLastRawError_() const override
Definition seadAnyFileDevice.cpp:277
bool doMakeDirectory_(const SafeString &path, u32 permission) override
Definition seadAnyFileDevice.cpp:263
void resolveFilePath(BufferedSafeString *out, const SafeString &path) const override
Definition seadAnyFileDevice.cpp:313
bool pushBack(FileDevice *device)
Definition seadAnyFileDevice.cpp:23
bool doGetFileSize_(u32 *size, FileHandle *handle) override
Definition seadAnyFileDevice.cpp:150
AnyFileDevice(s32 limit_num, Heap *heap, s32 alignment=4)
Definition seadAnyFileDevice.cpp:11
bool doWrite_(u32 *write_size, FileHandle *handle, const u8 *buf, u32 size) override
Definition seadAnyFileDevice.cpp:122
FileDeviceList mFileDeviceList
Definition seadAnyFileDevice.h:57
void traceFilePath(const SafeString &path) const override
Definition seadAnyFileDevice.cpp:285
FileDevice * findFileDeviceByFile_(const SafeString &path) const
Definition seadAnyFileDevice.cpp:76
PtrArray< FileDevice > FileDeviceList
Definition seadAnyFileDevice.h:14
bool doGetFileSize_(u32 *size, const SafeString &path) override
Definition seadAnyFileDevice.cpp:140
~AnyFileDevice() override
Definition seadAnyFileDevice.cpp:18
bool pushFront(FileDevice *device)
Definition seadAnyFileDevice.cpp:34
const FileDeviceList & getFileDeviceList() const
Definition seadAnyFileDevice.h:30
bool doClose_(FileHandle *handle) override
Definition seadAnyFileDevice.cpp:110
bool isMatchDevice_(const HandleBase *handle) const override
Definition seadAnyFileDevice.cpp:268
bool doRead_(u32 *read_size, FileHandle *handle, u8 *buf, u32 size) override
Definition seadAnyFileDevice.cpp:116
void traceDirectoryPath(const SafeString &path) const override
Definition seadAnyFileDevice.cpp:299
bool doSeek_(FileHandle *handle, s32 offset, SeekOrigin origin) override
Definition seadAnyFileDevice.cpp:128
bool doIsAvailable_() const override
Definition seadAnyFileDevice.cpp:57
bool doReadDirectory_(u32 *read_num, DirectoryHandle *handle, DirectoryEntry *entry, u32 num) override
Definition seadAnyFileDevice.cpp:199
bool doGetCurrentSeekPos_(u32 *pos, FileHandle *handle) override
Definition seadAnyFileDevice.cpp:134
FileDevice * findFileDeviceByDirectory_(const SafeString &path) const
Definition seadAnyFileDevice.cpp:88
FileDevice * doOpen_(FileHandle *handle, const SafeString &filename, FileOpenFlag flag) override
Definition seadAnyFileDevice.cpp:100
bool erase(FileDevice *device)
Definition seadAnyFileDevice.cpp:45
Definition seadFileDevice.h:421
Definition seadFileDevice.h:56
SeekOrigin
Definition seadFileDevice.h:69
FileOpenFlag
Definition seadFileDevice.h:61
Definition seadFileDevice.h:376
Definition seadFileDevice.h:20
Definition seadHeap.h:23
Definition seadPtrArray.h:119
Definition seadAssert.h:44
s32 RawErrorCode
Definition seadFileDevice.h:14
SafeStringBase< char > SafeString
Definition seadSafeString.h:420
BufferedSafeStringBase< char > BufferedSafeString
Definition seadSafeString.h:422
#define SEAD_RTTI_OVERRIDE(CLASS, BASE)
Definition seadRuntimeTypeInfo.h:96
Definition seadFileDevice.h:443
Definition seadFileDevice.h:83