MOAB: Mesh Oriented datABase
(version 5.4.1)
|
Public Member Functions | |
StreamRedirector () | |
~StreamRedirector () | |
void | redirect () |
void | restore () |
void | clear () |
void | print_stream_bytes (const char *prefix, string bytes) |
void | check_stream (const char *name, ostringstream &str, bool &result) |
bool | have_data () |
Public Attributes | |
ostringstream | outstr |
ostringstream | errstr |
ostringstream | logstr |
Private Attributes | |
streambuf * | outbuf |
streambuf * | errbuf |
streambuf * | logbuf |
Definition at line 685 of file QualityAssessorTest.cpp.
StreamRedirector::StreamRedirector | ( | ) | [inline] |
Definition at line 692 of file QualityAssessorTest.cpp.
StreamRedirector::~StreamRedirector | ( | ) | [inline] |
Definition at line 699 of file QualityAssessorTest.cpp.
{ restore(); }
void StreamRedirector::check_stream | ( | const char * | name, |
ostringstream & | str, | ||
bool & | result | ||
) | [inline] |
Definition at line 772 of file QualityAssessorTest.cpp.
{ string s = str.str(); if( s.empty() ) return; result = true; print_stream_bytes( name, s ); }
void StreamRedirector::clear | ( | ) | [inline] |
Definition at line 719 of file QualityAssessorTest.cpp.
bool StreamRedirector::have_data | ( | ) | [inline] |
Definition at line 781 of file QualityAssessorTest.cpp.
Referenced by QualityAssessorTest::test_output_control().
{ bool result = false; check_stream( "std::cout", outstr, result ); check_stream( "std::cerr", errstr, result ); check_stream( "std::clog", logstr, result ); return result; }
void StreamRedirector::print_stream_bytes | ( | const char * | prefix, |
string | bytes | ||
) | [inline] |
Definition at line 727 of file QualityAssessorTest.cpp.
{ // fix output stream so we can use it to print results streambuf* sbuf = cout.rdbuf(); cout.rdbuf( outbuf ); cout << prefix << ": " << bytes.size() << " characters: "; for( string::iterator i = bytes.begin(); i != bytes.end(); ++i ) if( isprint( *i ) || *i == ' ' ) cout << *i; else switch( *i ) { case '\a': cout << "\\a"; break; case '\b': cout << "\\b"; break; case '\t': cout << "\\t"; break; case '\n': cout << "\\n"; break; case '\v': cout << "\\v"; break; case '\f': cout << "\\f"; break; case '\r': cout << "\\r"; break; case '\0': cout << "\\0"; break; default: cout << '\\' << setw( 3 ) << setfill( '0' ) << oct << *i; break; } cout << endl; // restore cout to incomming state cout.rdbuf( sbuf ); }
void StreamRedirector::redirect | ( | ) | [inline] |
Definition at line 704 of file QualityAssessorTest.cpp.
Referenced by QualityAssessorTest::test_output_control().
void StreamRedirector::restore | ( | ) | [inline] |
Definition at line 712 of file QualityAssessorTest.cpp.
Referenced by QualityAssessorTest::test_output_control().
streambuf * StreamRedirector::errbuf [private] |
Definition at line 688 of file QualityAssessorTest.cpp.
ostringstream StreamRedirector::errstr |
Definition at line 691 of file QualityAssessorTest.cpp.
streambuf * StreamRedirector::logbuf [private] |
Definition at line 688 of file QualityAssessorTest.cpp.
ostringstream StreamRedirector::logstr |
Definition at line 691 of file QualityAssessorTest.cpp.
streambuf* StreamRedirector::outbuf [private] |
Definition at line 688 of file QualityAssessorTest.cpp.
ostringstream StreamRedirector::outstr |
Definition at line 691 of file QualityAssessorTest.cpp.