10#ifndef BITABSTRACTARCHIVECREATOR_HPP
11#define BITABSTRACTARCHIVECREATOR_HPP
16#include "bitabstractarchivehandler.hpp"
17#include "bitcompressionlevel.hpp"
18#include "bitcompressionmethod.hpp"
19#include "bitformat.hpp"
20#include "bitinputarchive.hpp"
23struct ISequentialOutStream;
29class ArchiveProperties;
38 BIT7Z_DEPRECATED_ENUMERATOR(
Overwrite,
Update,
"Since v4.0; please use the UpdateMode::Update enumerator." )
89 BIT7Z_NODISCARD auto
wordSize() const noexcept -> uint32_t;
94 BIT7Z_NODISCARD auto
solidMode() const noexcept ->
bool;
105 BIT7Z_NODISCARD auto
volumeSize() const noexcept -> uint64_t;
220 BIT7Z_DEPRECATED_MSG( "Since v4.0; please use the overloaded function that takes an
UpdateMode enumerator." )
255 template< std::
size_t N, typename T, typename = typename std::enable_if< std::is_integral< T >::value >::type >
257 mExtraProperties[ name ] = value;
272 template< std::size_t N, typename T, typename = typename std::enable_if< !std::is_integral< T >::value >::type >
274 mExtraProperties[ name ] = value;
283 BIT7Z_NODISCARD
auto archiveProperties() const -> ArchiveProperties;
285 friend class BitOutputArchive;
288 const BitInOutFormat& mFormat;
293 uint32_t mDictionarySize;
297 uint64_t mVolumeSize;
298 uint32_t mThreadsCount;
299 bool mStoreSymbolicLinks;
300 std::map< std::wstring, BitPropVariant > mExtraProperties;
The Bit7zLibrary class allows accessing the basic functionalities provided by the 7z DLLs.
Definition bit7zlibrary.hpp:56
Abstract class representing a generic archive creator.
Definition bitabstractarchivecreator.hpp:44
void setVolumeSize(uint64_t volumeSize) noexcept
Sets the volumeSize (in bytes) of the output archive volumes.
void setPassword(const tstring &password) override
Sets up a password for the output archives.
void setCompressionMethod(BitCompressionMethod method)
Sets the compression method to be used when creating/updating an archive.
void setFormatProperty(const wchar_t(&name)[N], const T &value) noexcept
Sets a property for the output archive format as described by the 7-zip documentation (e....
Definition bitabstractarchivecreator.hpp:273
auto dictionarySize() const noexcept -> uint32_t
auto compressionFormat() const noexcept -> const BitInOutFormat &
void setWordSize(uint32_t wordSize)
Sets the word size to be used when creating/updating an archive.
void setDictionarySize(uint32_t dictionarySize)
Sets the dictionary size to be used when creating/updating an archive.
auto compressionLevel() const noexcept -> BitCompressionLevel
auto volumeSize() const noexcept -> uint64_t
void setSolidMode(bool solidMode) noexcept
Sets whether to use solid compression or not.
auto cryptHeaders() const noexcept -> bool
auto solidMode() const noexcept -> bool
auto wordSize() const noexcept -> uint32_t
auto format() const noexcept -> const BitInFormat &override
void setStoreSymbolicLinks(bool storeSymlinks) noexcept
Sets whether the creator will store symbolic links as links in the output archive.
auto storeSymbolicLinks() const noexcept -> bool
virtual void setUpdateMode(UpdateMode mode)
Sets whether and how the creator can update existing archives or not.
void setThreadsCount(uint32_t threadsCount) noexcept
Sets the number of threads to be used when creating/updating an archive.
void setCompressionLevel(BitCompressionLevel level) noexcept
Sets the compression level to be used when creating/updating an archive.
auto compressionMethod() const noexcept -> BitCompressionMethod
void setFormatProperty(const wchar_t(&name)[N], T value) noexcept
Sets a property for the output archive format as described by the 7-zip documentation (e....
Definition bitabstractarchivecreator.hpp:256
auto threadsCount() const noexcept -> uint32_t
auto updateMode() const noexcept -> UpdateMode
Abstract class representing a generic archive handler.
Definition bitabstractarchivehandler.hpp:74
auto password() const -> tstring
The main namespace of the bit7z library.
Definition bit7zlibrary.hpp:30
BitCompressionLevel
The BitCompressionLevel enum represents the compression level used by 7z when creating archives.
Definition bitcompressionlevel.hpp:19
BitCompressionMethod
The BitCompressionMethod enum represents the compression methods used by 7z when creating archives.
Definition bitcompressionmethod.hpp:18
UpdateMode
Enumeration representing how an archive creator should deal when the output archive already exists.
Definition bitabstractarchivecreator.hpp:34
@ Update
New items whose path already exists in the archive will overwrite the old ones, other will be appende...
@ Append
The creator will append the new items to the existing archive.
@ None
The creator will throw an exception (unless the OverwriteMode is not None).