LeviLamina
Loading...
Searching...
No Matches
StandardFileSystem.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/FileSystem.h"
9#include "mc/deps/core/file/PathBuffer.h"
10#include "mc/deps/core/string/BasicStackString.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 // member variables
30 // NOLINTBEGIN
32 // NOLINTEND
33
34public:
35 // prevent constructor by default
36 StandardFileSystem& operator=(StandardFileSystem const&);
39
40public:
41 // virtual functions
42 // NOLINTBEGIN
43 // vIndex: 1
44 virtual ::Core::Result openFile(
45 ::Core::PathView filePath,
46 ::Core::File& fileOut,
47 ::Core::FileOpenMode openMode,
48 ::Core::FileBufferingMode bufferingMode
49 ) /*override*/;
50
51 // vIndex: 2
52 virtual bool fileExists(::Core::PathView filePath) /*override*/;
53
54 // vIndex: 3
55 virtual ::Core::Result deleteFile(::Core::PathView filePath) /*override*/;
56
57 // vIndex: 4
58 virtual ::Core::Result getFileSize(::Core::PathView filePath, uint64* pFileSize) /*override*/;
59
60 // vIndex: 5
61 virtual ::Core::Result renameFile(::Core::PathView sourceName, ::Core::PathView targetName) /*override*/;
62
63 // vIndex: 6
64 virtual ::Core::Result createEmptyFile(::Core::PathView filePath) /*override*/;
65
66 // vIndex: 7
67 virtual ::Core::Result copyFile(::Core::PathView sourceFileName, ::Core::PathView targetFileName) /*override*/;
68
69 // vIndex: 8
70 virtual ::Core::Result
71 copyFileWithLimit(::Core::PathView sourceFilePath, ::Core::PathView targetFilePath) /*override*/;
72
73 // vIndex: 9
74 virtual ::Core::Result readFileData(::Core::PathView filePath, ::std::vector<uchar>& data) /*override*/;
75
76 // vIndex: 10
77 virtual ::Core::Result createOneDirectory(::Core::PathView directoryPath) /*override*/;
78
79 // vIndex: 11
80 virtual ::Core::Result createOneDirectoryIfNotExisting(::Core::PathView dirName) /*override*/;
81
82 // vIndex: 12
83 virtual ::Core::Result createDirectoryRecursively(::Core::PathView dirName) /*override*/;
84
85 // vIndex: 13
86 virtual bool directoryExists(::Core::PathView dirName) /*override*/;
87
88 // vIndex: 14
89 virtual ::Core::Result deleteEmptyDirectory(::Core::PathView dirPath) /*override*/;
90
91 // vIndex: 15
92 virtual ::Core::Result deleteDirectoryAndContentsRecursively(::Core::PathView dirName) /*override*/;
93
94 // vIndex: 16
95 virtual ::Core::Result deleteDirectoryContentsRecursively(::Core::PathView directoryName) /*override*/;
96
97 // vIndex: 17
98 virtual ::Core::Result
99 renameDirectory(::Core::PathView oldDirectoryName, ::Core::PathView newDirectoryName) /*override*/;
100
101 // vIndex: 18
102 virtual ::Core::Result iterateOverDirectory(
103 ::Core::PathView dirName,
104 ::Core::DirectoryIterationFlags flags,
106 ) /*override*/;
107
108 // vIndex: 19
109 virtual ::Core::Result
110 getDirectoryFiles(::std::vector<::Core::PathBuffer<::std::string>>& files, ::Core::PathView path) /*override*/;
111
112 // vIndex: 20
113 virtual ::Core::Result getDirectoryFilesAndSizes(
114 ::std::vector<::Core::FileSystem::BasicFileData>& filesOut,
115 ::Core::PathView directoryPath
116 ) /*override*/;
117
118 // vIndex: 21
119 virtual ::Core::Result getDirectoryFilesRecursively(
120 ::std::vector<::Core::PathBuffer<::std::string>>& files,
121 ::Core::PathView directoryPath
122 ) /*override*/;
123
124 // vIndex: 22
125 virtual ::Core::Result
126 getDirectoryFilesSizeRecursively(uint64& totalSize, ::Core::PathView directoryPath) /*override*/;
127
128 // vIndex: 23
129 virtual ::Core::Result getDirectoryFilesAllocatedSizeRecursively(
130 uint64& totalSize,
131 uint64& totalAllocatedSize,
132 ::Core::PathView directoryPath
133 ) /*override*/;
134
135 // vIndex: 24
136 virtual ::Core::Result copyDirectoryAndContentsRecursively(::Core::PathView from, ::Core::PathView to) /*override*/;
137
138 // vIndex: 25
139 virtual ::Core::Result
140 copyDirectoryAndContentsRecursivelyWithLimit(::Core::PathView from, ::Core::PathView to) /*override*/;
141
142 // vIndex: 26
143 virtual bool isDirectoryPartiallyCopied(::Core::PathView directory) /*override*/;
144
145 // vIndex: 27
146 virtual bool fileOrDirectoryExists(::Core::PathView fileOrDirectoryName) /*override*/;
147
148 // vIndex: 28
149 virtual ::Core::Result getFileOrDirectorySize(::Core::PathView path, uint64* pFileSizeOut) /*override*/;
150
151 // vIndex: 29
152 virtual ::Core::Result addIgnoredThrottlePath(::Core::PathView path) /*override*/;
153
154 // vIndex: 30
155 virtual ::Core::Result removeIgnoredThrottlePath(::Core::PathView path) /*override*/;
156
157 // vIndex: 31
158 virtual ::Core::Result isValidPath(::Core::PathView path) /*override*/;
159
160 // vIndex: 32
161 virtual ::Core::Result
162 getLastModificationTime(::Core::PathView filePath, int64* pLastModificationTime) /*override*/;
163
164 // vIndex: 33
165 virtual ::Core::Result
166 copyTimeAndAccessRights(::Core::PathView sourceFilePath, ::Core::PathView targetFilePath) /*override*/;
167
168 // vIndex: 34
169 virtual ::Core::Result
170 createFlatFile(::Core::PathView sourceDirectoryPath, ::Core::PathView targetDirectoryPath) /*override*/;
171
172 // vIndex: 35
173 virtual bool isDirectoryPathAFlatFile(::Core::PathView directoryPath) /*override*/;
174
175 // vIndex: 36
176 virtual ::Core::Result copyFlatFile(
177 ::Core::PathView flatFileParentDirectory,
178 ::Core::PathView targetDirectory,
179 ::std::vector<::Core::ExcludedPath> const& excludedDirectories,
180 ::std::vector<::Core::ExcludedPath> const& excludedFiles
181 ) /*override*/;
182
183 // vIndex: 37
184 virtual ::Core::Result createDirectoryForFile(::Core::PathView filePath) /*override*/;
185
186 // vIndex: 38
187 virtual ::Core::PathBuffer<::Core::BasicStackString<char, 1024>> getUniqueFilePathForFile(::Core::PathView filePath
188 ) /*override*/;
189
190 // vIndex: 39
191 virtual ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
192 getUniqueFilePathForDirectory(::Core::PathView directoryPath) /*override*/;
193
194 // vIndex: 40
195 virtual ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
196 createUniquePathFromSeed(::Core::PathView basePath, ::std::function<::std::string(int)> seedGenerator) /*override*/;
197
198 // vIndex: 41
199 virtual ::std::vector<::Core::PathBuffer<::std::string>> splitPathIntoFullPathSegments(::Core::PathView path
200 ) /*override*/;
201
202 // vIndex: 42
203 virtual ::Core::Result readFileDataExt(
204 ::Core::PathView filePath,
205 uint64 filePosition,
206 uint64 bufferSize,
207 ::std::vector<uchar>& buffer,
208 uint64& bytesRead
209 ) /*override*/;
210
211 // vIndex: 43
212 virtual ::Core::Result cleanPath_deprecated(
214 ::Core::PathView pathIn
215 ) /*override*/;
216
217 // vIndex: 44
218 virtual ::Core::Result cleanPathSeparators_deprecated(
220 ::Core::PathView pathIn
221 ) /*override*/;
222
223 // vIndex: 45
224 virtual bool checkStorageCorrupt(::Core::PathView path) /*override*/;
225
226 // vIndex: 46
227 virtual ::std::unique_ptr<::Core::FileSizePresetToken>
228 presetFileInitialSize(::Core::PathView path, uint64 initialSize) /*override*/;
229
230 // vIndex: 47
231 virtual ::Core::Result _getDirectoriesAndFileSizesRecursively(
232 ::Core::PathView directoryPath,
233 ::std::vector<::Core::PathBuffer<::std::string>>& directoriesOut,
234 ::std::vector<::Core::FileSystem::BasicFileData>& filesOut
235 ) /*override*/;
236
237 // vIndex: 48
238 virtual ::Core::Result _copyDirectoryStructure(
239 ::Core::PathView from,
241 ::std::vector<::Core::PathBuffer<::std::string>> const& directories,
242 ::Core::FileSystemImpl* transaction
243 ) /*override*/;
244
245 // vIndex: 49
246 virtual ::Core::Result _copyFilesWithLimit(
247 ::Core::PathView from,
249 ::std::vector<::Core::FileSystem::BasicFileData>& files,
250 uint64& currentFileBytesWritten,
251 uint64 const transactionLimit,
252 ::std::function<
254 fileTransferFunction
255 ) /*override*/;
256
257 // vIndex: 50
258 virtual ::Core::Result _copyFlatFile(
259 ::Core::PathView flatFileParentDirectory,
260 ::Core::PathView targetDirectory,
261 ::std::vector<::Core::ExcludedPath> const& excludedDirectories,
262 ::std::vector<::Core::ExcludedPath> const& excludedFiles
263 ) /*override*/;
264
265 // vIndex: 51
266 virtual ::std::optional<uint64> _checkFileInitialSize(::Core::PathView path) /*override*/;
267
268 // vIndex: 0
269 virtual ~StandardFileSystem() /*override*/ = default;
270 // NOLINTEND
271
272public:
273 // destructor thunk
274 // NOLINTBEGIN
275
276 // NOLINTEND
277
278public:
279 // virtual function thunks
280 // NOLINTBEGIN
281 MCAPI ::Core::Result $openFile(
282 ::Core::PathView filePath,
283 ::Core::File& fileOut,
284 ::Core::FileOpenMode openMode,
285 ::Core::FileBufferingMode bufferingMode
286 );
287
288 MCAPI bool $fileExists(::Core::PathView filePath);
289
290 MCAPI ::Core::Result $deleteFile(::Core::PathView filePath);
291
292 MCAPI ::Core::Result $getFileSize(::Core::PathView filePath, uint64* pFileSize);
293
294 MCAPI ::Core::Result $renameFile(::Core::PathView sourceName, ::Core::PathView targetName);
295
296 MCAPI ::Core::Result $createEmptyFile(::Core::PathView filePath);
297
298 MCAPI ::Core::Result $copyFile(::Core::PathView sourceFileName, ::Core::PathView targetFileName);
299
300 MCAPI ::Core::Result $copyFileWithLimit(::Core::PathView sourceFilePath, ::Core::PathView targetFilePath);
301
302 MCAPI ::Core::Result $readFileData(::Core::PathView filePath, ::std::vector<uchar>& data);
303
304 MCAPI ::Core::Result $createOneDirectory(::Core::PathView directoryPath);
305
306 MCAPI ::Core::Result $createOneDirectoryIfNotExisting(::Core::PathView dirName);
307
308 MCAPI ::Core::Result $createDirectoryRecursively(::Core::PathView dirName);
309
310 MCAPI bool $directoryExists(::Core::PathView dirName);
311
312 MCAPI ::Core::Result $deleteEmptyDirectory(::Core::PathView dirPath);
313
314 MCAPI ::Core::Result $deleteDirectoryAndContentsRecursively(::Core::PathView dirName);
315
316 MCAPI ::Core::Result $deleteDirectoryContentsRecursively(::Core::PathView directoryName);
317
318 MCAPI ::Core::Result $renameDirectory(::Core::PathView oldDirectoryName, ::Core::PathView newDirectoryName);
319
320 MCAPI ::Core::Result $iterateOverDirectory(
321 ::Core::PathView dirName,
322 ::Core::DirectoryIterationFlags flags,
324 );
325
326 MCAPI ::Core::Result
327 $getDirectoryFiles(::std::vector<::Core::PathBuffer<::std::string>>& files, ::Core::PathView path);
328
329 MCAPI ::Core::Result $getDirectoryFilesAndSizes(
330 ::std::vector<::Core::FileSystem::BasicFileData>& filesOut,
331 ::Core::PathView directoryPath
332 );
333
334 MCAPI ::Core::Result $getDirectoryFilesRecursively(
335 ::std::vector<::Core::PathBuffer<::std::string>>& files,
336 ::Core::PathView directoryPath
337 );
338
339 MCAPI ::Core::Result $getDirectoryFilesSizeRecursively(uint64& totalSize, ::Core::PathView directoryPath);
340
341 MCAPI ::Core::Result $getDirectoryFilesAllocatedSizeRecursively(
342 uint64& totalSize,
343 uint64& totalAllocatedSize,
344 ::Core::PathView directoryPath
345 );
346
347 MCAPI ::Core::Result $copyDirectoryAndContentsRecursively(::Core::PathView from, ::Core::PathView to);
348
349 MCAPI ::Core::Result $copyDirectoryAndContentsRecursivelyWithLimit(::Core::PathView from, ::Core::PathView to);
350
351 MCAPI bool $isDirectoryPartiallyCopied(::Core::PathView directory);
352
353 MCAPI bool $fileOrDirectoryExists(::Core::PathView fileOrDirectoryName);
354
355 MCAPI ::Core::Result $getFileOrDirectorySize(::Core::PathView path, uint64* pFileSizeOut);
356
357 MCAPI ::Core::Result $addIgnoredThrottlePath(::Core::PathView path);
358
359 MCAPI ::Core::Result $removeIgnoredThrottlePath(::Core::PathView path);
360
361 MCAPI ::Core::Result $isValidPath(::Core::PathView path);
362
363 MCAPI ::Core::Result $getLastModificationTime(::Core::PathView filePath, int64* pLastModificationTime);
364
365 MCAPI ::Core::Result $copyTimeAndAccessRights(::Core::PathView sourceFilePath, ::Core::PathView targetFilePath);
366
367 MCAPI ::Core::Result $createFlatFile(::Core::PathView sourceDirectoryPath, ::Core::PathView targetDirectoryPath);
368
369 MCAPI bool $isDirectoryPathAFlatFile(::Core::PathView directoryPath);
370
371 MCAPI ::Core::Result $copyFlatFile(
372 ::Core::PathView flatFileParentDirectory,
373 ::Core::PathView targetDirectory,
374 ::std::vector<::Core::ExcludedPath> const& excludedDirectories,
375 ::std::vector<::Core::ExcludedPath> const& excludedFiles
376 );
377
378 MCAPI ::Core::Result $createDirectoryForFile(::Core::PathView filePath);
379
380 MCAPI ::Core::PathBuffer<::Core::BasicStackString<char, 1024>> $getUniqueFilePathForFile(::Core::PathView filePath);
381
382 MCAPI ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
383 $getUniqueFilePathForDirectory(::Core::PathView directoryPath);
384
385 MCAPI ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
386 $createUniquePathFromSeed(::Core::PathView basePath, ::std::function<::std::string(int)> seedGenerator);
387
388 MCAPI ::std::vector<::Core::PathBuffer<::std::string>> $splitPathIntoFullPathSegments(::Core::PathView path);
389
390 MCAPI ::Core::Result $readFileDataExt(
391 ::Core::PathView filePath,
392 uint64 filePosition,
393 uint64 bufferSize,
394 ::std::vector<uchar>& buffer,
395 uint64& bytesRead
396 );
397
398 MCAPI ::Core::Result $cleanPath_deprecated(
400 ::Core::PathView pathIn
401 );
402
403 MCAPI ::Core::Result $cleanPathSeparators_deprecated(
405 ::Core::PathView pathIn
406 );
407
408 MCAPI bool $checkStorageCorrupt(::Core::PathView path);
409
410 MCAPI ::std::unique_ptr<::Core::FileSizePresetToken>
411 $presetFileInitialSize(::Core::PathView path, uint64 initialSize);
412
413 MCAPI ::Core::Result $_getDirectoriesAndFileSizesRecursively(
414 ::Core::PathView directoryPath,
415 ::std::vector<::Core::PathBuffer<::std::string>>& directoriesOut,
416 ::std::vector<::Core::FileSystem::BasicFileData>& filesOut
417 );
418
419 MCAPI ::Core::Result $_copyDirectoryStructure(
420 ::Core::PathView from,
422 ::std::vector<::Core::PathBuffer<::std::string>> const& directories,
423 ::Core::FileSystemImpl* transaction
424 );
425
426 MCAPI ::Core::Result $_copyFilesWithLimit(
427 ::Core::PathView from,
429 ::std::vector<::Core::FileSystem::BasicFileData>& files,
430 uint64& currentFileBytesWritten,
431 uint64 const transactionLimit,
432 ::std::function<
434 fileTransferFunction
435 );
436
437 MCAPI ::Core::Result $_copyFlatFile(
438 ::Core::PathView flatFileParentDirectory,
439 ::Core::PathView targetDirectory,
440 ::std::vector<::Core::ExcludedPath> const& excludedDirectories,
441 ::std::vector<::Core::ExcludedPath> const& excludedFiles
442 );
443
444 MCAPI ::std::optional<uint64> $_checkFileInitialSize(::Core::PathView path);
445 // NOLINTEND
446
447public:
448 // vftables
449 // NOLINTBEGIN
450 MCAPI static void** $vftable();
451 // NOLINTEND
452};
453
454} // namespace Core
Definition BasicStackString.h:8
Definition FileOpenMode.h:7
Definition FileSystemImpl.h:31
Definition FileSystem.h:27
Definition File.h:19
Definition PathBuffer.h:8
Definition PathView.h:16
Definition Result.h:17
Definition StandardFileSystem.h:27
Definition Result.h:6
Definition function_ref.h:60
Definition DirectoryIterationItem.h:15
Definition FileSystem.h:71
Definition buffer.h:5
Definition Alias.h:14