#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 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 m_filesystem; uint8_t m_compressionLevel = 9; }; ////////////////////////////////////////////////////////////////////////// }