RPNX::Compress
Self-contained C++20 compression and ZIP library
 
Loading...
Searching...
No Matches
rpnx::compression::zip_detail::counting_output_iterator< output_iterator > Class Template Reference

Output iterator that counts bytes while forwarding every assignment. More...

#include <zip.hpp>

Classes

class  assignment_proxy
 Assignment proxy returned by operator*. More...
 

Public Types

using difference_type = std::ptrdiff_t
 Signed distance type required by the output-iterator interface.
 
using iterator_category = std::output_iterator_tag
 Iterator category advertised to generic algorithms.
 

Public Member Functions

 counting_output_iterator (output_iterator output)
 Constructs a counter around an output iterator.
 
assignment_proxy operator* () noexcept
 Returns an assignment proxy for the current position.
 
counting_output_iteratoroperator++ () noexcept
 Advances after assignment.
 
counting_output_iterator operator++ (int) noexcept
 Applies output-iterator post-increment semantics.
 
output_iterator take_output ()
 Releases the forwarded output iterator.
 
std::size_t size () const noexcept
 Returns the number of forwarded byte assignments.
 

Detailed Description

template<typename output_iterator>
class rpnx::compression::zip_detail::counting_output_iterator< output_iterator >

Output iterator that counts bytes while forwarding every assignment.

Definition at line 155 of file zip.hpp.

Member Typedef Documentation

◆ difference_type

template<typename output_iterator>
using rpnx::compression::zip_detail::counting_output_iterator< output_iterator >::difference_type = std::ptrdiff_t

Signed distance type required by the output-iterator interface.

Definition at line 197 of file zip.hpp.

◆ iterator_category

template<typename output_iterator>
using rpnx::compression::zip_detail::counting_output_iterator< output_iterator >::iterator_category = std::output_iterator_tag

Iterator category advertised to generic algorithms.

Definition at line 200 of file zip.hpp.

Constructor & Destructor Documentation

◆ counting_output_iterator()

template<typename output_iterator>
rpnx::compression::zip_detail::counting_output_iterator< output_iterator >::counting_output_iterator ( output_iterator output)
inlineexplicit

Constructs a counter around an output iterator.

Parameters
outputDestination iterator to own and forward to.

Definition at line 206 of file zip.hpp.

Referenced by rpnx::compression::zip_detail::counting_output_iterator< output_iterator >::assignment_proxy::assignment_proxy(), operator++(), and operator++().

Member Function Documentation

◆ operator*()

template<typename output_iterator>
assignment_proxy rpnx::compression::zip_detail::counting_output_iterator< output_iterator >::operator* ( )
inlinenodiscardnoexcept

Returns an assignment proxy for the current position.

Returns
Proxy that forwards and counts one assignment.

Definition at line 214 of file zip.hpp.

◆ operator++() [1/2]

template<typename output_iterator>
counting_output_iterator & rpnx::compression::zip_detail::counting_output_iterator< output_iterator >::operator++ ( )
inlinenoexcept

Advances after assignment.

Returns
This iterator; the underlying iterator was already advanced by assignment.

Definition at line 223 of file zip.hpp.

References counting_output_iterator().

◆ operator++() [2/2]

template<typename output_iterator>
counting_output_iterator rpnx::compression::zip_detail::counting_output_iterator< output_iterator >::operator++ ( int )
inlinenoexcept

Applies output-iterator post-increment semantics.

Returns
A copy referring to the same already-advanced destination state.

Definition at line 232 of file zip.hpp.

References counting_output_iterator().

◆ size()

template<typename output_iterator>
std::size_t rpnx::compression::zip_detail::counting_output_iterator< output_iterator >::size ( ) const
inlinenodiscardnoexcept

Returns the number of forwarded byte assignments.

Returns
Encoded byte count since construction.

Definition at line 250 of file zip.hpp.

Referenced by rpnx::compression::create_zip().

◆ take_output()

template<typename output_iterator>
output_iterator rpnx::compression::zip_detail::counting_output_iterator< output_iterator >::take_output ( )
inlinenodiscard

Releases the forwarded output iterator.

Returns
The owned iterator at its current output position.

Definition at line 241 of file zip.hpp.

Referenced by rpnx::compression::create_zip().


The documentation for this class was generated from the following file: