Files
FS/include/fs/CopyStream.h
T
jeanlemotan b344afa9fe First
2024-07-02 18:12:23 +02:00

25 lines
1.1 KiB
C++

#pragma once
#include "Error.h"
#include "fs/Api.h"
#include "fs/ProcessStream.h"
#include "tl/result.h"
#include "fs/AbsPath.h"
namespace fs
{
//////////////////////////////////////////////////////////////////////////
class IStreamSink;
class IStreamSource;
class IFilesystem;
using CopyStreamResult = tl::result<uint64_t, Error>;
FS_API CopyStreamResult copyStream(IStreamSink& sink, IStreamSource& source, size_t bufferSize = 0);
FS_API CopyStreamResult copyStream(IStreamSink& sink, IStreamSource& source, const ProcessDataCallback& dataCallback, size_t bufferSize = 0);
FS_API CopyStreamResult copyFile(IStreamSink& sink, const IFilesystem& filesystem, const AbsPath& filePath, size_t bufferSize = 0);
FS_API CopyStreamResult copyFile(IStreamSink& sink, const IFilesystem& filesystem, const AbsPath& filePath, const ProcessDataCallback& dataCallback, size_t bufferSize = 0);
FS_API CopyStreamResult copyFile(IFilesystem& dstFilesystem, const AbsPath& dstFilePath, const IFilesystem& srcFilesystem, const AbsPath& srcFilePath, size_t bufferSize = 0);
//////////////////////////////////////////////////////////////////////////
}