sead
Loading...
Searching...
No Matches
seadMainFileDevice.h
Go to the documentation of this file.
1#ifndef SEAD_MAIN_FILEDEVICE_H_
2#define SEAD_MAIN_FILEDEVICE_H_
3
4#include <filedevice/seadFileDevice.h>
5#include <prim/seadRuntimeTypeInfo.h>
6#include <prim/seadSafeString.h>
7
8namespace sead {
9
11{
13
14public:
15 MainFileDevice(Heap* heap);
16 virtual ~MainFileDevice();
17
18 void traceFilePath(const SafeString& path) const override;
19 void traceDirectoryPath(const SafeString& path) const override;
20 void resolveFilePath(BufferedSafeString* out, const SafeString& path) const override;
21 void resolveDirectoryPath(BufferedSafeString* out, const SafeString& path) const override;
22
23protected:
24 bool doIsAvailable_() const override
25 {
27 }
28
29 FileDevice* doOpen_(FileHandle* handle, const SafeString& filename, FileOpenFlag flag) override
30 {
31 return mFileDevice->tryOpen(handle, filename, flag, handle->getDivSize());
32 }
33
34 bool doClose_(FileHandle* handle) override
35 {
36 return mFileDevice->tryClose(handle);
37 }
38
39 bool doRead_(u32* read_size, FileHandle* handle, u8* buf, u32 size) override
40 {
41 return mFileDevice->tryRead(read_size, handle, buf, size);
42 }
43
44 bool doWrite_(u32* write_size, FileHandle* handle, const u8* buf, u32 size) override
45 {
46 return mFileDevice->tryWrite(write_size, handle, buf, size);
47 }
48
49 bool doSeek_(FileHandle* handle, s32 offset, SeekOrigin origin) override
50 {
51 return mFileDevice->trySeek(handle, offset, origin);
52 }
53
54 bool doGetCurrentSeekPos_(u32* pos, FileHandle* handle) override
55 {
56 return mFileDevice->tryGetCurrentSeekPos(pos, handle);
57 }
58
59 bool doGetFileSize_(u32* size, const SafeString& path) override
60 {
61 return mFileDevice->tryGetFileSize(size, path);
62 }
63
64 bool doGetFileSize_(u32* size, FileHandle* handle) override
65 {
66 return mFileDevice->tryGetFileSize(size, handle);
67 }
68
69 bool doIsExistFile_(bool* is_exist, const SafeString& path) override
70 {
71 return mFileDevice->tryIsExistFile(is_exist, path);
72 }
73
74 bool doIsExistDirectory_(bool* is_exist, const SafeString& path) override
75 {
76 return mFileDevice->tryIsExistDirectory(is_exist, path);
77 }
78
79 FileDevice* doOpenDirectory_(DirectoryHandle* handle, const SafeString& dirname) override
80 {
81 return mFileDevice->tryOpenDirectory(handle, dirname);
82 }
83
84 bool doCloseDirectory_(DirectoryHandle* handle) override
85 {
87 }
88
89 bool doReadDirectory_(u32* read_num, DirectoryHandle* handle, DirectoryEntry* entry, u32 num) override
90 {
91 return mFileDevice->tryReadDirectory(read_num, handle, entry, num);
92 }
93
94 bool doMakeDirectory_(const SafeString& path, u32 permission) override
95 {
96 return mFileDevice->tryMakeDirectory(path, permission);
97 }
98
99 bool isMatchDevice_(const HandleBase* handle) const override
100 {
102 }
103
105 {
107 }
108
109protected:
111};
112#ifdef cafe
113static_assert(sizeof(MainFileDevice) == 0x58, "sead::MainFileDevice size mismatch");
114#endif // cafe
115
116} // namespace sead
117
118#endif // SEAD_MAIN_FILEDEVICE_H_
Definition seadFileDevice.h:421
Definition seadFileDevice.h:56
SeekOrigin
Definition seadFileDevice.h:69
bool tryClose(FileHandle *handle)
Definition seadFileDevice.cpp:168
bool tryIsExistDirectory(bool *is_exist, const SafeString &path)
Definition seadFileDevice.cpp:416
bool tryIsExistFile(bool *is_exist, const SafeString &path)
Definition seadFileDevice.cpp:397
RawErrorCode getLastRawError() const
Definition seadFileDevice.cpp:539
virtual bool isMatchDevice_(const HandleBase *handle) const
Definition seadFileDevice.cpp:36
bool isAvailable() const
Definition seadFileDevice.cpp:121
bool tryCloseDirectory(DirectoryHandle *handle)
Definition seadFileDevice.cpp:459
FileOpenFlag
Definition seadFileDevice.h:61
FileDevice * tryOpenDirectory(DirectoryHandle *handle, const SafeString &dirname)
Definition seadFileDevice.cpp:435
Definition seadFileDevice.h:376
Definition seadFileDevice.h:20
Definition seadHeap.h:23
Definition seadMainFileDevice.h:11
bool isMatchDevice_(const HandleBase *handle) const override
Definition seadMainFileDevice.h:99
bool doIsAvailable_() const override
Definition seadMainFileDevice.h:24
void traceFilePath(const SafeString &path) const override
Definition seadMainFileDevice.cpp:34
bool doRead_(u32 *read_size, FileHandle *handle, u8 *buf, u32 size) override
Definition seadMainFileDevice.h:39
bool doClose_(FileHandle *handle) override
Definition seadMainFileDevice.h:34
bool doIsExistDirectory_(bool *is_exist, const SafeString &path) override
Definition seadMainFileDevice.h:74
void traceDirectoryPath(const SafeString &path) const override
Definition seadMainFileDevice.cpp:42
bool doGetFileSize_(u32 *size, FileHandle *handle) override
Definition seadMainFileDevice.h:64
bool doWrite_(u32 *write_size, FileHandle *handle, const u8 *buf, u32 size) override
Definition seadMainFileDevice.h:44
RawErrorCode doGetLastRawError_() const override
Definition seadMainFileDevice.h:104
bool doGetCurrentSeekPos_(u32 *pos, FileHandle *handle) override
Definition seadMainFileDevice.h:54
bool doSeek_(FileHandle *handle, s32 offset, SeekOrigin origin) override
Definition seadMainFileDevice.h:49
bool doCloseDirectory_(DirectoryHandle *handle) override
Definition seadMainFileDevice.h:84
FileDevice * mFileDevice
Definition seadMainFileDevice.h:110
bool doMakeDirectory_(const SafeString &path, u32 permission) override
Definition seadMainFileDevice.h:94
bool doReadDirectory_(u32 *read_num, DirectoryHandle *handle, DirectoryEntry *entry, u32 num) override
Definition seadMainFileDevice.h:89
FileDevice * doOpen_(FileHandle *handle, const SafeString &filename, FileOpenFlag flag) override
Definition seadMainFileDevice.h:29
virtual ~MainFileDevice()
Definition seadMainFileDevice.cpp:24
bool doIsExistFile_(bool *is_exist, const SafeString &path) override
Definition seadMainFileDevice.h:69
bool doGetFileSize_(u32 *size, const SafeString &path) override
Definition seadMainFileDevice.h:59
MainFileDevice(Heap *heap)
Definition seadMainFileDevice.cpp:11
FileDevice * doOpenDirectory_(DirectoryHandle *handle, const SafeString &dirname) override
Definition seadMainFileDevice.h:79
void resolveFilePath(BufferedSafeString *out, const SafeString &path) const override
Definition seadMainFileDevice.cpp:50
void resolveDirectoryPath(BufferedSafeString *out, const SafeString &path) const override
Definition seadMainFileDevice.cpp:58
Definition seadAssert.h:44
s32 RawErrorCode
Definition seadFileDevice.h:14
SafeStringBase< char > SafeString
Definition seadSafeString.h:409
BufferedSafeStringBase< char > BufferedSafeString
Definition seadSafeString.h:411
#define SEAD_RTTI_OVERRIDE(CLASS, BASE)
Definition seadRuntimeTypeInfo.h:96
Definition seadFileDevice.h:443