sead
Loading...
Searching...
No Matches
seadCafeFSAFileDeviceCafe.h
Go to the documentation of this file.
1#ifndef SEAD_CAFE_FSA_FILEDEVICE_H_
2#define SEAD_CAFE_FSA_FILEDEVICE_H_
3
4#include <cafe.h>
5
6#include <filedevice/seadFileDevice.h>
7#include <prim/seadRuntimeTypeInfo.h>
8#include <prim/seadSafeString.h>
9
10namespace sead {
11
13{
15
16public:
17 CafeFSAFileDevice(const SafeString& default_drive_name, const SafeString& cwd_path);
18 virtual ~CafeFSAFileDevice() { }
19
20 void changeDir(const char* path)
21 {
22 mCWDPath = SafeString(path).cstr();
23 }
24
25 const char* getCWD()
26 {
27 return mCWDPath;
28 }
29
30 static bool setCurrentDirectory(const SafeString& path);
31
32protected:
33 virtual bool doIsAvailable_() const
34 {
35 return true;
36 }
37
38 virtual FileDevice* doOpen_(FileHandle* handle, const SafeString& filename, FileOpenFlag flag);
39 virtual bool doClose_(FileHandle* handle);
40 virtual bool doRead_(u32* read_size, FileHandle* handle, u8* buf, u32 size);
41 virtual bool doWrite_(u32* write_size, FileHandle* handle, const u8* buf, u32 size);
42 virtual bool doSeek_(FileHandle* handle, s32 offset, SeekOrigin origin);
43 virtual bool doGetCurrentSeekPos_(u32* pos, FileHandle* handle);
44 virtual bool doGetFileSize_(u32* size, const SafeString& path);
45 virtual bool doGetFileSize_(u32* size, FileHandle* handle);
46 virtual bool doIsExistFile_(bool* is_exist, const SafeString& path);
47 virtual bool doIsExistDirectory_(bool* is_exist, const SafeString& path);
48 virtual FileDevice* doOpenDirectory_(DirectoryHandle* handle, const SafeString& dirname);
49 virtual bool doCloseDirectory_(DirectoryHandle* handle);
50 virtual bool doReadDirectory_(u32* read_num, DirectoryHandle* handle, DirectoryEntry* entry, u32 num);
51 virtual bool doMakeDirectory_(const SafeString& path, u32 permission);
52 virtual RawErrorCode doGetLastRawError_() const;
53 virtual void doResolvePath_(BufferedSafeString* out, const SafeString& path) const;
54 virtual void formatPathForFSA_(BufferedSafeString* out, const SafeString& path) const;
55
57
58protected:
64
69
70protected:
73
74protected:
75 const char* mCWDPath;
81};
82static_assert(sizeof(CafeFSAFileDevice) == 0x6C, "sead::CafeFSAFileDevice size mismatch");
83
92
101
103{
105
106public:
108 virtual ~CafeHostIOFileDevice() { }
109
110protected:
111 virtual void formatPathForFSA_(BufferedSafeString* out, const SafeString& path) const;
112
113 void convertPathWinToFSA_(char*, u32, const char*) const;
114};
115
117{
119
120public:
123
124protected:
125 virtual void formatPathForFSA_(BufferedSafeString* out, const SafeString& path) const;
126};
127
128} // namespace sead
129
130#endif // SEAD_CAFE_FSA_FILEDEVICE_H_
Definition seadCafeFSAFileDeviceCafe.h:85
CafeContentFileDevice()
Definition seadCafeFSAFileDeviceCafe.cpp:466
virtual ~CafeContentFileDevice()
Definition seadCafeFSAFileDeviceCafe.h:90
Definition seadCafeFSAFileDeviceCafe.h:13
CafeFSAFileDevice(const SafeString &default_drive_name, const SafeString &cwd_path)
Definition seadCafeFSAFileDeviceCafe.cpp:10
virtual FileDevice * doOpenDirectory_(DirectoryHandle *handle, const SafeString &dirname)
Definition seadCafeFSAFileDeviceCafe.cpp:323
void changeDir(const char *path)
Definition seadCafeFSAFileDeviceCafe.h:20
FSStatus mLastRawError
Definition seadCafeFSAFileDeviceCafe.h:76
virtual bool doSeek_(FileHandle *handle, s32 offset, SeekOrigin origin)
Definition seadCafeFSAFileDeviceCafe.cpp:164
DirHandleInner * getDirHandleInner_(DirectoryHandle *handle)
Definition seadCafeFSAFileDeviceCafe.cpp:459
virtual FileDevice * doOpen_(FileHandle *handle, const SafeString &filename, FileOpenFlag flag)
Definition seadCafeFSAFileDeviceCafe.cpp:41
FSRetFlag mFSOpenRetFlag
Definition seadCafeFSAFileDeviceCafe.h:77
virtual void formatPathForFSA_(BufferedSafeString *out, const SafeString &path) const
Definition seadCafeFSAFileDeviceCafe.cpp:436
FSRetFlag mFSReadRetFlag
Definition seadCafeFSAFileDeviceCafe.h:79
virtual bool doGetFileSize_(u32 *size, const SafeString &path)
Definition seadCafeFSAFileDeviceCafe.cpp:217
virtual ~CafeFSAFileDevice()
Definition seadCafeFSAFileDeviceCafe.h:18
virtual RawErrorCode doGetLastRawError_() const
Definition seadCafeFSAFileDeviceCafe.cpp:422
FSClient * getUsableFSClient_() const
Definition seadCafeFSAFileDeviceCafe.cpp:444
const char * getCWD()
Definition seadCafeFSAFileDeviceCafe.h:25
virtual bool doGetCurrentSeekPos_(u32 *pos, FileHandle *handle)
Definition seadCafeFSAFileDeviceCafe.cpp:207
virtual bool doMakeDirectory_(const SafeString &path, u32 permission)
Definition seadCafeFSAFileDeviceCafe.cpp:402
virtual bool doWrite_(u32 *write_size, FileHandle *handle, const u8 *buf, u32 size)
Definition seadCafeFSAFileDeviceCafe.cpp:134
virtual bool doCloseDirectory_(DirectoryHandle *handle)
Definition seadCafeFSAFileDeviceCafe.cpp:346
FSClient * mFSClient
Definition seadCafeFSAFileDeviceCafe.h:80
virtual bool doIsAvailable_() const
Definition seadCafeFSAFileDeviceCafe.h:33
const char * mCWDPath
Definition seadCafeFSAFileDeviceCafe.h:75
virtual bool doRead_(u32 *read_size, FileHandle *handle, u8 *buf, u32 size)
Definition seadCafeFSAFileDeviceCafe.cpp:104
virtual bool doGetFileSize_(u32 *size, FileHandle *handle)
Definition seadCafeFSAFileDeviceCafe.cpp:240
FileHandleInner * getFileHandleInner_(FileHandle *handle)
Definition seadCafeFSAFileDeviceCafe.cpp:452
virtual bool doClose_(FileHandle *handle)
Definition seadCafeFSAFileDeviceCafe.cpp:88
static bool setCurrentDirectory(const SafeString &path)
Definition seadCafeFSAFileDeviceCafe.cpp:26
FSRetFlag mFSCloseRetFlag
Definition seadCafeFSAFileDeviceCafe.h:78
virtual void doResolvePath_(BufferedSafeString *out, const SafeString &path) const
Definition seadCafeFSAFileDeviceCafe.cpp:428
virtual bool doIsExistFile_(bool *is_exist, const SafeString &path)
Definition seadCafeFSAFileDeviceCafe.cpp:261
virtual bool doReadDirectory_(u32 *read_num, DirectoryHandle *handle, DirectoryEntry *entry, u32 num)
Definition seadCafeFSAFileDeviceCafe.cpp:364
virtual bool doIsExistDirectory_(bool *is_exist, const SafeString &path)
Definition seadCafeFSAFileDeviceCafe.cpp:292
Definition seadCafeFSAFileDeviceCafe.h:117
virtual ~CafeFSNativePathFileDevice()
Definition seadCafeFSAFileDeviceCafe.h:122
CafeFSNativePathFileDevice()
Definition seadCafeFSAFileDeviceCafe.cpp:471
virtual void formatPathForFSA_(BufferedSafeString *out, const SafeString &path) const
Definition seadCafeFSAFileDeviceCafe.cpp:476
Definition seadCafeFSAFileDeviceCafe.h:103
virtual ~CafeHostIOFileDevice()
Definition seadCafeFSAFileDeviceCafe.h:108
virtual void formatPathForFSA_(BufferedSafeString *out, const SafeString &path) const
void convertPathWinToFSA_(char *, u32, const char *) const
Definition seadCafeFSAFileDeviceCafe.h:94
virtual ~CafeSDFileDevice()
Definition seadCafeFSAFileDeviceCafe.h:99
Definition seadFileDevice.h:421
Definition seadFileDevice.h:56
SeekOrigin
Definition seadFileDevice.h:69
FileOpenFlag
Definition seadFileDevice.h:61
Definition seadFileDevice.h:376
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 seadCafeFSAFileDeviceCafe.h:66
FSDirHandle mHandle
Definition seadCafeFSAFileDeviceCafe.h:67
Definition seadCafeFSAFileDeviceCafe.h:60
FSFilePosition mPosition
Definition seadCafeFSAFileDeviceCafe.h:62
FSFileHandle mHandle
Definition seadCafeFSAFileDeviceCafe.h:61
Definition seadFileDevice.h:443