libzypp  10.5.0
zypp::iostr Namespace Reference

Iostream related utilities. More...

Classes

class  EachLine
 Simple lineparser: Traverse each line in a file. More...

Typedefs

typedef
boost::io::ios_base_all_saver 
IosFmtFlagsSaver
 Save and restore streams width, precision and fmtflags.

Functions

std::string getline (std::istream &str)
 Read one line from stream.
std::ostream & copy (std::istream &from_r, std::ostream &to_r)
 Copy istream to ostream.
std::ostream & copyIndent (std::istream &from_r, std::ostream &to_r, const std::string &indent_r="> ")
 Copy istream to ostream, prefixing each line with indent_r (default "> " ).
void tee (std::istream &from_r, std::ostream &to1_r, std::ostream &to2_r)
 Copy istream to ostream, prefixing each line with indent_r (default "> " ).
template<class _Function >
_Function & forEachLine (std::istream &str_r, _Function &consume_r)
 Simple lineparser: Call functor consume_r for each line.

Detailed Description

Iostream related utilities.


Typedef Documentation

typedef boost::io::ios_base_all_saver zypp::iostr::IosFmtFlagsSaver

Save and restore streams width, precision and fmtflags.

Definition at line 34 of file IOStream.h.


Function Documentation

std::string zypp::iostr::getline ( std::istream &  str)

Read one line from stream.

Reads everything up to the next newline or EOF. newline is read but not returned.

See also:
forEachLine

Definition at line 31 of file IOStream.cc.

std::ostream& zypp::iostr::copy ( std::istream &  from_r,
std::ostream &  to_r 
) [inline]

Copy istream to ostream.

Returns:
reference to the ostream.

Definition at line 49 of file IOStream.h.

std::ostream& zypp::iostr::copyIndent ( std::istream &  from_r,
std::ostream &  to_r,
const std::string &  indent_r = "> " 
) [inline]

Copy istream to ostream, prefixing each line with indent_r (default "> " ).

Returns:
reference to the ostream.

Definition at line 63 of file IOStream.h.

void zypp::iostr::tee ( std::istream &  from_r,
std::ostream &  to1_r,
std::ostream &  to2_r 
) [inline]

Copy istream to ostream, prefixing each line with indent_r (default "> " ).

Returns:
reference to the ostream.

Definition at line 83 of file IOStream.h.

template<class _Function >
_Function& zypp::iostr::forEachLine ( std::istream &  str_r,
_Function &  consume_r 
)

Simple lineparser: Call functor consume_r for each line.

Parameters:
str_rThe istream to read from.
consume_rA reference to a function or functor. The loop is aborted if the function returns false.
 bool consume( const std::string & )
 { ... }

 struct Consume : public std::unary_function<const std::string &, bool>
 {
   bool operator()( const std::string & line_r )
   { ... }
 };
Returns:
A reference to consume_r.
Todo:
Should be templated and specialized according to the functors return type, to allow void consumer.

Definition at line 194 of file IOStream.h.