13#ifndef BITCOMPRESSOR_HPP
14#define BITCOMPRESSOR_HPP
16#include "bit7zlibrary.hpp"
17#include "bitabstractarchivecreator.hpp"
18#include "bitformat.hpp"
19#include "bitoutputarchive.hpp"
20#include "bittypes.hpp"
33#ifdef __cpp_if_constexpr
34#define BIT7Z_IF_CONSTEXPR if constexpr
36#define BIT7Z_IF_CONSTEXPR if
45template<
typename Input >
59 : BitAbstractArchiveCreator( lib,
format ) {}
78 name = inputName.empty() ? filesystem::fsutil::stem( outFile ) : inputName;
81 BitOutputArchive outputArchive{ *
this, outFile };
82 outputArchive.addFile( inFile, name );
83 outputArchive.compressTo( outFile );
99 outputArchive.
addFile( inFile, inputName );
116 outputArchive.
addFile( inFile, inputName );
The Bit7zLibrary class allows accessing the basic functionalities provided by the 7z DLLs.
Definition bit7zlibrary.hpp:55
auto format() const noexcept -> const BitInFormat &override
void compressFile(Input inFile, const tstring &outFile, const tstring &inputName={}) const
Compresses a single file.
Definition bitcompressor.hpp:68
void compressFile(Input inFile, buffer_t &outBuffer, const tstring &inputName={}) const
Compresses the input file to the output buffer.
Definition bitcompressor.hpp:93
void compressFile(Input inFile, std::ostream &outStream, const tstring &inputName={}) const
Compresses the input file to the output stream.
Definition bitcompressor.hpp:110
BitCompressor(Bit7zLibrary const &lib, BitInOutFormat const &format)
Constructs a BitCompressor object.
Definition bitcompressor.hpp:58
The BitOutputArchive class, given a creator object, allows creating new archives.
Definition bitoutputarchive.hpp:65
auto addFile(const tstring &inFile, const tstring &name={}) -> BitInputItem &
Adds the given file path, with an optional user-defined path to be used in the output archive.
void compressTo(const tstring &outFile)
Compresses all the items added to this object to the specified archive file path.
The main namespace of the bit7z library.
Definition bit7zlibrary.hpp:29
std::basic_string< tchar > tstring
Definition bittypes.hpp:104