zypp::InputStream Class Reference

Helper to create and pass std::istream. More...

#include <InputStream.h>

List of all members.

Public Member Functions

 InputStream ()
 Default ctor providing std::cin.
 InputStream (std::istream &stream_r, const std::string &name_r=std::string())
 Ctor providing an aleady existig std::istream.
 InputStream (const Pathname &file_r)
 Ctor for reading a (gziped) file.
 InputStream (const Pathname &file_r, const std::string &name_r)
 Ctor for reading a (gziped) file.
 InputStream (const std::string &file_r)
 Ctor for reading a (gziped) file.
 InputStream (const std::string &file_r, const std::string &name_r)
 Ctor for reading a (gziped) file.
 InputStream (const char *file_r)
 Ctor for reading a (gziped) file.
 InputStream (const char *file_r, const std::string &name_r)
 Ctor for reading a (gziped) file.
 ~InputStream ()
 Dtor.
std::istream & stream () const
 The std::istream.
 operator std::istream & () const
 Allow implicit conversion to std::istream.
const std::string & name () const
 Name of the std::istream.
const Pathname & path () const
 Path to the input file or empty if no file.
std::streamoff size () const
 Size of the input stream (informal).
void setSize (std::streamoff val_r)
 Set the size of the input stream.

Private Attributes

Pathname _path
shared_ptr< std::istream > _stream
std::string _name
DefaultIntegral
< std::streamoff,-1 > 
_size

Related Functions

(Note that these are not member functions.)

std::ostream & operator<< (std::ostream &str, const InputStream &obj)


Detailed Description

Helper to create and pass std::istream.

The provided std::istream may either be std::cin, sone (gziped) file or an aleady existig std::istream.

An optional name arument may be passed to the ctor, to identify the stream in log messages, even if it is not a file.

Per default the name is "STDIN", the path to an input file or empty.

 void parse( const InputStream & input = InputStream() )
 {
   // process input.stream() and refer to input.name()
   // in log messages.
 }

 parse();                  // std::cin
 parse( "/some/file" );    // file
 parse( "/some/file.gz" ); // gziped file
 std::istream & mystream;
 parse( mystream );        // some existing stream
 parse( InputStream( mystream,
                     "my stream's name" ) );

Definition at line 56 of file InputStream.h.


Constructor & Destructor Documentation

zypp::InputStream::InputStream (  ) 

Default ctor providing std::cin.

Definition at line 47 of file InputStream.cc.

zypp::InputStream::InputStream ( std::istream &  stream_r,
const std::string &  name_r = std::string() 
)

Ctor providing an aleady existig std::istream.

Definition at line 57 of file InputStream.cc.

zypp::InputStream::InputStream ( const Pathname &  file_r  ) 

Ctor for reading a (gziped) file.

Definition at line 68 of file InputStream.cc.

zypp::InputStream::InputStream ( const Pathname &  file_r,
const std::string &  name_r 
)

Ctor for reading a (gziped) file.

Definition at line 80 of file InputStream.cc.

zypp::InputStream::InputStream ( const std::string &  file_r  ) 

Ctor for reading a (gziped) file.

Definition at line 93 of file InputStream.cc.

zypp::InputStream::InputStream ( const std::string &  file_r,
const std::string &  name_r 
)

Ctor for reading a (gziped) file.

Definition at line 105 of file InputStream.cc.

zypp::InputStream::InputStream ( const char *  file_r  ) 

Ctor for reading a (gziped) file.

Definition at line 118 of file InputStream.cc.

zypp::InputStream::InputStream ( const char *  file_r,
const std::string &  name_r 
)

Ctor for reading a (gziped) file.

Definition at line 130 of file InputStream.cc.

zypp::InputStream::~InputStream (  ) 

Dtor.

Definition at line 143 of file InputStream.cc.


Member Function Documentation

std::istream& zypp::InputStream::stream (  )  const [inline]

The std::istream.

Note:
The provided std::istream is never const.

Definition at line 93 of file InputStream.h.

References _stream.

Referenced by zypp::operator<<(), zypp::parser::susetags::ContentFileReader::parse(), zypp::parser::IniParser::parse(), zypp::parser::ServiceFileReader::Impl::parseServices(), and zypp::xml::Reader::Reader().

zypp::InputStream::operator std::istream & (  )  const [inline]

Allow implicit conversion to std::istream.

Definition at line 97 of file InputStream.h.

References _stream.

const std::string& zypp::InputStream::name (  )  const [inline]

Name of the std::istream.

Per default this is "STDIN", the path to an input file or empty. A custom string may be provided to the ctor.

This may be used in log messages to identify the stream even even if it is not a file.

Definition at line 107 of file InputStream.h.

Referenced by zypp::makeProgressData(), zypp::operator<<(), zypp::parser::susetags::ContentFileReader::parse(), and zypp::parser::IniParser::parse().

const Pathname& zypp::InputStream::path (  )  const [inline]

Path to the input file or empty if no file.

Definition at line 111 of file InputStream.h.

Referenced by zypp::parser::repositories_in_stream().

std::streamoff zypp::InputStream::size (  )  const [inline]

Size of the input stream (informal).

If constructed from an uncompressed file, the file size. Otherwise -1. See setSize;

Definition at line 118 of file InputStream.h.

Referenced by zypp::makeProgressData().

void zypp::InputStream::setSize ( std::streamoff  val_r  )  [inline]

Set the size of the input stream.

You may set it to whatever vaule is appropriate. E.g. *=10 to compensate gzip comression. or the number of items, lines, ... The value is not used here, just provided.

Definition at line 127 of file InputStream.h.


Friends And Related Function Documentation

std::ostream & operator<< ( std::ostream &  str,
const InputStream obj 
) [related]

Stream output

Definition at line 151 of file InputStream.cc.


Member Data Documentation

Pathname zypp::InputStream::_path [private]

Definition at line 131 of file InputStream.h.

shared_ptr<std::istream> zypp::InputStream::_stream [private]

Definition at line 132 of file InputStream.h.

Referenced by operator std::istream &(), and stream().

std::string zypp::InputStream::_name [private]

Definition at line 133 of file InputStream.h.

DefaultIntegral<std::streamoff,-1> zypp::InputStream::_size [private]

Definition at line 134 of file InputStream.h.


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

doxygen