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