25 lines
1.1 KiB
C++
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);
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
}
|