MOAB: Mesh Oriented datABase
(version 5.4.1)
|
Utility class for printing debug output. More...
#include <DebugOutput.hpp>
Public Member Functions | |
DebugOutput (DebugOutputStream *str, unsigned verbosity=0) | |
DebugOutput (DebugOutputStream *str, int rank, unsigned verbosity=0) | |
DebugOutput (FILE *str, unsigned verbosity=0) | |
DebugOutput (FILE *str, int rank, unsigned verbosity=0) | |
DebugOutput (std::ostream &str, unsigned verbosity=0) | |
DebugOutput (std::ostream &str, int rank, unsigned verbosity=0) | |
DebugOutput (const char *pfx, DebugOutputStream *str, unsigned verbosity=0) | |
DebugOutput (const char *pfx, DebugOutputStream *str, int rank, unsigned verbosity=0) | |
DebugOutput (const char *pfx, FILE *str, unsigned verbosity=0) | |
DebugOutput (const char *pfx, FILE *str, int rank, unsigned verbosity=0) | |
DebugOutput (const char *pfx, std::ostream &str, unsigned verbosity=0) | |
DebugOutput (const char *pfx, std::ostream &str, int rank, unsigned verbosity=0) | |
DebugOutput (const DebugOutput ©) | |
DebugOutput & | operator= (const DebugOutput ©) |
~DebugOutput () | |
bool | have_rank () const |
Check if MPI rank has been set. | |
int | get_rank () const |
Get MPI rank. | |
void | set_rank (int rank) |
Set MPI rank. | |
void | use_world_rank () |
Set MPI rank to the rank of this proccess in MPI_COMM_WORLD, or zero if MOAB is build w/out MPI. | |
void | limit_output_to_first_N_procs (int N) |
Only print debug output from N processes. | |
unsigned | get_verbosity () const |
Get verbosity limit. | |
void | set_verbosity (unsigned val) |
Set verbosity limit. | |
const std::string & | get_prefix () const |
Get line prefix. | |
void | set_prefix (const std::string &str) |
Set line prefix. | |
void | print (int verbosity, const char *str) |
Output the specified string iff output is enabled. | |
void | print (int verbosity, const std::string &str) |
Output the specified string iff output is enabled. | |
void | printf (int verbosity, const char *fmt,...) MB_PRINTF(2) |
Output the specified printf-formatted output iff output is enabled. | |
void | tprint (int verbosity, const char *str) |
Output the specified string iff output is enabled. | |
void | tprint (int verbosity, const std::string &str) |
Output the specified string iff output is enabled. | |
void | tprintf (int verbosity, const char *fmt,...) MB_PRINTF(2) |
Output the specified printf-formatted output iff output is enabled. | |
void | print (int verbosity, const char *pfx, const Range &range) |
Print the contents of a moab::Range. | |
void | print (int verbosity, const Range &range) |
Print the contents of a moab::Range. | |
void | print_ints (int verbosity, const char *pfx, const Range &range) |
Print the contents of a moab::Range as numerical values only. | |
void | print_ints (int verbosity, const Range &range) |
Print the contents of a moab::Range as numerical values only. | |
Private Member Functions | |
void | tprint () |
void | list_range_real (const char *pfx, const Range &range) |
void | list_ints_real (const char *pfx, const Range &range) |
void | print_real (const char *buffer) |
void | print_real (const std::string &str) |
void | tprint_real (const char *buffer) |
void | tprint_real (const std::string &str) |
void | print_real (const char *buffer, va_list args1, va_list args2) |
void | tprint_real (const char *buffer, va_list args1, va_list args2) |
void | process_line_buffer () |
bool | check (unsigned verbosity) |
Private Attributes | |
std::string | linePfx |
DebugOutputStream * | outputImpl |
int | mpiRank |
unsigned | verbosityLimit |
CpuTimer | cpuTi |
std::vector< char > | lineBuffer |
Utility class for printing debug output.
This class implements line-oriented output. That is, it buffers output data until a newline is encountered, at which point it sends the output to the output stream followed by an explicit flush, and optionally prefixed with the MPI rank.
This class also implements a verbosity filter for all output. The class instance has a verbosity limit. Each request for output has an associated verbosity level. If the verbosity level for the output is is less greater than the limit then the output is discarded. By convetion a verbosity limit of zero should indicate no output. Therefore all requests for output should have an associated verbosity level greater than or equal to one.
Any output not terminated with an newline character or followed by later output containing a newline character will not be flushed until the destructor is invoked. C++-style IO (i.e. std::ostream) is not supported because it is necessarily inefficient for debug-type output. All formatting (e.g. converting arguments to strings, etc.) must be done even when output is disabled.
Definition at line 43 of file DebugOutput.hpp.
moab::DebugOutput::DebugOutput | ( | DebugOutputStream * | str, |
unsigned | verbosity = 0 |
||
) |
str | Output stream to which to flush output |
verbosity | Verbosity limit. |
Definition at line 62 of file DebugOutput.cpp.
References moab::DebugOutputStream::referenceCount.
: outputImpl( impl ), mpiRank( -1 ), verbosityLimit( verbosity ) { impl->referenceCount++; assert( impl->referenceCount > 1 ); }
moab::DebugOutput::DebugOutput | ( | DebugOutputStream * | str, |
int | rank, | ||
unsigned | verbosity = 0 |
||
) |
str | Output stream to which to flush output |
rank | MPI rank with which to prefix output. |
verbosity | Verbosity limit. |
Definition at line 68 of file DebugOutput.cpp.
References moab::DebugOutputStream::referenceCount.
: outputImpl( impl ), mpiRank( rank ), verbosityLimit( verbosity ) { impl->referenceCount++; assert( impl->referenceCount > 1 ); }
moab::DebugOutput::DebugOutput | ( | FILE * | str, |
unsigned | verbosity = 0 |
||
) |
str | Output stream to which to flush output |
enabled | Enable output: if not true, all output operations to nothing. |
Definition at line 74 of file DebugOutput.cpp.
: outputImpl( new FILEDebugStream( impl ) ), mpiRank( -1 ), verbosityLimit( verbosity ) { }
moab::DebugOutput::DebugOutput | ( | FILE * | str, |
int | rank, | ||
unsigned | verbosity = 0 |
||
) |
str | Output stream to which to flush output |
rank | MPI rank with which to prefix output. |
verbosity | Verbosity limit. |
Definition at line 78 of file DebugOutput.cpp.
: outputImpl( new FILEDebugStream( impl ) ), mpiRank( rank ), verbosityLimit( verbosity ) { }
moab::DebugOutput::DebugOutput | ( | std::ostream & | str, |
unsigned | verbosity = 0 |
||
) |
str | Output stream to which to flush output |
verbosity | Verbosity limit. |
Definition at line 82 of file DebugOutput.cpp.
: outputImpl( new CxxDebugStream( str ) ), mpiRank( -1 ), verbosityLimit( verbosity ) { }
moab::DebugOutput::DebugOutput | ( | std::ostream & | str, |
int | rank, | ||
unsigned | verbosity = 0 |
||
) |
str | Output stream to which to flush output |
rank | MPI rank with which to prefix output. |
verbosity | Verbosity limit. |
Definition at line 86 of file DebugOutput.cpp.
: outputImpl( new CxxDebugStream( str ) ), mpiRank( rank ), verbosityLimit( verbosity ) { }
moab::DebugOutput::DebugOutput | ( | const char * | pfx, |
DebugOutputStream * | str, | ||
unsigned | verbosity = 0 |
||
) |
pfx | Prefix for output |
str | Output stream to which to flush output |
verbosity | Verbosity limit. |
Definition at line 90 of file DebugOutput.cpp.
References moab::DebugOutputStream::referenceCount.
: linePfx( pfx ), outputImpl( impl ), mpiRank( -1 ), verbosityLimit( verbosity ) { impl->referenceCount++; assert( impl->referenceCount > 1 ); }
moab::DebugOutput::DebugOutput | ( | const char * | pfx, |
DebugOutputStream * | str, | ||
int | rank, | ||
unsigned | verbosity = 0 |
||
) |
pfx | Prefix for output |
str | Output stream to which to flush output |
rank | MPI rank with which to prefix output. |
verbosity | Verbosity limit. |
Definition at line 96 of file DebugOutput.cpp.
References moab::DebugOutputStream::referenceCount.
: linePfx( pfx ), outputImpl( impl ), mpiRank( rank ), verbosityLimit( verbosity ) { impl->referenceCount++; assert( impl->referenceCount > 1 ); }
moab::DebugOutput::DebugOutput | ( | const char * | pfx, |
FILE * | str, | ||
unsigned | verbosity = 0 |
||
) |
pfx | Prefix for output |
str | Output stream to which to flush output |
enabled | Enable output: if not true, all output operations to nothing. |
Definition at line 102 of file DebugOutput.cpp.
: linePfx( pfx ), outputImpl( new FILEDebugStream( impl ) ), mpiRank( -1 ), verbosityLimit( verbosity ) { }
moab::DebugOutput::DebugOutput | ( | const char * | pfx, |
FILE * | str, | ||
int | rank, | ||
unsigned | verbosity = 0 |
||
) |
pfx | Prefix for output |
str | Output stream to which to flush output |
rank | MPI rank with which to prefix output. |
verbosity | Verbosity limit. |
Definition at line 106 of file DebugOutput.cpp.
: linePfx( pfx ), outputImpl( new FILEDebugStream( impl ) ), mpiRank( rank ), verbosityLimit( verbosity ) { }
moab::DebugOutput::DebugOutput | ( | const char * | pfx, |
std::ostream & | str, | ||
unsigned | verbosity = 0 |
||
) |
pfx | Prefix for output |
str | Output stream to which to flush output |
verbosity | Verbosity limit. |
Definition at line 110 of file DebugOutput.cpp.
: linePfx( pfx ), outputImpl( new CxxDebugStream( str ) ), mpiRank( -1 ), verbosityLimit( verbosity ) { }
moab::DebugOutput::DebugOutput | ( | const char * | pfx, |
std::ostream & | str, | ||
int | rank, | ||
unsigned | verbosity = 0 |
||
) |
pfx | Prefix for output |
str | Output stream to which to flush output |
rank | MPI rank with which to prefix output. |
verbosity | Verbosity limit. |
Definition at line 114 of file DebugOutput.cpp.
: linePfx( pfx ), outputImpl( new CxxDebugStream( str ) ), mpiRank( rank ), verbosityLimit( verbosity ) { }
moab::DebugOutput::DebugOutput | ( | const DebugOutput & | copy | ) |
Definition at line 119 of file DebugOutput.cpp.
References outputImpl, and moab::DebugOutputStream::referenceCount.
: linePfx( copy.linePfx ), outputImpl( copy.outputImpl ), mpiRank( copy.mpiRank ), verbosityLimit( copy.verbosityLimit ) { outputImpl->referenceCount++; assert( outputImpl->referenceCount > 1 ); }
Destructor flushes any remaining output that wasn't followed by a newline character.
Definition at line 138 of file DebugOutput.cpp.
References lineBuffer, outputImpl, process_line_buffer(), and moab::DebugOutputStream::referenceCount.
{ if( !lineBuffer.empty() ) { lineBuffer.push_back( '\n' ); process_line_buffer(); } if( outputImpl ) { assert( outputImpl->referenceCount > 0 ); if( !--outputImpl->referenceCount ) delete outputImpl; outputImpl = 0; } }
bool moab::DebugOutput::check | ( | unsigned | verbosity | ) | [inline, private] |
Definition at line 263 of file DebugOutput.hpp.
References verbosityLimit.
Referenced by print(), print_ints(), printf(), tprint(), and tprintf().
{ return verbosity <= verbosityLimit; }
const std::string& moab::DebugOutput::get_prefix | ( | ) | const [inline] |
Get line prefix.
Definition at line 167 of file DebugOutput.hpp.
References linePfx.
{ return linePfx; }
int moab::DebugOutput::get_rank | ( | ) | const [inline] |
Get MPI rank.
Definition at line 136 of file DebugOutput.hpp.
References mpiRank.
Referenced by process_line_buffer().
{ return mpiRank; }
unsigned moab::DebugOutput::get_verbosity | ( | ) | const [inline] |
Get verbosity limit.
Definition at line 156 of file DebugOutput.hpp.
References verbosityLimit.
Referenced by moab::WriteHDF5Parallel::communicate_shared_set_ids(), moab::ScdNCHelper::create_mesh(), moab::WriteHDF5Parallel::create_tag_tables(), moab::WriteHDF5Parallel::debug_barrier_line(), moab::ReadHDF5::debug_barrier_line(), moab::ParallelComm::define_mpe(), moab::ParallelComm::exchange_ghost_cells(), moab::ParallelComm::exchange_owned_mesh(), moab::ParallelComm::exchange_tags(), moab::ParallelComm::get_debug_verbosity(), moab::ParallelComm::pack_tag(), moab::ReadNC::parse_options(), moab::WriteNC::parse_options(), moab::ParallelComm::print_debug_recd(), moab::ParallelComm::print_debug_waitany(), moab::print_type_sets(), moab::ScdNCHelper::read_scd_variables_to_nonset(), moab::NCHelperHOMME::read_ucd_variables_to_nonset(), moab::NCHelperGCRM::read_ucd_variables_to_nonset(), moab::NCHelperMPAS::read_ucd_variables_to_nonset(), moab::NCHelper::read_variables_to_set(), moab::ParallelComm::recv_entities(), moab::ParallelComm::reduce_tags(), moab::ParallelComm::resolve_shared_ents(), moab::ParallelComm::send_entities(), moab::ParallelComm::send_recv_entities(), moab::ParallelComm::settle_intersection_points(), and moab::ParallelComm::unpack_buffer().
{ return verbosityLimit; }
bool moab::DebugOutput::have_rank | ( | ) | const [inline] |
Check if MPI rank has been set.
Definition at line 131 of file DebugOutput.hpp.
References mpiRank.
Referenced by process_line_buffer().
{ return mpiRank >= 0; }
void moab::DebugOutput::limit_output_to_first_N_procs | ( | int | N | ) | [inline] |
Only print debug output from N processes.
Definition at line 150 of file DebugOutput.hpp.
References mpiRank, and verbosityLimit.
Referenced by moab::WriteHDF5Parallel::parallel_create_file(), and moab::ReadHDF5::set_up_read().
{ if( mpiRank >= N ) verbosityLimit = 0; }
void moab::DebugOutput::list_ints_real | ( | const char * | pfx, |
const Range & | range | ||
) | [private] |
Definition at line 309 of file DebugOutput.cpp.
References moab::Range::const_pair_begin(), moab::Range::const_pair_end(), moab::Range::empty(), lineBuffer, moab::print_range(), print_real(), and process_line_buffer().
Referenced by print_ints().
{ if( range.empty() ) { print_real( "<empty>\n" ); return; } if( pfx ) { lineBuffer.insert( lineBuffer.end(), pfx, pfx + strlen( pfx ) ); lineBuffer.push_back( ' ' ); } char numbuf[48]; // unsigned 64 bit integer can't have more than 20 decimal digits Range::const_pair_iterator i; for( i = range.const_pair_begin(); i != range.const_pair_end(); ++i ) { if( i->first == i->second ) sprintf( numbuf, " %lu,", (unsigned long)( i->first ) ); else print_range( numbuf, (unsigned long)( i->first ), (unsigned long)( i->second ) ); lineBuffer.insert( lineBuffer.end(), numbuf, numbuf + strlen( numbuf ) ); } lineBuffer.push_back( '\n' ); process_line_buffer(); }
void moab::DebugOutput::list_range_real | ( | const char * | pfx, |
const Range & | range | ||
) | [private] |
Definition at line 273 of file DebugOutput.cpp.
References moab::Range::const_pair_begin(), moab::Range::const_pair_end(), moab::Range::empty(), moab::CN::EntityTypeName(), moab::ID_FROM_HANDLE(), lineBuffer, MBMAXTYPE, moab::print_range(), print_real(), process_line_buffer(), and moab::TYPE_FROM_HANDLE().
Referenced by print().
{ if( pfx ) { lineBuffer.insert( lineBuffer.end(), pfx, pfx + strlen( pfx ) ); lineBuffer.push_back( ' ' ); } if( range.empty() ) { print_real( "<empty>\n" ); return; } char numbuf[48]; // unsigned 64 bit integer can't have more than 20 decimal digits Range::const_pair_iterator i; EntityType type = MBMAXTYPE; for( i = range.const_pair_begin(); i != range.const_pair_end(); ++i ) { if( TYPE_FROM_HANDLE( i->first ) != type ) { type = TYPE_FROM_HANDLE( i->first ); const char* name = CN::EntityTypeName( type ); lineBuffer.insert( lineBuffer.end(), name, name + strlen( name ) ); } if( i->first == i->second ) sprintf( numbuf, " %lu,", (unsigned long)( ID_FROM_HANDLE( i->first ) ) ); else print_range( numbuf, ID_FROM_HANDLE( i->first ), ID_FROM_HANDLE( i->second ) ); lineBuffer.insert( lineBuffer.end(), numbuf, numbuf + strlen( numbuf ) ); } lineBuffer.push_back( '\n' ); process_line_buffer(); }
DebugOutput & moab::DebugOutput::operator= | ( | const DebugOutput & | copy | ) |
Definition at line 127 of file DebugOutput.cpp.
References linePfx, mpiRank, outputImpl, moab::DebugOutputStream::referenceCount, and verbosityLimit.
{ linePfx = copy.linePfx; outputImpl = copy.outputImpl; mpiRank = copy.mpiRank; verbosityLimit = copy.verbosityLimit; outputImpl->referenceCount++; assert( outputImpl->referenceCount > 1 ); return *this; }
void moab::DebugOutput::print | ( | int | verbosity, |
const char * | str | ||
) | [inline] |
Output the specified string iff output is enabled.
Definition at line 178 of file DebugOutput.hpp.
References check(), and print_real().
Referenced by moab::WriteHDF5Parallel::communicate_shared_set_ids(), moab::WriteHDF5Parallel::create_tag_tables(), moab::ReadHDF5::delete_non_side_elements(), moab::ReadParallel::delete_nonlocal_entities(), moab::WriteHDF5Parallel::gather_interface_meshes(), moab::ReadHDF5::get_partition(), moab::ReadParallel::load_file(), moab::ReadHDF5::load_file_partial(), main(), moab::WriteHDF5Parallel::negotiate_type_list(), moab::WriteHDF5Parallel::parallel_create_file(), moab::ParallelComm::print_debug_waitany(), moab::WriteHDF5Parallel::print_set_sharing_data(), moab::print_type_sets(), moab::ReadHDF5::read_nodes(), moab::ReadHDF5::read_sparse_tag_indices(), moab::ParallelComm::resolve_shared_ents(), moab::ReadHDF5::set_up_read(), moab::ParallelComm::unpack_buffer(), moab::WriteHDF5::write_adjacencies(), moab::WriteHDF5::write_elems(), moab::WriteHDF5::write_nodes(), moab::WriteHDF5::write_qa(), moab::WriteHDF5::write_set_data(), moab::WriteHDF5::write_sets(), moab::WriteHDF5::write_sparse_ids(), moab::WriteHDF5::write_tag_values(), moab::WriteHDF5::write_var_len_data(), and moab::WriteHDF5::write_var_len_indices().
{ if( check( verbosity ) ) print_real( str ); }
void moab::DebugOutput::print | ( | int | verbosity, |
const std::string & | str | ||
) | [inline] |
Output the specified string iff output is enabled.
Definition at line 184 of file DebugOutput.hpp.
References check(), and print_real().
{ if( check( verbosity ) ) print_real( str ); }
void moab::DebugOutput::print | ( | int | verbosity, |
const char * | pfx, | ||
const Range & | range | ||
) | [inline] |
Print the contents of a moab::Range.
pfx | String to print after default class prefix and before range contents |
Definition at line 215 of file DebugOutput.hpp.
References check(), and list_range_real().
{ if( check( verbosity ) ) list_range_real( pfx, range ); }
void moab::DebugOutput::print | ( | int | verbosity, |
const Range & | range | ||
) | [inline] |
Print the contents of a moab::Range.
Definition at line 220 of file DebugOutput.hpp.
References check(), and list_range_real().
{ if( check( verbosity ) ) list_range_real( 0, range ); }
void moab::DebugOutput::print_ints | ( | int | verbosity, |
const char * | pfx, | ||
const Range & | range | ||
) | [inline] |
Print the contents of a moab::Range as numerical values only.
pfx | String to print after default class prefix and before range contents |
Definition at line 227 of file DebugOutput.hpp.
References check(), and list_ints_real().
Referenced by moab::ReadHDF5::load_file_partial(), and moab::ReadHDF5::read_set_ids_recursive().
{ if( check( verbosity ) ) list_ints_real( pfx, range ); }
void moab::DebugOutput::print_ints | ( | int | verbosity, |
const Range & | range | ||
) | [inline] |
Print the contents of a moab::Range as numerical values only.
Definition at line 232 of file DebugOutput.hpp.
References check(), and list_ints_real().
{ if( check( verbosity ) ) list_ints_real( 0, range ); }
void moab::DebugOutput::print_real | ( | const char * | buffer | ) | [private] |
Definition at line 162 of file DebugOutput.cpp.
References buffer, lineBuffer, and process_line_buffer().
Referenced by list_ints_real(), list_range_real(), print(), printf(), and tprint_real().
{ lineBuffer.insert( lineBuffer.end(), buffer, buffer + strlen( buffer ) ); process_line_buffer(); }
void moab::DebugOutput::print_real | ( | const std::string & | str | ) | [private] |
Definition at line 174 of file DebugOutput.cpp.
References lineBuffer, and process_line_buffer().
{ lineBuffer.insert( lineBuffer.end(), str.begin(), str.end() ); process_line_buffer(); }
void moab::DebugOutput::print_real | ( | const char * | buffer, |
va_list | args1, | ||
va_list | args2 | ||
) | [private] |
Definition at line 186 of file DebugOutput.cpp.
References lineBuffer, process_line_buffer(), and size.
{ size_t idx = lineBuffer.size(); #ifdef MOAB_HAVE_VSNPRINTF // try once with remaining space in buffer lineBuffer.resize( lineBuffer.capacity() ); unsigned size = vsnprintf( &lineBuffer[idx], lineBuffer.size() - idx, fmt, args1 ); ++size; // trailing null // if necessary, increase buffer size and retry if( size > ( lineBuffer.size() - idx ) ) { lineBuffer.resize( idx + size ); size = vsnprintf( &lineBuffer[idx], lineBuffer.size() - idx, fmt, args2 ); ++size; // trailing null } #else // Guess how much space might be required. // If every character is a format code then there are len/3 format codes. // Guess a random large value of num_chars characters per formatted argument. const unsigned num_chars = 180; unsigned exp_size = ( num_chars / 3 ) * strlen( fmt ); lineBuffer.resize( idx + exp_size ); unsigned size = vsprintf( &lineBuffer[idx], fmt, args1 ); ++size; // trailing null // check if we overflowed the buffer if( size > exp_size ) { // crap! fprintf( stderr, "ERROR: Buffer overflow at %s:%d\n", __FILE__, __LINE__ ); lineBuffer.resize( idx + exp_size ); size = vsprintf( &lineBuffer[idx], fmt, args2 ); ++size; // trailing null } #endif // less one because we don't want the trailing '\0' lineBuffer.resize( idx + size - 1 ); process_line_buffer(); }
void moab::DebugOutput::printf | ( | int | verbosity, |
const char * | fmt, | ||
... | |||
) | [inline] |
Output the specified printf-formatted output iff output is enabled.
Definition at line 282 of file DebugOutput.hpp.
References check(), and print_real().
Referenced by moab::WriteHDF5::assign_ids(), moab::WriteHDF5Parallel::communicate_shared_set_data(), moab::WriteHDF5Parallel::communicate_shared_set_ids(), moab::TempestRemapper::ComputeOverlapMesh(), moab::TempestRemapper::convert_tempest_mesh_private(), moab::TempestRemapper::ConvertMeshToTempest(), moab::WriteHDF5Parallel::create_meshset_tables(), moab::WriteHDF5Parallel::create_tag_tables(), CreateTempestMesh(), moab::WriteHDF5Parallel::debug_barrier_line(), moab::ReadHDF5::debug_barrier_line(), moab::ReadHDF5::delete_non_side_elements(), moab::WriteHDF5Parallel::exchange_file_ids(), moab::ReadHDF5::find_sets_containing(), moab::TempestOnlineMap::GenerateRemappingWeights(), moab::TempestOnlineMap::LinearRemapFVtoFV_Tempest_MOAB(), moab::TempestOnlineMap::LinearRemapGLLtoGLL2_MOAB(), moab::TempestOnlineMap::LinearRemapGLLtoGLL2_Pointwise_MOAB(), moab::TempestOnlineMap::LinearRemapSE4_Tempest_MOAB(), moab::ReadHDF5::load_file_partial(), main(), moab::WriteHDF5Parallel::negotiate_type_list(), moab::ParallelComm::print_debug_irecv(), moab::ParallelComm::print_debug_waitany(), moab::WriteHDF5Parallel::print_set_sharing_data(), moab::print_type_sets(), moab::ReadHDF5::read_adjacencies(), moab::ReadHDF5VarLen::read_data(), moab::ReadHDF5::read_dense_tag(), moab::ReadHDF5::read_elems(), moab::ReadHDF5::read_node_adj_elems(), moab::ReadHDF5::read_nodes(), moab::ReadHDF5VarLen::read_offsets(), moab::ScdNCHelper::read_scd_variables_to_nonset(), moab::ReadHDF5::read_set_data(), moab::ReadHDF5::read_sparse_tag(), moab::ReadHDF5::read_sparse_tag_indices(), moab::ReadHDF5::read_tag(), moab::ReadHDF5::read_tag_values_partial(), moab::NCHelperHOMME::read_ucd_variables_to_nonset(), moab::NCHelperGCRM::read_ucd_variables_to_nonset(), moab::NCHelperMPAS::read_ucd_variables_to_nonset(), moab::NCHelper::read_variables_to_set(), moab::ParallelComm::resolve_shared_ents(), moab::WriteHDF5::write_elems(), moab::WriteHDF5::write_nodes(), moab::WriteHDF5::write_sets(), and moab::WriteHDF5::write_tag().
{ if( check( verbosity ) ) { va_list args1, args2; va_start( args1, fmt ); va_start( args2, fmt ); print_real( fmt, args1, args2 ); va_end( args2 ); va_end( args1 ); } }
void moab::DebugOutput::process_line_buffer | ( | ) | [private] |
Definition at line 338 of file DebugOutput.cpp.
References get_rank(), have_rank(), lineBuffer, linePfx, outputImpl, and moab::DebugOutputStream::println().
Referenced by list_ints_real(), list_range_real(), print_real(), and ~DebugOutput().
{ size_t last_idx = 0; std::vector< char >::iterator i; for( i = std::find( lineBuffer.begin(), lineBuffer.end(), '\n' ); i != lineBuffer.end(); i = std::find( i, lineBuffer.end(), '\n' ) ) { *i = '\0'; if( have_rank() ) outputImpl->println( get_rank(), linePfx.c_str(), &lineBuffer[last_idx] ); else outputImpl->println( linePfx.c_str(), &lineBuffer[last_idx] ); ++i; last_idx = i - lineBuffer.begin(); } if( last_idx ) { i = std::copy( lineBuffer.begin() + last_idx, lineBuffer.end(), lineBuffer.begin() ); lineBuffer.erase( i, lineBuffer.end() ); } }
void moab::DebugOutput::set_prefix | ( | const std::string & | str | ) | [inline] |
Set line prefix.
Definition at line 172 of file DebugOutput.hpp.
References linePfx.
Referenced by moab::TempestRemapper::ComputeOverlapMesh(), moab::TempestRemapper::convert_tempest_mesh_private(), moab::TempestRemapper::ConvertMeshToTempest(), moab::TempestOnlineMap::GenerateRemappingWeights(), moab::TempestOnlineMap::LinearRemapFVtoFV_Tempest_MOAB(), moab::TempestOnlineMap::LinearRemapGLLtoGLL2_MOAB(), moab::TempestOnlineMap::LinearRemapGLLtoGLL2_Pointwise_MOAB(), moab::TempestOnlineMap::LinearRemapSE4_Tempest_MOAB(), moab::ReadNC::parse_options(), moab::WriteNC::parse_options(), moab::ReadHDF5::set_up_read(), and ToolContext::ToolContext().
{ linePfx = str; }
void moab::DebugOutput::set_rank | ( | int | rank | ) | [inline] |
Set MPI rank.
Definition at line 141 of file DebugOutput.hpp.
Referenced by moab::ParallelComm::initialize(), main(), moab::WriteHDF5Parallel::parallel_create_file(), moab::ReadNC::parse_options(), moab::WriteNC::parse_options(), moab::ReadParallel::ReadParallel(), and moab::ReadHDF5::set_up_read().
void moab::DebugOutput::set_verbosity | ( | unsigned | val | ) | [inline] |
Set verbosity limit.
Definition at line 161 of file DebugOutput.hpp.
References verbosityLimit.
Referenced by moab::ReadParallel::load_file(), main(), moab::ReadNC::parse_options(), moab::WriteNC::parse_options(), moab::ReadParallel::ReadParallel(), moab::ParallelComm::set_debug_verbosity(), moab::ReadHDF5::set_up_read(), and moab::WriteHDF5::write_file().
{ verbosityLimit = val; }
void moab::DebugOutput::tprint | ( | int | verbosity, |
const char * | str | ||
) | [inline] |
Output the specified string iff output is enabled.
Include current CPU time (as returned by clock()) in output.
Definition at line 195 of file DebugOutput.hpp.
References check(), and tprint_real().
Referenced by moab::WriteHDF5Parallel::communicate_shared_set_ids(), moab::WriteHDF5Parallel::create_tag_tables(), moab::ReadParallel::delete_nonlocal_entities(), moab::ReadHDF5::get_set_contents(), moab::ReadParallel::load_file(), moab::ReadHDF5::load_file(), moab::ReadHDF5::load_file_impl(), moab::ReadHDF5::load_file_partial(), moab::WriteHDF5Parallel::parallel_create_file(), moab::ReadNC::read_header(), moab::WriteHDF5::serial_create_file(), moab::ReadHDF5::set_up_read(), and moab::WriteHDF5::write_file_impl().
{ if( check( verbosity ) ) tprint_real( str ); }
void moab::DebugOutput::tprint | ( | int | verbosity, |
const std::string & | str | ||
) | [inline] |
Output the specified string iff output is enabled.
Include current CPU time (as returned by clock()) in output.
Definition at line 203 of file DebugOutput.hpp.
References check(), and tprint_real().
{ if( check( verbosity ) ) tprint_real( str ); }
void moab::DebugOutput::tprint | ( | ) | [private] |
Definition at line 361 of file DebugOutput.cpp.
References cpuTi, lineBuffer, and moab::CpuTimer::time_since_birth().
Referenced by tprint_real().
{ size_t s = lineBuffer.size(); lineBuffer.resize( s + 64 ); size_t ss = sprintf( &lineBuffer[s], "(%.2f s) ", cpuTi.time_since_birth() ); lineBuffer.resize( s + ss ); }
void moab::DebugOutput::tprint_real | ( | const char * | buffer | ) | [private] |
Definition at line 168 of file DebugOutput.cpp.
References print_real(), and tprint().
Referenced by tprint(), and tprintf().
{ tprint(); print_real( buffer ); }
void moab::DebugOutput::tprint_real | ( | const std::string & | str | ) | [private] |
Definition at line 180 of file DebugOutput.cpp.
References print_real(), and tprint().
{ tprint(); print_real( str ); }
void moab::DebugOutput::tprint_real | ( | const char * | buffer, |
va_list | args1, | ||
va_list | args2 | ||
) | [private] |
Definition at line 226 of file DebugOutput.cpp.
References print_real(), and tprint().
{ tprint(); print_real( fmt, args1, args2 ); }
void moab::DebugOutput::tprintf | ( | int | verbosity, |
const char * | fmt, | ||
... | |||
) | [inline] |
Output the specified printf-formatted output iff output is enabled.
Include current CPU time (as returned by clock()) in output.
Definition at line 295 of file DebugOutput.hpp.
References check(), and tprint_real().
Referenced by moab::NCWriteHelper::collect_variable_data(), moab::WriteHDF5Parallel::communicate_shared_set_data(), moab::NCHelper::create_conventional_tags(), moab::NCHelper::create_dummy_variables(), moab::NCHelperGCRM::create_local_edges(), moab::NCHelperMPAS::create_local_edges(), moab::NCHelperGCRM::create_local_vertices(), moab::NCHelperMPAS::create_local_vertices(), moab::NCHelperDomain::create_mesh(), moab::NCHelperScrip::create_mesh(), moab::NCHelperHOMME::create_mesh(), moab::NCHelperMPAS::create_mesh(), moab::NCHelperGCRM::create_mesh(), moab::ScdNCHelper::create_mesh(), moab::ParallelComm::exchange_ghost_cells(), moab::ParallelComm::exchange_owned_mesh(), moab::ParallelComm::exchange_tags(), moab::ReadNC::get_attributes(), moab::ReadNC::get_dimensions(), moab::NCHelper::get_tag_to_nonset(), moab::NCHelper::get_tag_to_set(), moab::ReadNC::get_variables(), moab::NCWriteHelper::init_file(), moab::NCHelperDomain::init_mesh_vals(), moab::NCHelperFV::init_mesh_vals(), moab::NCHelperEuler::init_mesh_vals(), moab::ReadParallel::load_file(), moab::ReadHDF5::load_file(), moab::ReadNC::load_file(), moab::ReadHDF5::load_file_partial(), moab::ParallelComm::pack_entities(), moab::ParallelComm::pack_entity_seq(), moab::ParallelComm::pack_sets(), moab::ParallelComm::pack_tag(), moab::ParallelComm::pack_tags(), moab::WriteHDF5Parallel::parallel_create_file(), moab::ParallelComm::print_debug_irecv(), moab::ParallelComm::print_debug_isend(), moab::ParallelComm::print_debug_recd(), moab::ParallelComm::print_debug_waitany(), moab::WriteNC::process_concatenated_attribute(), moab::WriteNC::process_conventional_tags(), moab::ReadHDF5::read_elems(), moab::ReadNC::read_header(), moab::ReadHDF5::read_nodes(), moab::ScdNCHelper::read_scd_variables_to_nonset(), moab::ScdNCHelper::read_scd_variables_to_nonset_allocate(), moab::ReadHDF5::read_set_ids_recursive(), moab::ReadHDF5::read_tag(), moab::NCHelperHOMME::read_ucd_variables_to_nonset(), moab::NCHelperMPAS::read_ucd_variables_to_nonset(), moab::NCHelperGCRM::read_ucd_variables_to_nonset(), moab::NCHelperHOMME::read_ucd_variables_to_nonset_allocate(), moab::NCHelperGCRM::read_ucd_variables_to_nonset_allocate(), moab::NCHelperMPAS::read_ucd_variables_to_nonset_allocate(), moab::NCHelper::read_variables_to_set(), moab::NCHelper::read_variables_to_set_allocate(), moab::ParallelComm::recv_entities(), moab::ParallelComm::reduce_tags(), moab::ParallelComm::resolve_shared_ents(), moab::ParallelComm::send_entities(), moab::ParallelComm::send_recv_entities(), moab::ReadHDF5::set_up_read(), moab::ParallelComm::settle_intersection_points(), moab::ParallelComm::unpack_buffer(), moab::ParallelComm::unpack_entities(), moab::ParallelComm::unpack_sets(), moab::ParallelComm::unpack_tags(), moab::WriteNC::write_file(), and moab::WriteHDF5::write_tag().
{ if( check( verbosity ) ) { va_list args1, args2; va_start( args1, fmt ); va_start( args2, fmt ); tprint_real( fmt, args1, args2 ); va_end( args2 ); va_end( args1 ); } }
void moab::DebugOutput::use_world_rank | ( | ) |
Set MPI rank to the rank of this proccess in MPI_COMM_WORLD, or zero if MOAB is build w/out MPI.
Definition at line 153 of file DebugOutput.cpp.
References MPI_COMM_WORLD, and mpiRank.
CpuTimer moab::DebugOutput::cpuTi [private] |
Definition at line 242 of file DebugOutput.hpp.
Referenced by tprint().
std::vector< char > moab::DebugOutput::lineBuffer [private] |
Definition at line 261 of file DebugOutput.hpp.
Referenced by list_ints_real(), list_range_real(), print_real(), process_line_buffer(), tprint(), and ~DebugOutput().
std::string moab::DebugOutput::linePfx [private] |
Definition at line 238 of file DebugOutput.hpp.
Referenced by get_prefix(), operator=(), process_line_buffer(), and set_prefix().
int moab::DebugOutput::mpiRank [private] |
Definition at line 240 of file DebugOutput.hpp.
Referenced by get_rank(), have_rank(), limit_output_to_first_N_procs(), operator=(), set_rank(), and use_world_rank().
DebugOutputStream* moab::DebugOutput::outputImpl [private] |
Definition at line 239 of file DebugOutput.hpp.
Referenced by DebugOutput(), operator=(), process_line_buffer(), and ~DebugOutput().
unsigned moab::DebugOutput::verbosityLimit [private] |
Definition at line 241 of file DebugOutput.hpp.
Referenced by check(), get_verbosity(), limit_output_to_first_N_procs(), operator=(), and set_verbosity().