38 lines
862 B
C++
38 lines
862 B
C++
#pragma once
|
|
|
|
#include "fs/AbsPath.h"
|
|
#include "fs/zip/ZipWriter.h"
|
|
|
|
#include "tl/ptr.h"
|
|
|
|
namespace fs
|
|
{
|
|
|
|
class IFilesystem;
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
class FS_API DeflateFileWriter
|
|
{
|
|
public:
|
|
//compression level: 0 to 9
|
|
DeflateFileWriter(AbsPathView filePath, tl::lent_ref<IFilesystem> filesystem, uint8_t compressionLevel);
|
|
|
|
DeflateFileWriter(const DeflateFileWriter&) = delete;
|
|
DeflateFileWriter& operator=(const DeflateFileWriter&) = delete;
|
|
|
|
DeflateFileWriter(DeflateFileWriter&&) = default;
|
|
DeflateFileWriter& operator=(DeflateFileWriter&&) = default;
|
|
|
|
ZipWriter::DataWriterResult operator()(IStreamSink& sink);
|
|
|
|
private:
|
|
AbsPath m_filePath;
|
|
tl::lent_ref<IFilesystem> m_filesystem;
|
|
uint8_t m_compressionLevel = 9;
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
}
|