Rosetta
Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
utility::io::izstream Class Reference

izstream: Input file stream wrapper for uncompressed and compressed files More...

#include <izstream.hh>

Inheritance diagram for utility::io::izstream:
Inheritance graph
[legend]

Public Member Functions

 izstream ()
 Default constructor. More...
 
 izstream (std::string const &filename_a, std::ios_base::openmode open_mode=std::ios_base::in)
 Filename constructor. More...
 
 ~izstream () override
 Destructor. More...
 
 operator bool () const override
 bool conversion More...
 
 operator std::istream const & () const override
 Stream conversion. More...
 
 operator std::istream & () override
 Stream conversion. More...
 
template<typename T >
std::istream & operator>> (T &t)
 Stream input. More...
 
std::istream & operator>> (manipulator m)
 Stream manipulator input. More...
 
std::istream & operator>> (std_manipulator m) override
 Stream manipulator input. More...
 
void open (std::string const &filename_a, std::ios_base::openmode open_mode=std::ios_base::in)
 Open a file. More...
 
void clear () override
 Clear the stream(s) More...
 
void close ()
 Close the ifstream and reset the state. More...
 
void seek_beg () override
 Seek to the beginning. More...
 
int get () override
 Get the next character. More...
 
izstreamget (char &c) override
 Get the next character. More...
 
izstreamget (char *str, std::streamsize const count) override
 Get the next specified number of characters. More...
 
izstreamget (char *str, std::streamsize const count, char const delim) override
 Get the next specified number of characters. More...
 
izstreamget (std::string &str, std::streamsize const count) override
 Get the next specified number of characters. More...
 
izstreamget (std::string &str, std::streamsize const count, char const delim) override
 Get the next specified number of characters. More...
 
izstreamgetline (char *line, std::streamsize const count) override
 Get the rest of the line. More...
 
izstreamgetline (char *line, std::streamsize const count, char const delim) override
 Get the rest of the line. More...
 
izstreamgetline (std::string &line) override
 Get the rest of the line. More...
 
izstreamgetline (std::string &line, char const delim) override
 Get the rest of the line. More...
 
izstreamread (char *str, std::streamsize const count) override
 Read the next specified number of characters. More...
 
izstreamread (std::string &str, std::streamsize const count) override
 Read the next specified number of characters. More...
 
std::streamsize readsome (char *str, std::streamsize const count) override
 Read the next available specified number of characters. More...
 
std::streamsize readsome (std::string &str, std::streamsize const count) override
 Read the next available specified number of characters. More...
 
izstreamignore () override
 Skip over the next character. More...
 
izstreamignore (std::streamsize const count) override
 Skip over the next specified number of characters. More...
 
izstreamignore (std::streamsize const count, char const delim) override
 Skip over the next specified number of characters. More...
 
int peek () override
 Returns the next character without extracting it. More...
 
izstreamunget () override
 Put the last character read back into the stream. More...
 
izstreamputback (char c) override
 Put the last character read back into the stream and check that passed character is correct. More...
 
std::istream const & operator() () const override
 Stream access. More...
 
std::istream & operator() () override
 Stream access. More...
 
std::istream const & stream () const override
 Stream access. More...
 
std::istream & stream () override
 Stream access. More...
 
std::streambuf * rdbuf () const override
 Pointer to the stream buffer. More...
 
std::string const & filename () const
 File name. More...
 
std::streamsize gcount () const
 Get the number of characters read by the last unformatted read. More...
 
bool good () const override
 Good? More...
 
bool eof () const override
 End of file? More...
 
bool fail () const override
 Fail? More...
 
bool bad () const override
 Bad? More...
 
bool compressed () const override
 Compressed? More...
 
bool uncompressed () const override
 Uncompressed? More...
 
bool gzipped () const override
 gzipped? More...
 
- Public Member Functions inherited from utility::io::irstream
virtual ~irstream ()
 Destructor. More...
 
template<typename T >
irstreamoperator>> (T &t)
 Stream input. More...
 

Static Public Member Functions

static void set_alternative_search_paths (vector1< std::string > alternative_search_paths)
 
static vector1< std::string > get_alternative_search_paths ()
 

Private Types

enum  Compression { NONE , UNCOMPRESSED , GZIP }
 
typedef std::istream &(* manipulator) (izstream &)
 
typedef std::istream &(* std_manipulator) (std::istream &)
 

Private Member Functions

bool is_gzip () const
 Is stream attached to a gzip file? More...
 
