LeviLamina
Loading...
Searching...
No Matches
FileSystem.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/file/DirectoryIterationFlags.h"
7#include "mc/deps/core/file/FileBufferingMode.h"
8#include "mc/deps/core/file/PathBuffer.h"
9#include "mc/deps/core/string/BasicStackString.h"
10#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
11#include "mc/platform/brstd/function_ref.h"
12
13// auto generated forward declare list
14// clang-format off
15namespace Core { class File; }
16namespace Core { class FileOpenMode; }
17namespace Core { class FileSizePresetToken; }
18namespace Core { class FileSystemImpl; }
19namespace Core { class PathView; }
20namespace Core { class Result; }
21namespace Core { struct DirectoryIterationItem; }
22namespace Core { struct ExcludedPath; }
23// clang-format on
24
25namespace Core {
26
28public:
29 // FileSystem inner types declare
30 // clang-format off
31 struct BasicFileData;
33 // clang-format on
34
35 // FileSystem inner types define
36 struct BasicFileData {
37 public:
38 // member variables
39 // NOLINTBEGIN
42 // NOLINTEND
43
44 public:
45 // prevent constructor by default
46 BasicFileData& operator=(BasicFileData const&);
47 BasicFileData(BasicFileData const&);
48 BasicFileData();
49
50 public:
51 // member functions
52 // NOLINTBEGIN
54 // NOLINTEND
55
56 public:
57 // destructor thunk
58 // NOLINTBEGIN
59 MCNAPI void $dtor();
60 // NOLINTEND
61 };
62
63 struct FileTransferProgress {
64 public:
65 // member variables
66 // NOLINTBEGIN
70 // NOLINTEND
71
72 public:
73 // prevent constructor by default
74 FileTransferProgress& operator=(FileTransferProgress const&);
75 FileTransferProgress(FileTransferProgress const&);
76 FileTransferProgress();
77 };
78
79public:
80 // virtual functions
81 // NOLINTBEGIN
82 virtual ::Core::Result
83 openFile(::Core::PathView, ::Core::File&, ::Core::FileOpenMode, ::Core::FileBufferingMode) = 0;
84
85 virtual bool fileExists(::Core::PathView) = 0;
86
87 virtual ::Core::Result deleteFile(::Core::PathView) = 0;
88
89 virtual ::Core::Result deleteFilePriority(::Core::PathView) = 0;
90
91 virtual ::Core::Result getFileSize(::Core::PathView, uint64*) = 0;
92
93 virtual ::Core::Result renameFile(::Core::PathView, ::Core::PathView) = 0;
94
95 virtual ::Core::Result createEmptyFile(::Core::PathView) = 0;
96
97 virtual ::Core::Result copyFile(::Core::PathView, ::Core::PathView) = 0;
98
99 virtual ::Core::Result copyFileWithLimit(::Core::PathView, ::Core::PathView) = 0;
100
101 virtual ::Core::Result readFileData(::Core::PathView, ::std::vector<uchar>&) = 0;
102
103 virtual ::Core::Result createOneDirectory(::Core::PathView) = 0;
104
105 virtual ::Core::Result createOneDirectoryIfNotExisting(::Core::PathView) = 0;
106
107 virtual ::Core::Result createDirectoryRecursively(::Core::PathView) = 0;
108
109 virtual bool directoryExists(::Core::PathView) = 0;
110
111 virtual ::Core::Result deleteEmptyDirectory(::Core::PathView) = 0;
112
113 virtual ::Core::Result deleteDirectoryAndContentsRecursively(::Core::PathView) = 0;
114
115 virtual ::Core::Result deleteDirectoryContentsRecursively(::Core::PathView) = 0;
116
117 virtual ::Core::Result renameDirectory(::Core::PathView, ::Core::PathView) = 0;
118
119 virtual ::Core::Result iterateOverDirectory(
121 ::Core::DirectoryIterationFlags,
123 ) = 0;
124
125 virtual ::Core::Result getDirectoryFiles(::std::vector<::Core::PathBuffer<::std::string>>&, ::Core::PathView) = 0;
126
127 virtual ::Core::Result
128 getDirectoryFilesAndSizes(::std::vector<::Core::FileSystem::BasicFileData>&, ::Core::PathView) = 0;
129
130 virtual ::Core::Result
131 getDirectoryFilesRecursively(::std::vector<::Core::PathBuffer<::std::string>>&, ::Core::PathView) = 0;
132
133 virtual ::Core::Result getDirectoryFilesSizeRecursively(uint64&, ::Core::PathView) = 0;
134
135 virtual ::Core::Result getDirectoryFilesAllocatedSizeRecursively(uint64&, uint64&, ::Core::PathView) = 0;
136
137 virtual ::Core::Result copyDirectoryAndContentsRecursively(::Core::PathView, ::Core::PathView) = 0;
138
139 virtual ::Core::Result copyDirectoryAndContentsRecursivelyWithLimit(::Core::PathView, ::Core::PathView) = 0;
140
141 virtual bool isDirectoryPartiallyCopied(::Core::PathView) = 0;
142
143 virtual bool fileOrDirectoryExists(::Core::PathView) = 0;
144
145 virtual ::Core::Result getFileOrDirectorySize(::Core::PathView, uint64*) = 0;
146
147 virtual ::Core::Result addIgnoredThrottlePath(::Core::PathView) = 0;
148
149 virtual ::Core::Result removeIgnoredThrottlePath(::Core::PathView) = 0;
150
151 virtual ::Core::Result isValidPath(::Core::PathView) = 0;
152
153 virtual ::Core::Result getLastModificationTime(::Core::PathView, int64*) = 0;
154
155 virtual ::Core::Result copyTimeAndAccessRights(::Core::PathView, ::Core::PathView) = 0;
156
157 virtual ::Core::Result createFlatFile(::Core::PathView, ::Core::PathView) = 0;
158
159 virtual bool isDirectoryPathAFlatFile(::Core::PathView) = 0;
160
161 virtual ::Core::Result copyFlatFile(
164 ::std::vector<::Core::ExcludedPath> const&,
165 ::std::vector<::Core::ExcludedPath> const&
166 ) = 0;
167
168 virtual ::Core::Result createDirectoryForFile(::Core::PathView) = 0;
169
170 virtual ::Core::PathBuffer<::Core::BasicStackString<char, 1024>> getUniqueFilePathForFile(::Core::PathView) = 0;
171
172 virtual ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
173 getUniqueFilePathForDirectory(::Core::PathView) = 0;
174
175 virtual ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
176 createUniquePathFromSeed(::Core::PathView, ::std::function<::std::string(int)>) = 0;
177
178 virtual ::std::vector<::Core::PathBuffer<::std::string>> splitPathIntoFullPathSegments(::Core::PathView) = 0;
179
180 virtual ::Core::Result readFileDataExt(::Core::PathView, uint64, uint64, ::std::vector<uchar>&, uint64&) = 0;
181
182 virtual ::Core::Result
184
185 virtual ::Core::Result
186 cleanPathSeparators_deprecated(::Core::PathBuffer<::Core::BasicStackString<char, 1024>>&, ::Core::PathView) = 0;
187
188 virtual bool checkStorageCorrupt(::Core::PathView) = 0;
189
190 virtual ::std::unique_ptr<::Core::FileSizePresetToken> presetFileInitialSize(::Core::PathView, uint64) = 0;
191
192 virtual ::Core::Result _getDirectoriesAndFileSizesRecursively(
194 ::std::vector<::Core::PathBuffer<::std::string>>&,
195 ::std::vector<::Core::FileSystem::BasicFileData>&
196 ) = 0;
197
198 virtual ::Core::Result _copyDirectoryStructure(
201 ::std::vector<::Core::PathBuffer<::std::string>> const&,
203 ) = 0;
204
205 virtual ::Core::Result _copyFilesWithLimit(
208 ::std::vector<::Core::FileSystem::BasicFileData>&,
209 uint64&,
210 uint64 const,
211 ::std::function<
213 ) = 0;
214
215 virtual ::Core::Result _copyFlatFile(
218 ::std::vector<::Core::ExcludedPath> const&,
219 ::std::vector<::Core::ExcludedPath> const&
220 ) = 0;
221
222 virtual ::std::optional<uint64> _checkFileInitialSize(::Core::PathView) = 0;
223
224 virtual ~FileSystem() /*override*/;
225 // NOLINTEND
226
227public:
228 // static functions
229 // NOLINTBEGIN
230 MCNAPI static ::Core::FileSystem& get();
231 // NOLINTEND
232
233public:
234 // destructor thunk
235 // NOLINTBEGIN
236 MCNAPI void $dtor();
237 // NOLINTEND
238
239public:
240 // virtual function thunks
241 // NOLINTBEGIN
242
243 // NOLINTEND
244};
245
246} // namespace Core
Definition EnableNonOwnerReferences.h:7
Definition BasicStackString.h:8
Definition FileOpenMode.h:7
Definition FileSizePresetToken.h:7
Definition FileSystemImpl.h:30
Definition FileSystem.h:27
static MCAPI ::Core::FileSystem & get()
MCAPI void $dtor()
Definition File.h:22
Definition PathBuffer.h:8
Definition PathView.h:17
Definition Result.h:11
Definition function_ref.h:60
Definition DirectoryIterationItem.h:12
Definition ExcludedPath.h:10
Definition FileSystem.h:36
Definition FileSystem.h:63
Definition Alias.h:14