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/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
29public:
30 // FileSystem inner types declare
31 // clang-format off
32 struct BasicFileData;
34 // clang-format on
35
36 // FileSystem inner types define
37 struct BasicFileData {
38 public:
39 // member variables
40 // NOLINTBEGIN
43 // NOLINTEND
44
45 public:
46 // prevent constructor by default
47 BasicFileData& operator=(BasicFileData const&);
48 BasicFileData(BasicFileData const&);
49 BasicFileData();
50
51 public:
52 // member functions
53 // NOLINTBEGIN
55 // NOLINTEND
56
57 public:
58 // destructor thunk
59 // NOLINTBEGIN
60 MCNAPI void $dtor();
61 // NOLINTEND
62 };
63
64 struct FileTransferProgress {
65 public:
66 // member variables
67 // NOLINTBEGIN
71 // NOLINTEND
72
73 public:
74 // prevent constructor by default
75 FileTransferProgress& operator=(FileTransferProgress const&);
76 FileTransferProgress(FileTransferProgress const&);
77 FileTransferProgress();
78 };
79
80public:
81 // virtual functions
82 // NOLINTBEGIN
83 virtual ::Core::Result openFile(
84 ::Core::PathView filePath,
85 ::Core::File& fileOut,
86 ::Core::FileOpenMode openMode,
87 ::Core::FileBufferingMode bufferingMode
88 ) = 0;
89
90 virtual bool fileExists(::Core::PathView filePath) = 0;
91
92 virtual ::Core::Result deleteFile(::Core::PathView filePath) = 0;
93
94 virtual ::Core::Result deleteFilePriority(::Core::PathView filePath) = 0;
95
96 virtual ::Core::Result getFileSize(::Core::PathView filePath, uint64* pFileSize) = 0;
97
98 virtual ::Core::Result renameFile(::Core::PathView sourceName, ::Core::PathView targetName) = 0;
99
100 virtual ::Core::Result createEmptyFile(::Core::PathView filePath) = 0;
101
102 virtual ::Core::Result copyFile(::Core::PathView sourceFileName, ::Core::PathView targetFileName) = 0;
103
104 virtual ::Core::Result copyFileWithLimit(::Core::PathView sourceFilePath, ::Core::PathView targetFilePath) = 0;
105
106 virtual ::Core::Result readFileData(::Core::PathView filePath, ::std::vector<uchar>& data) = 0;
107
108 virtual ::Bedrock::Result<::std::string> readFile(::Core::PathView filePath) = 0;
109
110 virtual ::Bedrock::Result<void> writeFile(::Core::PathView filePath, ::std::string_view data) = 0;
111
112 virtual ::Core::Result createOneDirectory(::Core::PathView directoryPath) = 0;
113
114 virtual ::Core::Result createOneDirectoryIfNotExisting(::Core::PathView dirName) = 0;
115
116 virtual ::Core::Result createDirectoryRecursively(::Core::PathView dirName) = 0;
117
118 virtual bool directoryExists(::Core::PathView dirName) = 0;
119
120 virtual ::Core::Result deleteEmptyDirectory(::Core::PathView dirPath) = 0;
121
122 virtual ::Core::Result deleteDirectoryAndContentsRecursively(::Core::PathView dirName) = 0;
123
124 virtual ::Core::Result deleteDirectoryContentsRecursively(::Core::PathView directoryName) = 0;
125
126 virtual ::Core::Result renameDirectory(::Core::PathView oldDirectoryName, ::Core::PathView newDirectoryName) = 0;
127
128 virtual ::Core::Result iterateOverDirectory(
129 ::Core::PathView dirName,
130 ::Core::DirectoryIterationFlags flags,
132 ) = 0;
133
134 virtual ::Core::Result
135 getDirectoryFiles(::std::vector<::Core::PathBuffer<::std::string>>& files, ::Core::PathView path) = 0;
136
137 virtual ::Core::Result getDirectoryFilesAndSizes(
138 ::std::vector<::Core::FileSystem::BasicFileData>& filesOut,
139 ::Core::PathView directoryPath
140 ) = 0;
141
142 virtual ::Core::Result getDirectoryFilesRecursively(
143 ::std::vector<::Core::PathBuffer<::std::string>>& files,
144 ::Core::PathView directoryPath
145 ) = 0;
146
147 virtual ::Core::Result getDirectoryFilesSizeRecursively(uint64& totalSize, ::Core::PathView directoryPath) = 0;
148
149 virtual ::Core::Result getDirectoryFilesAllocatedSizeRecursively(
150 uint64& totalSize,
151 uint64& totalAllocatedSize,
152 ::Core::PathView directoryPath
153 ) = 0;
154
155 virtual ::Core::Result copyDirectoryAndContentsRecursively(::Core::PathView from, ::Core::PathView to) = 0;
156
157 virtual ::Core::Result copyDirectoryAndContentsRecursivelyWithLimit(::Core::PathView from, ::Core::PathView to) = 0;
158
159 virtual bool isDirectoryPartiallyCopied(::Core::PathView directory) = 0;
160
161 virtual bool fileOrDirectoryExists(::Core::PathView fileOrDirectoryName) = 0;
162
163 virtual ::Core::Result getFileOrDirectorySize(::Core::PathView path, uint64* pFileSizeOut) = 0;
164
165 virtual ::Core::Result addIgnoredThrottlePath(::Core::PathView path) = 0;
166
167 virtual ::Core::Result removeIgnoredThrottlePath(::Core::PathView path) = 0;
168
169 virtual ::Core::Result isValidPath(::Core::PathView path) = 0;
170
171 virtual ::Core::Result getLastModificationTime(::Core::PathView filePath, int64* pLastModificationTime) = 0;
172
173 virtual ::Core::Result
174 copyTimeAndAccessRights(::Core::PathView sourceFilePath, ::Core::PathView targetFilePath) = 0;
175
176 virtual ::Core::Result
177 createFlatFile(::Core::PathView sourceDirectoryPath, ::Core::PathView targetDirectoryPath) = 0;
178
179 virtual bool isDirectoryPathAFlatFile(::Core::PathView directoryPath) = 0;
180
181 virtual ::Core::Result copyFlatFile(
182 ::Core::PathView flatFileParentDirectory,
183 ::Core::PathView targetDirectory,
184 ::std::vector<::Core::ExcludedPath> const& excludedDirectories,
185 ::std::vector<::Core::ExcludedPath> const& excludedFiles
186 ) = 0;
187
188 virtual ::Core::Result createDirectoryForFile(::Core::PathView filePath) = 0;
189
190 virtual ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
191 getUniqueFilePathForFile(::Core::PathView filePath) = 0;
192
193 virtual ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
194 getUniqueFilePathForDirectory(::Core::PathView directoryPath) = 0;
195
196 virtual ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
197 createUniquePathFromSeed(::Core::PathView basePath, ::std::function<::std::string(int)> seedGenerator) = 0;
198
199 virtual ::std::vector<::Core::PathBuffer<::std::string>> splitPathIntoFullPathSegments(::Core::PathView path) = 0;
200
201 virtual ::Core::Result readFileDataExt(
202 ::Core::PathView filePath,
203 uint64 filePosition,
204 uint64 bufferSize,
205 ::std::vector<uchar>& buffer,
206 uint64& bytesRead
207 ) = 0;
208
209 virtual ::Core::Result cleanPath_deprecated(
211 ::Core::PathView pathIn
212 ) = 0;
213
214 virtual ::Core::Result cleanPathSeparators_deprecated(
216 ::Core::PathView pathIn
217 ) = 0;
218
219 virtual bool checkStorageCorrupt(::Core::PathView path) = 0;
220
221 virtual ::std::unique_ptr<::Core::FileSizePresetToken>
222 presetFileInitialSize(::Core::PathView path, uint64 initialSize) = 0;
223
224 virtual ::Core::Result _getDirectoriesAndFileSizesRecursively(
225 ::Core::PathView directoryPath,
226 ::std::vector<::Core::PathBuffer<::std::string>>& directoriesOut,
227 ::std::vector<::Core::FileSystem::BasicFileData>& filesOut
228 ) = 0;
229
230 virtual ::Core::Result _copyDirectoryStructure(
231 ::Core::PathView from,
233 ::std::vector<::Core::PathBuffer<::std::string>> const& directories,
234 ::Core::FileSystemImpl* transaction
235 ) = 0;
236
237 virtual ::Core::Result _copyFilesWithLimit(
238 ::Core::PathView from,
240 ::std::vector<::Core::FileSystem::BasicFileData>& files,
241 uint64& currentFileBytesWritten,
242 uint64 const transactionLimit,
243 ::std::function<
245 fileTransferFunction
246 ) = 0;
247
248 virtual ::Core::Result _copyFlatFile(
249 ::Core::PathView flatFileParentDirectory,
250 ::Core::PathView targetDirectory,
251 ::std::vector<::Core::ExcludedPath> const& excludedDirectories,
252 ::std::vector<::Core::ExcludedPath> const& excludedFiles
253 ) = 0;
254
255 virtual ::std::optional<uint64> _checkFileInitialSize(::Core::PathView path) = 0;
256
257 virtual ~FileSystem() /*override*/;
258 // NOLINTEND
259
260public:
261 // static functions
262 // NOLINTBEGIN
263 MCNAPI static ::Core::FileSystem& get();
264 // NOLINTEND
265
266public:
267 // destructor thunk
268 // NOLINTBEGIN
269 MCNAPI void $dtor();
270 // NOLINTEND
271
272public:
273 // virtual function thunks
274 // NOLINTBEGIN
275
276 // NOLINTEND
277};
278
279} // 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:28
static MCAPI ::Core::FileSystem & get()
MCAPI void $dtor()
Definition File.h:22
Definition PathBuffer.h:8
Definition PathView.h:19
Definition Result.h:11
Definition function_ref.h:60
Definition DirectoryIterationItem.h:12
Definition ExcludedPath.h:10
Definition FileSystem.h:37
Definition FileSystem.h:64
Definition buffer.h:5
Definition Alias.h:14