bool check_crc () const
 CRC of gzip file valid? More...
 
long get_crc () const
 CRC of the uncompressed data (see zipstream documentation) More...
 
long get_in_size () const
 Compressed data size. More...
 
long get_out_size () const
 Uncompressed data size. More...
 
void open_ifstream (std::string const &name, std::ios_base::openmode open_mode)
 Helper function for opening files with alternative search paths. More...
 

Private Attributes

Compression compression_
 Compression state. More...
 
std::ifstream if_stream_
 File stream. More...
 
std::string filename_
 File name. More...
 
zlib_stream::zip_istreamzip_stream_p_
 Zip file stream pointer (owning) More...
 

Static Private Attributes

static vector1< std::string > alternative_search_paths_
 Alternative search paths This initialized by the option system -in:path:path Notice that izstream cannot access the option system (because the utility library comes before the basic library), so setting the alternate search paths is it the responsibility of core::init::init() More...
 

Friends

long utility::file::gzip (std::string const &uncompressedfile, bool overwrite)
 
long utility::file::gunzip (std::string const &compressedfile, bool overwrite)
 

Additional Inherited Members

- Protected Types inherited from utility::io::irstream
typedef std::istream &(* std_manipulator) (std::istream &)
 
- Protected Member Functions inherited from utility::io::irstream
 irstream ()=default
 Default constructor. More...
 

Detailed Description

izstream: Input file stream wrapper for uncompressed and compressed files

Member Typedef Documentation

◆ manipulator

typedef std::istream&(* utility::io::izstream::manipulator) (izstream &)
private

◆ std_manipulator

typedef std::istream&(* utility::io::izstream::std_manipulator) (std::istream &)
private

Member Enumeration Documentation

◆ Compression

Enumerator
NONE 
UNCOMPRESSED 
GZIP 

Constructor & Destructor Documentation

◆ izstream() [1/2]

utility::io::izstream::izstream ( )
inline

Default constructor.

◆ izstream() [2/2]

utility::io::izstream::izstream ( std::string const &  filename_a,
std::ios_base::openmode  open_mode = std::ios_base::in 
)
inlineexplicit

Filename constructor.

References open().

◆ ~izstream()

utility::io::izstream::~izstream ( )
inlineoverride

Destructor.

References if_stream_, and zip_stream_p_.

Member Function Documentation

◆ bad()

bool utility::io::izstream::bad ( ) const
inlineoverridevirtual

Bad?

Implements utility::io::irstream.

References stream().

◆ check_crc()

bool utility::io::izstream::check_crc ( ) const
inlineprivate

◆ clear()

void utility::io::izstream::clear ( )
inlineoverridevirtual

◆ close()

void utility::io::izstream::close ( )
inline

◆ compressed()

bool utility::io::izstream::compressed ( ) const
inlineoverridevirtual

Compressed?

Implements utility::io::irstream.

References compression_, and GZIP.

Referenced by pyrosetta.distributed.cluster.io.IO::_save_results().

◆ eof()

bool utility::io::izstream::eof ( ) const
inlineoverridevirtual

◆ fail()

bool utility::io::izstream::fail ( ) const
inlineoverridevirtual

◆ filename()

std::string const& utility::io::izstream::filename ( ) const
inline

◆ gcount()

std::streamsize utility::io::izstream::gcount ( ) const
inline

Get the number of characters read by the last unformatted read.

References stream().

◆ get() [1/6]

int utility::io::izstream::get ( )
inlineoverridevirtual

Get the next character.

Implements utility::io::irstream.

References stream().

◆ get() [2/6]

izstream& utility::io::izstream::get ( char &  c)
inlineoverridevirtual

Get the next character.

Implements utility::io::irstream.

References kmeans_adaptive_kernel_density_bb_dependent_rotlib::c, and stream().

◆ get() [3/6]

izstream& utility::io::izstream::get ( char *  str,
std::streamsize const  count 
)
inlineoverridevirtual

Get the next specified number of characters.

Implements utility::io::irstream.

References count, str(), and stream().

◆ get() [4/6]

izstream& utility::io::izstream::get ( char *  str,
std::streamsize const  count,
char const  delim 
)
inlineoverridevirtual

Get the next specified number of characters.

Implements utility::io::irstream.

References count, str(), and stream().

◆ get() [5/6]

izstream& utility::io::izstream::get ( std::string &  str,
std::streamsize const  count 
)
inlineoverridevirtual

