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