sead
Loading...
Searching...
No Matches
seadCafeSaveFileDeviceCafe.h
Go to the documentation of this file.
1#ifndef SEAD_CAFE_SAVE_FILEDEVICE_H_
2#define SEAD_CAFE_SAVE_FILEDEVICE_H_
3
4#include <filedevice/seadFileDevice.h>
5
6#include <cafe/fs.h>
7#include <nn/save.h>
8
9namespace sead {
10
12{
13public:
14 CafeSaveFileDevice(u8 account_slot_no);
15 virtual ~CafeSaveFileDevice() { }
16
18
19public:
21 {
22 return mAccountSlotNo;
23 }
24
25 void setFSClient(FSClient* client)
26 {
27 mFSClient = client;
28 }
29
31 {
32 return mFSClient;
33 }
34
35 bool tryInitSaveDir();
36 bool tryGetFreeSpaceSize(FSFreeSpaceSize* free_space_size);
37 bool tryDelete(const SafeString& path);
38 bool tryRename(const SafeString& old_path, const SafeString& new_path);
39 bool tryFlush();
40 bool tryRollback();
41
42protected:
43 bool doIsAvailable_() const override
44 {
45 return true;
46 }
47
48 FileDevice* doOpen_(FileHandle* handle, const SafeString& filename, FileOpenFlag flag) override;
49 bool doClose_(FileHandle* handle) override;
50 bool doRead_(u32* read_size, FileHandle* handle, u8* buf, u32 size) override;
51 bool doWrite_(u32* write_size, FileHandle* handle, const u8* buf, u32 size) override;
52 bool doSeek_(FileHandle* handle, s32 offset, SeekOrigin origin) override;
53 bool doGetCurrentSeekPos_(u32* pos, FileHandle* handle) override;
54 bool doGetFileSize_(u32* size, const SafeString& path) override;
55 bool doGetFileSize_(u32* size, FileHandle* handle) override;
56 bool doIsExistFile_(bool* is_exist, const SafeString& path) override;
57 bool doIsExistDirectory_(bool* is_exist, const SafeString& path) override;
58 FileDevice* doOpenDirectory_(DirectoryHandle* handle, const SafeString& dirname) override;
59 bool doCloseDirectory_(DirectoryHandle* handle) override;
60 bool doReadDirectory_(u32* read_num, DirectoryHandle* handle, DirectoryEntry* entry, u32 num) override;
61 bool doMakeDirectory_(const SafeString& path, u32 permission) override;
62 RawErrorCode doGetLastRawError_() const override;
63 void doResolvePath_(BufferedSafeString* out, const SafeString& path) const override;
64
66
67protected:
73
78
79protected:
82
83protected:
90};
91static_assert(sizeof(CafeSaveFileDevice) == 0x6C, "sead::CafeSaveFileDevice size mismatch");
92
93} // namespace sead
94
95#endif // SEAD_CAFE_SAVE_FILEDEVICE_H_
Definition seadCafeSaveFileDeviceCafe.h:12
bool tryGetFreeSpaceSize(FSFreeSpaceSize *free_space_size)
Definition seadCafeSaveFileDeviceCafe.cpp:28
virtual ~CafeSaveFileDevice()
Definition seadCafeSaveFileDeviceCafe.h:15
FileHandleInner * getFileHandleInner_(FileHandle *handle)
Definition seadCafeSaveFileDeviceCafe.cpp:375
CafeSaveFileDevice(u8 account_slot_no)
Definition seadCafeSaveFileDeviceCafe.cpp:6
bool doGetFileSize_(u32 *size, const SafeString &path) override
Definition seadCafeSaveFileDeviceCafe.cpp:225
bool doGetFileSize_(u32 *size, FileHandle *handle) override
Definition seadCafeSaveFileDeviceCafe.cpp:238
u8 mAccountSlotNo
Definition seadCafeSaveFileDeviceCafe.h:89
DirHandleInner * getDirHandleInner_(DirectoryHandle *handle)
Definition seadCafeSaveFileDeviceCafe.cpp:380
FSClient * getUsableFSClient_() const
Definition seadCafeSaveFileDeviceCafe.cpp:390
FileDevice * doOpen_(FileHandle *handle, const SafeString &filename, FileOpenFlag flag) override
Definition seadCafeSaveFileDeviceCafe.cpp:92
bool tryInitSaveDir()
Definition seadCafeSaveFileDeviceCafe.cpp:21
RawErrorCode doGetLastRawError_() const override
Definition seadCafeSaveFileDeviceCafe.cpp:370
bool doGetCurrentSeekPos_(u32 *pos, FileHandle *handle) override
Definition seadCafeSaveFileDeviceCafe.cpp:218
bool doCloseDirectory_(DirectoryHandle *handle) override
Definition seadCafeSaveFileDeviceCafe.cpp:318
FileDevice * doOpenDirectory_(DirectoryHandle *handle, const SafeString &dirname) override
Definition seadCafeSaveFileDeviceCafe.cpp:300
bool doIsAvailable_() const override
Definition seadCafeSaveFileDeviceCafe.h:43
FSClient * mFSClient
Definition seadCafeSaveFileDeviceCafe.h:88
FSRetFlag mFSCloseRetFlag
Definition seadCafeSaveFileDeviceCafe.h:86
bool doClose_(FileHandle *handle) override
Definition seadCafeSaveFileDeviceCafe.cpp:127
bool tryFlush()
Definition seadCafeSaveFileDeviceCafe.cpp:70
FSClient * getFSClient() const
Definition seadCafeSaveFileDeviceCafe.h:30
bool doWrite_(u32 *write_size, FileHandle *handle, const u8 *buf, u32 size) override
Definition seadCafeSaveFileDeviceCafe.cpp:160
void doResolvePath_(BufferedSafeString *out, const SafeString &path) const override
Definition seadCafeSaveFileDeviceCafe.cpp:385
void setFSClient(FSClient *client)
Definition seadCafeSaveFileDeviceCafe.h:25
bool doSeek_(FileHandle *handle, s32 offset, SeekOrigin origin) override
Definition seadCafeSaveFileDeviceCafe.cpp:183
bool doRead_(u32 *read_size, FileHandle *handle, u8 *buf, u32 size) override
Definition seadCafeSaveFileDeviceCafe.cpp:137
bool tryRename(const SafeString &old_path, const SafeString &new_path)
Definition seadCafeSaveFileDeviceCafe.cpp:54
bool doIsExistFile_(bool *is_exist, const SafeString &path) override
Definition seadCafeSaveFileDeviceCafe.cpp:252
bool tryDelete(const SafeString &path)
Definition seadCafeSaveFileDeviceCafe.cpp:38
FSRetFlag mFSOpenRetFlag
Definition seadCafeSaveFileDeviceCafe.h:85
bool doMakeDirectory_(const SafeString &path, u32 permission) override
Definition seadCafeSaveFileDeviceCafe.cpp:355
FSRetFlag mFSReadRetFlag
Definition seadCafeSaveFileDeviceCafe.h:87
bool doReadDirectory_(u32 *read_num, DirectoryHandle *handle, DirectoryEntry *entry, u32 num) override
Definition seadCafeSaveFileDeviceCafe.cpp:329
bool tryRollback()
Definition seadCafeSaveFileDeviceCafe.cpp:80
bool doIsExistDirectory_(bool *is_exist, const SafeString &path) override
Definition seadCafeSaveFileDeviceCafe.cpp:276
u8 getAccountSlotNo() const
Definition seadCafeSaveFileDeviceCafe.h:20
SAVEStatus mLastRawError
Definition seadCafeSaveFileDeviceCafe.h:84
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:420
BufferedSafeStringBase< char > BufferedSafeString
Definition seadSafeString.h:422
#define SEAD_RTTI_OVERRIDE(CLASS, BASE)
Definition seadRuntimeTypeInfo.h:96
Definition seadCafeSaveFileDeviceCafe.h:75
FSDirHandle mHandle
Definition seadCafeSaveFileDeviceCafe.h:76
Definition seadCafeSaveFileDeviceCafe.h:69
FSFileHandle mHandle
Definition seadCafeSaveFileDeviceCafe.h:70
FSFilePosition mPosition
Definition seadCafeSaveFileDeviceCafe.h:71
Definition seadFileDevice.h:443