Get the next specified number of characters.

Implements utility::io::irstream.

References count, basic::options::OptionKeys::cp::cp, str(), and stream().

◆ get() [6/6]

izstream& utility::io::izstream::get ( std::string &  str,
std::streamsize const  count,
char const  delim 
)
inlineoverridevirtual

Get the next specified number of characters.

Implements utility::io::irstream.

References count, basic::options::OptionKeys::cp::cp, str(), and stream().

◆ get_alternative_search_paths()

static vector1< std::string > utility::io::izstream::get_alternative_search_paths ( )
inlinestatic

◆ get_crc()

long utility::io::izstream::get_crc ( ) const
inlineprivate

CRC of the uncompressed data (see zipstream documentation)

References zlib_stream::basic_zip_istream< Elem, Tr, ElemA, ByteT, ByteAT >::get_crc(), and zip_stream_p_.

◆ get_in_size()

long utility::io::izstream::get_in_size ( ) const
inlineprivate

◆ get_out_size()

long utility::io::izstream::get_out_size ( ) const
inlineprivate

◆ getline() [1/4]

izstream& utility::io::izstream::getline ( char *  line,
std::streamsize const  count 
)
inlineoverridevirtual

◆ getline() [2/4]

izstream& utility::io::izstream::getline ( char *  line,
std::streamsize const  count,
char const  delim 
)
inlineoverridevirtual

Get the rest of the line.

Implements utility::io::irstream.

References count, line, and stream().

◆ getline() [3/4]

izstream& utility::io::izstream::getline ( std::string &  line)
inlineoverridevirtual

Get the rest of the line.

Implements utility::io::irstream.

References getline(), line, and stream().

◆ getline() [4/4]

izstream& utility::io::izstream::getline ( std::string &  line,
char const  delim 
)
inlineoverridevirtual

Get the rest of the line.

Implements utility::io::irstream.

References getline(), line, and stream().

◆ good()

bool utility::io::izstream::good ( ) const
inlineoverridevirtual

◆ gzipped()

bool utility::io::izstream::gzipped ( ) const
inlineoverridevirtual

gzipped?

Implements utility::io::irstream.

References compression_, and GZIP.

◆ ignore() [1/3]

izstream& utility::io::izstream::ignore ( )
inlineoverridevirtual

Skip over the next character.

Implements utility::io::irstream.

References stream().

Referenced by utility::io::skip().

◆ ignore() [2/3]

izstream& utility::io::izstream::ignore ( std::streamsize const  count)
inlineoverridevirtual

Skip over the next specified number of characters.

Implements utility::io::irstream.

References count, and stream().

◆ ignore() [3/3]

izstream& utility::io::izstream::ignore ( std::streamsize const  count,
char const  delim 
)
inlineoverridevirtual

Skip over the next specified number of characters.

Implements utility::io::irstream.

References count, and stream().

◆ is_gzip()

bool utility::io::izstream::is_gzip ( ) const
inlineprivate

◆ open()

void utility::io::izstream::open ( std::string const &  filename_a,
std::ios_base::openmode  open_mode = std::ios_base::in 
)

◆ open_ifstream()

void utility::io::izstream::open_ifstream ( std::string const &  name,
std::ios_base::openmode  open_mode 
)
private

◆ operator bool()

utility::io::izstream::operator bool ( ) const
inlineoverridevirtual

bool conversion

Implements utility::io::irstream.

References if_stream_, and zip_stream_p_.

◆ operator std::istream &()

utility::io::izstream::operator std::istream & ( )
inlineoverridevirtual

Stream conversion.

Implements utility::io::irstream.

References if_stream_, and zip_stream_p_.

◆ operator std::istream const &()

utility::io::izstream::operator std::istream const & ( ) const
inlineoverridevirtual

Stream conversion.

Implements utility::io::irstream.

References if_stream_, and zip_stream_p_.

◆ operator()() [1/2]

std::istream const& utility::io::izstream::operator() ( ) const
inlineoverridevirtual

Stream access.

Implements utility::io::irstream.

References if_stream_, and zip_stream_p_.

◆ operator()() [2/2]

std::istream& utility::io::izstream::operator() ( )
inlineoverridevirtual

Stream access.

Implements utility::io::irstream.

References if_stream_, and zip_stream_p_.

◆ operator>>() [1/3]

std::istream& utility::io::izstream::operator>> ( manipulator  m)
inline

Stream manipulator input.

