3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/file/DirectoryIterationFlags.h"
7#include "mc/deps/core/file/FileAccessType.h"
8#include "mc/deps/core/file/FileBufferingMode.h"
9#include "mc/deps/core/file/FileType.h"
10#include "mc/deps/core/file/PathBuffer.h"
11#include "mc/deps/core/file/file_system/CrossStorageCopyMode.h"
12#include "mc/deps/core/file/file_system/TransactionFlags.h"
13#include "mc/platform/brstd/function_ref.h"
17namespace Core {
class FileImpl; }
18namespace Core {
class FileOpenMode; }
19namespace Core {
class FileStats; }
20namespace Core {
class FileStorageArea; }
21namespace Core {
class FlatFileManifestTracker; }
22namespace Core {
class PathView; }
23namespace Core {
class Result; }
24namespace Core {
struct DirectoryIterationItem; }
25namespace Core {
struct ExcludedPath; }
59 virtual ::Core::Result getLastModificationTime(
::Core::PathView entryPath, int64* lastModificationTime);
65 virtual void requestFlush();
68 virtual bool shouldCommit();
71 virtual ::Core::CrossStorageCopyMode getCrossStorageCopyMode();
74 virtual uint64 getTransactionWriteSizeLimit()
const;
77 virtual ::Core::Result _openFile(
78 ::std::unique_ptr<::Core::FileImpl>&,
81 ::Core::FileBufferingMode
106 virtual ::Core::Result _copyFileWithLimit(
109 uint64 startPosition,
110 uint64& outBytesWritten,
111 uint64& outBytesRemaining
115 virtual ::Core::Result _readFileData(
::Core::PathView filePath, ::std::vector<uchar>& data);
121 virtual ::Core::Result _createOneDirectoryIfNotExisting(
::Core::PathView directoryPath);
124 virtual ::Core::Result _createDirectoryRecursively(
::Core::PathView directoryPath);
133 virtual ::Core::Result _deleteDirectoryAndContentsRecursively(
::Core::PathView directoryPath);
136 virtual ::Core::Result _deleteDirectoryContentsRecursively(
::Core::PathView directoryPath);
139 virtual ::Core::Result _deleteRecursively(
::Core::PathView directoryPath, ::Core::FileType deleteFileType);
145 virtual ::Core::Result _iterateOverDirectory(
147 ::Core::DirectoryIterationFlags,
152 virtual ::Core::Result
156 virtual ::Core::Result _getDirectoryFilesRecursively(
162 virtual ::Core::Result _getDirectoryFilesSizeRecursively(uint64& totalSize,
::Core::PathView directoryPath);
165 virtual ::Core::Result _getDirectoryFilesAllocatedSizeRecursively(
167 uint64& totalSizeAllocated,
172 virtual ::Core::Result
179 virtual ::Core::Result _getFileOrDirectorySize(
::Core::PathView entryName, uint64* pFileSizeOut);
182 virtual ::Core::Result _getEntryType(
::Core::PathView, ::Core::FileType&) = 0;
200 virtual ::Core::Result _flatFileIterateOverDirectory(
203 ::Core::DirectoryIterationFlags flags,
211 virtual ::Core::Result _copyFlatFile(
214 ::std::vector<::Core::ExcludedPath>
const& excludedDirectories,
215 ::std::vector<::Core::ExcludedPath>
const& excludedFiles
219 virtual ::Core::Result _flatFileDeleteFileOrDirectory(
222 bool directoryDeleteEnabled,
223 bool deleteRecursively
227 virtual ::Core::Result
231 virtual ::Core::Result _getLastModificationTime(
::Core::PathView, int64*) = 0;
237 virtual ::Core::Result _endTransaction();
240 virtual ::Core::Result _writeOperation(
244 uint64 numBytesWritten
248 virtual void _initializeInternal();
255 ::Core::FileAccessType accessType,
256 ::std::shared_ptr<::Core::FileStorageArea> storageArea,
257 ::Core::TransactionFlags transactionFlags,
258 ::std::shared_ptr<::Core::FlatFileManifestTracker> manifestTracker
262 ::std::unique_ptr<::Core::FileImpl>& fileOut,
266 ::Core::FileBufferingMode fileBufferingMode
277 uint64 numBytesWritten
282 MCNAPI ::Core::Result
290 uint64 startPosition,
291 uint64& outBytesWritten,
292 uint64& outBytesRemaining
298 ::std::vector<::Core::ExcludedPath>
const& excludedDirectories,
299 ::std::vector<::Core::ExcludedPath>
const& excludedFiles
336 ::Core::DirectoryIterationFlags flags,
341 ::std::unique_ptr<::Core::FileImpl>& fileOut,
344 ::Core::FileBufferingMode fileBufferingMode
361 MCNAPI static ::Core::FileStats&
sStats();
368 ::Core::FileAccessType accessType,
369 ::std::shared_ptr<::Core::FileStorageArea> storageArea,
370 ::Core::TransactionFlags transactionFlags,
371 ::std::shared_ptr<::Core::FlatFileManifestTracker> manifestTracker
399 uint64 startPosition,
400 uint64& outBytesWritten,
401 uint64& outBytesRemaining
416 MCNAPI ::Core::Result
428 uint64& totalSizeAllocated,
432 MCNAPI ::Core::Result
450 ::Core::DirectoryIterationFlags flags,
459 ::std::vector<::Core::ExcludedPath>
const& excludedDirectories,
460 ::std::vector<::Core::ExcludedPath>
const& excludedFiles
466 bool directoryDeleteEnabled,
467 bool deleteRecursively
470 MCNAPI ::Core::Result
479 uint64 numBytesWritten
Definition FileOpenMode.h:7
Definition FileStorageArea.h:23
Definition FileSystemImpl.h:30
MCAPI::Core::Result renameDirectory(::Core::PathView sourceDirectoryPath, ::Core::PathView targetDirectoryPath)
MCAPI bool isDirectoryPathAFlatFile(::Core::PathView directoryPath)
MCAPI::Core::Result $_deleteDirectoryAndContentsRecursively(::Core::PathView directoryPath)
MCAPI::Core::Result $_removeIgnoredThrottlePath(::Core::PathView)
MCAPI::Core::Result $_createEmptyFile(::Core::PathView fileName)
MCAPI bool fileOrDirectoryExists(::Core::PathView entryPath)
MCAPI::Core::Result copyFlatFile(::Core::PathView flatFileParentDirectory, ::Core::PathView targetDirectory, ::std::vector<::Core::ExcludedPath > const &excludedDirectories, ::std::vector<::Core::ExcludedPath > const &excludedFiles)
static MCAPI ::Core::Result isValidPath(::Core::PathView path)
MCAPI bool directoryExists(::Core::PathView directoryPath)
MCAPI bool $_flatFileDirectoryExists(::Core::PathView directoryPath, ::Core::PathView manifestPath)
MCAPI::Core::Result _flatFileOpenFlatFile(::std::unique_ptr<::Core::FileImpl > &fileOut, ::Core::PathView filePath, ::Core::PathView manifestPath, ::Core::FileOpenMode openMode, ::Core::FileBufferingMode fileBufferingMode)
MCAPI::Core::Result $_readFileData(::Core::PathView filePath, ::std::vector< uchar > &data)
MCAPI::Core::Result $_copyFileWithLimit(::Core::PathView sourceFileName, ::Core::PathView targetFileName, uint64 startPosition, uint64 &outBytesWritten, uint64 &outBytesRemaining)
MCAPI bool fileExists(::Core::PathView filePath)
MCAPI::Core::Result $_addIgnoredThrottlePath(::Core::PathView)
MCAPI::Core::Result $_endTransaction()
MCAPI::Core::Result createFlatFile(::Core::PathView sourceDirectoryPath, ::Core::PathView targetDirectoryPath)
MCAPI::Core::Result $_createDirectoryRecursively(::Core::PathView directoryPath)
MCAPI::Core::Result $_deleteDirectoryContentsRecursively(::Core::PathView directoryPath)
MCAPI::Core::Result _readOperation(::Core::Result &&result, uint64 numBytesRead)
MCAPI::Core::Result $_createOneDirectoryIfNotExisting(::Core::PathView directoryPath)
MCAPI void * $ctor(::Core::FileAccessType accessType, ::std::shared_ptr<::Core::FileStorageArea > storageArea, ::Core::TransactionFlags transactionFlags, ::std::shared_ptr<::Core::FlatFileManifestTracker > manifestTracker)
MCAPI::Core::Result iterateOverDirectory(::Core::PathView directoryPath, ::Core::DirectoryIterationFlags flags, ::brstd::function_ref<::Core::Result(::Core::DirectoryIterationItem const &)> callbackFunction)
MCAPI::Core::Result $_getDirectoryFilesSizeRecursively(uint64 &totalSize, ::Core::PathView directoryPath)
MCAPI::Core::Result $_deleteRecursively(::Core::PathView directoryPath, ::Core::FileType deleteFileType)
MCAPI bool $_flatFileFileExists(::Core::PathView filePath, ::Core::PathView manifestPath)
MCAPI void $_initializeInternal()
MCAPI::Core::Result $_getDirectoryFiles(::std::vector<::Core::PathBuffer<::std::string > > &files, ::Core::PathView directoryPath)
MCAPI::Core::Result $_copyFile(::Core::PathView sourceFileName, ::Core::PathView targetFileName)
MCAPI::Core::Result commit()
MCAPI::Core::CrossStorageCopyMode $getCrossStorageCopyMode()
MCAPI::Core::Result createOneDirectoryIfNotExisting(::Core::PathView directoryPath)
MCAPI::Core::Result $_flatFileIterateOverDirectory(::Core::PathView directoryPath, ::Core::PathView manifestPath, ::Core::DirectoryIterationFlags flags, ::brstd::function_ref<::Core::Result(::Core::DirectoryIterationItem const &)> callbackFunction)
MCAPI::Core::Result $_flatFileGetFileSize(::Core::PathView filePath, ::Core::PathView manifestPath, uint64 *pFileSize)
MCAPI::Core::Result $getLastModificationTime(::Core::PathView entryPath, int64 *lastModificationTime)
MCAPI void $requestFlush()
MCAPI::Core::Result $_getDirectoryFilesAllocatedSizeRecursively(uint64 &totalSize, uint64 &totalSizeAllocated, ::Core::PathView directoryPath)
MCAPI::Core::Result $_writeOperation(::Core::PathView fullPath, ::Core::Result &&result, ::std::function< void(::Core::FileStorageArea *)> observerCallOrNull, uint64 numBytesWritten)
MCAPI::Core::Result copyFile(::Core::PathView sourceFilePath, ::Core::PathView targetFilePath)
MCAPI::Core::Result getFileSize(::Core::PathView filePath, uint64 *pFileSize)
MCAPI::Core::Result _readWriteOperation(::Core::Result &&result, ::std::function< void(::Core::FileStorageArea *)> observerCallOrNull, uint64 numBytesRead, uint64 numBytesWritten)
MCAPI void enumerateFiles(::std::function< void(::Core::FileImpl *)> const &fx)
MCAPI::Core::Result createEmptyFile(::Core::PathView filePath)
MCAPI::Core::Result _flatFileUnloadManifest(::Core::PathView filePath)
MCAPI::Core::Result openFile(::std::unique_ptr<::Core::FileImpl > &fileOut, ::Core::PathView filePath, ::Core::FileOpenMode openMode, ::Core::FileBufferingMode fileBufferingMode)
static MCAPI void ** $vftable()
MCAPI::Core::Result renameFile(::Core::PathView sourceFilePath, ::Core::PathView targetFilePath)
MCAPI::Core::Result deleteDirectoryContentsRecursively(::Core::PathView directoryPath)
MCAPI::Core::Result $copyTimeAndAccessRights(::Core::PathView sourceFilePath, ::Core::PathView targetFilePath)
MCAPI::Core::Result $_getFileOrDirectorySize(::Core::PathView entryName, uint64 *pFileSizeOut)
MCAPI FileSystemImpl(::Core::FileAccessType accessType, ::std::shared_ptr<::Core::FileStorageArea > storageArea, ::Core::TransactionFlags transactionFlags, ::std::shared_ptr<::Core::FlatFileManifestTracker > manifestTracker)
static MCAPI ::Core::FileStats & sStats()
MCAPI::Core::Result $_copyFlatFile(::Core::PathView sourceDirectoryPath, ::Core::PathView targetDirectoryPath, ::std::vector<::Core::ExcludedPath > const &excludedDirectories, ::std::vector<::Core::ExcludedPath > const &excludedFiles)
MCAPI::Core::Result copyFileWithLimit(::Core::PathView sourceFileName, ::Core::PathView targetFileName, uint64 startPosition, uint64 &outBytesWritten, uint64 &outBytesRemaining)
MCAPI::Core::Result $_createFlatFile(::Core::PathView sourceDirectoryPath, ::Core::PathView targetDirectoryPath)
MCAPI::Core::Result deleteDirectoryAndContentsRecursively(::Core::PathView directoryPath)
MCAPI::Core::Result $_getDirectoryFilesRecursively(::std::vector<::Core::PathBuffer<::std::string > > &filesOut, ::Core::PathView directoryPath)
MCAPI::Core::Result deleteFilePriority(::Core::PathView filePath)
MCAPI::Core::Result $_flatFileDeleteFileOrDirectory(::Core::PathView fileOrDirectoryPath, ::Core::PathView manifestPath, bool directoryDeleteEnabled, bool deleteRecursively)
MCAPI::Core::Result createOneDirectory(::Core::PathView directoryPath)
MCAPI::Core::Result copyDirectoryAndContentsRecursively(::Core::PathView sourceDirectoryPath, ::Core::PathView targetDirectoryPath)
MCAPI bool $_isDirectoryPathAFlatFile(::Core::PathView directoryPath)
MCAPI::Core::Result $_deleteFilePriority(::Core::PathView filePath)
MCAPI::Core::Result deleteEmptyDirectory(::Core::PathView directoryPath)
MCAPI uint64 $getTransactionWriteSizeLimit() const
MCAPI::Core::Result $_copyDirectoryAndContentsRecursively(::Core::PathView sourceDirectoryPath, ::Core::PathView targetDirectoryPath)
MCAPI::Core::Result deleteFile(::Core::PathView filePath)
MCAPI::Core::Result createDirectoryRecursively(::Core::PathView directoryPath)
MCAPI bool $shouldCommit()
Definition PathBuffer.h:8
Definition function_ref.h:60
Definition DirectoryIterationItem.h:12