ChampSim
champsim::inf_istream< Tag, StreamType >::inf_streambuf< IStrm > Class Template Reference

#include <inf_stream.h>

Inheritance diagram for champsim::inf_istream< Tag, StreamType >::inf_streambuf< IStrm >:
[legend]
Collaboration diagram for champsim::inf_istream< Tag, StreamType >::inf_streambuf< IStrm >:
[legend]

Public Member Functions

 inf_streambuf (IStrm *in)
 
 inf_streambuf (Tag, IStrm *in)
 
std::size_t bytes_read () const
 

Protected Member Functions

int_type underflow () override
 

Private Types

using base_type = std::basic_streambuf< typename IStrm::char_type, std::char_traits< typename IStrm::char_type > >
 
using int_type = typename base_type::int_type
 
using char_type = typename base_type::char_type
 
using strm_in_buf_type = typename Tag::in_char_type
 
using strm_out_buf_type = typename Tag::out_char_type
 

Private Attributes

std::array< strm_in_buf_type, CHUNKin_buf
 
std::array< char_type, CHUNKout_buf
 
Tag::inflate_state_type strm = Tag::new_inflate_state()
 
std::add_pointer< IStrm >::type src
 

Static Private Attributes

constexpr static std::size_t CHUNK = (1 << 16)
 

Member Typedef Documentation

◆ base_type

template<typename Tag , typename StreamType = std::ifstream>
template<typename IStrm >
using champsim::inf_istream< Tag, StreamType >::inf_streambuf< IStrm >::base_type = std::basic_streambuf<typename IStrm::char_type, std::char_traits<typename IStrm::char_type> >
private

◆ char_type

template<typename Tag , typename StreamType = std::ifstream>
template<typename IStrm >
using champsim::inf_istream< Tag, StreamType >::inf_streambuf< IStrm >::char_type = typename base_type::char_type
private

◆ int_type

template<typename Tag , typename StreamType = std::ifstream>
template<typename IStrm >
using champsim::inf_istream< Tag, StreamType >::inf_streambuf< IStrm >::int_type = typename base_type::int_type
private

◆ strm_in_buf_type

template<typename Tag , typename StreamType = std::ifstream>
template<typename IStrm >
using champsim::inf_istream< Tag, StreamType >::inf_streambuf< IStrm >::strm_in_buf_type = typename Tag::in_char_type
private

◆ strm_out_buf_type

template<typename Tag , typename StreamType = std::ifstream>
template<typename IStrm >
using champsim::inf_istream< Tag, StreamType >::inf_streambuf< IStrm >::strm_out_buf_type = typename Tag::out_char_type
private

Constructor & Destructor Documentation

◆ inf_streambuf() [1/2]

template<typename Tag , typename StreamType = std::ifstream>
template<typename IStrm >
champsim::inf_istream< Tag, StreamType >::inf_streambuf< IStrm >::inf_streambuf ( IStrm *  in)
inlineexplicit

◆ inf_streambuf() [2/2]

template<typename Tag , typename StreamType = std::ifstream>
template<typename IStrm >
champsim::inf_istream< Tag, StreamType >::inf_streambuf< IStrm >::inf_streambuf ( Tag  ,
IStrm *  in 
)
inlineexplicit

Member Function Documentation

◆ bytes_read()

template<typename Tag , typename StreamType = std::ifstream>
template<typename IStrm >
std::size_t champsim::inf_istream< Tag, StreamType >::inf_streambuf< IStrm >::bytes_read ( ) const
inline

◆ underflow()

template<typename T , typename S >
template<typename I >
auto champsim::inf_istream< T, S >::inf_streambuf< I >::underflow
overrideprotected

Member Data Documentation

◆ CHUNK

template<typename Tag , typename StreamType = std::ifstream>
template<typename IStrm >
constexpr static std::size_t champsim::inf_istream< Tag, StreamType >::inf_streambuf< IStrm >::CHUNK = (1 << 16)
staticconstexprprivate

◆ in_buf

template<typename Tag , typename StreamType = std::ifstream>
template<typename IStrm >
std::array<strm_in_buf_type, CHUNK> champsim::inf_istream< Tag, StreamType >::inf_streambuf< IStrm >::in_buf
private

◆ out_buf

template<typename Tag , typename StreamType = std::ifstream>
template<typename IStrm >
std::array<char_type, CHUNK> champsim::inf_istream< Tag, StreamType >::inf_streambuf< IStrm >::out_buf
private

◆ src

template<typename Tag , typename StreamType = std::ifstream>
template<typename IStrm >
std::add_pointer<IStrm>::type champsim::inf_istream< Tag, StreamType >::inf_streambuf< IStrm >::src
private

◆ strm

template<typename Tag , typename StreamType = std::ifstream>
template<typename IStrm >
Tag::inflate_state_type champsim::inf_istream< Tag, StreamType >::inf_streambuf< IStrm >::strm = Tag::new_inflate_state()
private

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