References kmeans_adaptive_kernel_density_bb_dependent_rotlib::m.

◆ operator>>() [2/3]

std::istream& utility::io::izstream::operator>> ( std_manipulator  m)
inlineoverridevirtual

Stream manipulator input.

Implements utility::io::irstream.

References kmeans_adaptive_kernel_density_bb_dependent_rotlib::m.

◆ operator>>() [3/3]

template<typename T >
std::istream& utility::io::izstream::operator>> ( T t)
inline

Stream input.

References stream(), and predPRE::t.

◆ peek()

int utility::io::izstream::peek ( )
inlineoverridevirtual

Returns the next character without extracting it.

Implements utility::io::irstream.

References stream().

◆ putback()

izstream& utility::io::izstream::putback ( char  c)
inlineoverridevirtual

Put the last character read back into the stream and check that passed character is correct.

Implements utility::io::irstream.

References kmeans_adaptive_kernel_density_bb_dependent_rotlib::c, and stream().

◆ rdbuf()

std::streambuf* utility::io::izstream::rdbuf ( ) const
inlineoverridevirtual

Pointer to the stream buffer.

Implements utility::io::irstream.

References stream().

◆ read() [1/2]

izstream& utility::io::izstream::read ( char *  str,
std::streamsize const  count 
)
inlineoverridevirtual

Read the next specified number of characters.

Implements utility::io::irstream.

References count, str(), and stream().

Referenced by numeric::read_tensor_from_file().

◆ read() [2/2]

izstream& utility::io::izstream::read ( std::string &  str,
std::streamsize const  count 
)
inlineoverridevirtual

Read the next specified number of characters.

Implements utility::io::irstream.

References count, basic::options::OptionKeys::cp::cp, str(), and stream().

◆ readsome() [1/2]

std::streamsize utility::io::izstream::readsome ( char *  str,
std::streamsize const  count 
)
inlineoverridevirtual

Read the next available specified number of characters.

Implements utility::io::irstream.

References count, str(), and stream().

◆ readsome() [2/2]

std::streamsize utility::io::izstream::readsome ( std::string &  str,
std::streamsize const  count 
)
inlineoverridevirtual

Read the next available specified number of characters.

Implements utility::io::irstream.

References count, basic::options::OptionKeys::cp::cp, str(), and stream().

◆ seek_beg()

void utility::io::izstream::seek_beg ( )
inlineoverridevirtual

◆ set_alternative_search_paths()

static void utility::io::izstream::set_alternative_search_paths ( vector1< std::string >  alternative_search_paths)
inlinestatic

◆ stream() [1/2]

std::istream const& utility::io::izstream::stream ( ) const
inlineoverridevirtual

◆ stream() [2/2]

std::istream& utility::io::izstream::stream ( )
inlineoverridevirtual

Stream access.

Implements utility::io::irstream.

References if_stream_, and zip_stream_p_.

◆ uncompressed()

bool utility::io::izstream::uncompressed ( ) const
inlineoverridevirtual

Uncompressed?

Implements utility::io::irstream.

References compression_, and UNCOMPRESSED.

◆ unget()

izstream& utility::io::izstream::unget ( )
inlineoverridevirtual

Put the last character read back into the stream.

Implements utility::io::irstream.

References stream().

Friends And Related Function Documentation

◆ utility::file::gunzip

long utility::file::gunzip ( std::string const &  compressedfile,
bool  overwrite 
)
friend

◆ utility::file::gzip

long utility::file::gzip ( std::string const &  uncompressedfile,
bool  overwrite 
)
friend

Member Data Documentation

◆ alternative_search_paths_

vector1< std::string > utility::io::izstream::alternative_search_paths_
staticprivate

Alternative search paths This initialized by the option system -in:path:path Notice that izstream cannot access the option system (because the utility library comes before the basic library), so setting the alternate search paths is it the responsibility of core::init::init()

Referenced by get_alternative_search_paths(), open_ifstream(), and set_alternative_search_paths().

◆ compression_

Compression utility::io::izstream::compression_
private

Compression state.

Referenced by close(), compressed(), gzipped(), open(), and uncompressed().

◆ filename_

std::string utility::io::izstream::filename_
private

File name.

Referenced by close(), filename(), and open_ifstream().

◆ if_stream_

std::ifstream utility::io::izstream::if_stream_
private

◆ zip_stream_p_

zlib_stream::zip_istream* utility::io::izstream::zip_stream_p_
private

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