10#ifndef BITARCHIVEREADER_HPP
11#define BITARCHIVEREADER_HPP
13#include "bit7zlibrary.hpp"
14#include "bitabstractarchiveopener.hpp"
15#include "bitarchiveiteminfo.hpp"
16#include "bitdefines.hpp"
17#include "bitexception.hpp"
18#include "bitformat.hpp"
19#include "bitinputarchive.hpp"
20#include "bitpropvariant.hpp"
21#include "bittypes.hpp"
26#include <system_error>
31struct IArchiveExtractCallback;
100 const buffer_t& inArchive,
114 buffer_t&& inArchive,
135 const buffer_t& inArchive,
148 buffer_t&& inArchive,
325 BIT7Z_NODISCARD auto
size() const -> std::uint64_t;
330 BIT7Z_NODISCARD auto
packSize() const -> std::uint64_t;
368 template< typename T >
379 return isOpenEncryptedError( exception.code() );
399 template<
typename T >
410 return isOpenEncryptedError( exception.code() );
415 static auto isOpenEncryptedError(
std::error_code error )
noexcept -> bool;
418BIT7Z_DEPRECATED_TYPEDEF( BitArchiveInfo, BitArchiveReader,
"Since v4.0. Please use BitArchiveReader." );
The Bit7zLibrary class allows accessing the basic functionalities provided by the 7z DLLs.
Definition bit7zlibrary.hpp:55
auto password() const -> const tstring &
auto format() const noexcept -> const BitInFormat &override
The BitArchiveItemInfo class represents an archived item and that stores all its properties for later...
Definition bitarchiveiteminfo.hpp:26
The BitArchiveReader class allows reading metadata of archives, as well as extracting them.
Definition bitarchivereader.hpp:38
BitArchiveReader(const Bit7zLibrary &lib, const buffer_t &inArchive, const BitInFormat &format=BitFormat::Auto, const tstring &password={})
Constructs a BitArchiveReader object, opening the archive in the input buffer.
BitArchiveReader(const Bit7zLibrary &lib, std::istream &inArchive, ArchiveStartOffset archiveStart, const BitInFormat &format=BitFormat::Auto, const tstring &password={})
Constructs a BitArchiveReader object, opening the archive from the standard input stream.
auto packSize() const -> std::uint64_t
auto filesCount() const -> std::uint32_t
auto volumesCount() const -> std::uint32_t
auto itemsMatching(const tstring &pattern) const -> std::vector< BitArchiveItemInfo >
Gets the items whose paths match the given wildcard pattern.
BitArchiveReader(const Bit7zLibrary &lib, const BitInputArchive &inArchive, std::uint32_t subfileIndex, const BitInFormat &format=BitFormat::Auto, const tstring &password={})
Constructs a BitArchiveReader object, opening the subfile at the specified index of the given archive...
BitArchiveReader(const Bit7zLibrary &lib, const tstring &inArchive, ArchiveStartOffset archiveStart, const BitInFormat &format=BitFormat::Auto, const tstring &password={})
Constructs a BitArchiveReader object, opening the input file archive.
auto isMultiVolume() const -> bool
auto isEncrypted() const -> bool
auto foldersCount() const -> std::uint32_t
BitArchiveReader(const Bit7zLibrary &lib, const buffer_t &inArchive, ArchiveStartOffset archiveStart, const BitInFormat &format=BitFormat::Auto, const tstring &password={})
Constructs a BitArchiveReader object, opening the archive in the input buffer.
BitArchiveReader(const Bit7zLibrary &lib, const BitInputArchive &inArchive, ArchiveStartOffset archiveStart, const BitInFormat &format=BitFormat::Auto, const tstring &password={})
Constructs a BitArchiveReader object, opening the main subfile of the given archive.
BitArchiveReader(const Bit7zLibrary &lib, buffer_t &&inArchive, ArchiveStartOffset archiveStart, const BitInFormat &format=BitFormat::Auto, const tstring &password={})=delete
Deleted overload preventing the use of a temporary input buffer.
auto archiveProperties() const -> std::map< BitProperty, BitPropVariant >
auto items() const -> std::vector< BitArchiveItemInfo >
~BitArchiveReader() override=default
BitArchiveReader destructor.
BitArchiveReader(const Bit7zLibrary &lib, buffer_t &&inArchive, const BitInFormat &format=BitFormat::Auto, const tstring &password={})=delete
Deleted overload preventing the use of a temporary input buffer.
BitArchiveReader(const Bit7zLibrary &lib, const BitInputArchive &inArchive, std::uint32_t subfileIndex, ArchiveStartOffset archiveStart, const BitInFormat &format=BitFormat::Auto, const tstring &password={})
Constructs a BitArchiveReader object, opening the subfile at the specified index of the given archive...
BitArchiveReader(const Bit7zLibrary &lib, const tstring &inArchive, const BitInFormat &format=BitFormat::Auto, const tstring &password={})
Constructs a BitArchiveReader object, opening the input file archive.
auto hasEncryptedItems() const -> bool
auto isSolid() const -> bool
static auto isEncrypted(const Bit7zLibrary &lib, T &&inArchive, const BitInFormat &format=BitFormat::Auto) noexcept -> bool
Checks if the given archive contains only encrypted items.
Definition bitarchivereader.hpp:401
auto size() const -> std::uint64_t
BitArchiveReader(const Bit7zLibrary &lib, std::istream &inArchive, const BitInFormat &format=BitFormat::Auto, const tstring &password={})
Constructs a BitArchiveReader object, opening the archive from the standard input stream.
static auto isHeaderEncrypted(const Bit7zLibrary &lib, T &&inArchive, const BitInFormat &format=BitFormat::Auto) noexcept -> bool
Checks if the given archive is header-encrypted or not.
Definition bitarchivereader.hpp:370
BitArchiveReader(const Bit7zLibrary &lib, const BitInputArchive &inArchive, const BitInFormat &format=BitFormat::Auto, const tstring &password={})
Constructs a BitArchiveReader object, opening the main subfile of the given archive.
The BitException class represents a generic exception thrown from the bit7z classes.
Definition bitexception.hpp:54
The main namespace of the bit7z library.
Definition bit7zlibrary.hpp:29
ArchiveStartOffset
Offset from where the archive starts within the input file.
Definition bitinputarchive.hpp:46
BitProperty
The BitProperty enum represents the archive/item properties that 7-zip can read or write.
Definition bitpropvariant.hpp:32
std::basic_string< tchar > tstring
Definition bittypes.hpp:104
The BitPropVariant struct is a light extension to the WinAPI PROPVARIANT struct providing useful gett...
Definition bitpropvariant.hpp:161