3#include "mc/_HeaderOutputPredefine.h"
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"
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; }
44 virtual ::Core::Result openFile(
48 ::Core::FileBufferingMode bufferingMode
61 virtual ::Core::Result getFileSize(
::Core::PathView filePath, uint64* pFileSize) ;
73 virtual ::Core::Result
77 virtual ::Core::Result readFileData(
::Core::PathView filePath, ::std::vector<uchar>& data) ;
83 virtual ::Core::Result createOneDirectoryIfNotExisting(
::Core::PathView dirName) ;
86 virtual ::Core::Result createDirectoryRecursively(
::Core::PathView dirName) ;
95 virtual ::Core::Result deleteDirectoryAndContentsRecursively(
::Core::PathView dirName) ;
98 virtual ::Core::Result deleteDirectoryContentsRecursively(
::Core::PathView directoryName) ;
101 virtual ::Core::Result
105 virtual ::Core::Result iterateOverDirectory(
107 ::Core::DirectoryIterationFlags flags,
112 virtual ::Core::Result
116 virtual ::Core::Result getDirectoryFilesAndSizes(
117 ::std::vector<::Core::FileSystem::BasicFileData>& filesOut,
122 virtual ::Core::Result getDirectoryFilesRecursively(
128 virtual ::Core::Result
129 getDirectoryFilesSizeRecursively(uint64& totalSize,
::Core::PathView directoryPath) ;
132 virtual ::Core::Result getDirectoryFilesAllocatedSizeRecursively(
134 uint64& totalAllocatedSize,
142 virtual ::Core::Result
152 virtual ::Core::Result getFileOrDirectorySize(
::Core::PathView path, uint64* pFileSizeOut) ;
164 virtual ::Core::Result
165 getLastModificationTime(
::Core::PathView filePath, int64* pLastModificationTime) ;
168 virtual ::Core::Result
172 virtual ::Core::Result
179 virtual ::Core::Result copyFlatFile(
182 ::std::vector<::Core::ExcludedPath>
const& excludedDirectories,
183 ::std::vector<::Core::ExcludedPath>
const& excludedFiles
190 virtual ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
194 virtual ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
198 virtual ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
199 createUniquePathFromSeed(
::Core::PathView basePath, ::std::function<::std::string(
int)> seedGenerator) ;
202 virtual ::std::vector<::Core::PathBuffer<::std::string>>
206 virtual ::Core::Result readFileDataExt(
210 ::std::vector<uchar>&
buffer,
215 virtual ::Core::Result cleanPath_deprecated(
221 virtual ::Core::Result cleanPathSeparators_deprecated(
230 virtual ::std::unique_ptr<::Core::FileSizePresetToken>
234 virtual ::Core::Result _getDirectoriesAndFileSizesRecursively(
237 ::std::vector<::Core::FileSystem::BasicFileData>& filesOut
241 virtual ::Core::Result _copyDirectoryStructure(
249 virtual ::Core::Result _copyFilesWithLimit(
252 ::std::vector<::Core::FileSystem::BasicFileData>& files,
253 uint64& currentFileBytesWritten,
254 uint64
const transactionLimit,
261 virtual ::Core::Result _copyFlatFile(
264 ::std::vector<::Core::ExcludedPath>
const& excludedDirectories,
265 ::std::vector<::Core::ExcludedPath>
const& excludedFiles
269 virtual ::std::optional<uint64> _checkFileInitialSize(
::Core::PathView path) ;
282 ::Core::FileBufferingMode bufferingMode
321 ::Core::DirectoryIterationFlags flags,
325 MCNAPI ::Core::Result
329 ::std::vector<::Core::FileSystem::BasicFileData>& filesOut,
342 uint64& totalAllocatedSize,
373 ::std::vector<::Core::ExcludedPath>
const& excludedDirectories,
374 ::std::vector<::Core::ExcludedPath>
const& excludedFiles
379 MCNAPI ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
382 MCNAPI ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
385 MCNAPI ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
394 ::std::vector<uchar>&
buffer,
410 MCNAPI ::std::unique_ptr<::Core::FileSizePresetToken>
416 ::std::vector<::Core::FileSystem::BasicFileData>& filesOut
429 ::std::vector<::Core::FileSystem::BasicFileData>& files,
430 uint64& currentFileBytesWritten,
431 uint64
const transactionLimit,
440 ::std::vector<::Core::ExcludedPath>
const& excludedDirectories,
441 ::std::vector<::Core::ExcludedPath>
const& excludedFiles
Definition BasicStackString.h:8
Definition FileOpenMode.h:7
Definition FileSystemImpl.h:31
Definition FileSystem.h:27
Definition PathBuffer.h:8
Definition StandardFileSystem.h:27
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 ¤tFileBytesWritten, 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:15
Definition FileSystem.h:71