Internal ZIP32 parsing and output-iterator support. More...
Classes | |
| class | counting_output_iterator |
| Output iterator that counts bytes while forwarding every assignment. More... | |
| struct | directory_record |
| Directory metadata retained until the central directory is emitted. More... | |
Functions | |
| bool | path_is_safe (std::string const &path) |
| Tests whether a member path is confined to a relative extraction root. | |
| template<typename output_iterator> | |
| output_iterator | extract_archive (std::span< std::byte const > archive, output_iterator output, zip_extraction_options const &options) |
| Extracts an archive that has been materialized for random access. | |
Internal ZIP32 parsing and output-iterator support.
| output_iterator rpnx::compression::zip_detail::extract_archive | ( | std::span< std::byte const > | archive, |
| output_iterator | output, | ||
| zip_extraction_options const & | options ) |
Extracts an archive that has been materialized for random access.
| output_iterator | Output iterator accepting zip_entry values. |
| archive | Complete archive image. |
| output | Destination iterator, taken and returned by value. |
| options | Member-count and uncompressed-size limits. |
| compression_error | If structure, paths, sizes, methods, or checksums fail validation, or extraction exceeds a configured limit. |
Definition at line 271 of file zip.hpp.
References rpnx::compression::deflate_codec::crc32(), rpnx::compression::decompress(), rpnx::compression::deflate, rpnx::compression::invalid_data, rpnx::compression::zip_extraction_options::maximum_entry_count, rpnx::compression::zip_extraction_options::maximum_entry_size, rpnx::compression::decompression_options::maximum_output_size, rpnx::compression::zip_extraction_options::maximum_total_size, rpnx::compression::output_limit_exceeded, path_is_safe(), rpnx::compression::stored, rpnx::compression::unsupported_feature, and rpnx::compression::zip.
|
inlinenodiscard |
Tests whether a member path is confined to a relative extraction root.
| path | Path to validate using ZIP's forward-slash convention. |
Definition at line 128 of file zip.hpp.
Referenced by rpnx::compression::create_zip(), and extract_archive().