/usr/include/stxxl/bits
NameSizeModeActions
algo/-0755rm
common/-0755rm
compat/-0755rm
containers/-0755rm
io/-0755rm
mng/-0755rm
stream/-0755rm
utils/-0755rm
config.h37370644editdlrm
config.h.in43730644editdlrm
defines.h36440644editdlrm
deprecated.h11610644editdlrm
libstxxl.h7520644editdlrm
msvc_compatibility.h10530644editdlrm
namespace.h6580644editdlrm
noncopyable.h10850644editdlrm
parallel.h63150644editdlrm
singleton.h22360644editdlrm
unused.h7930644editdlrm
verbose.h83920644editdlrm
version.h29740644editdlrm
Edit: /usr/include/stxxl/bits/verbose.h (8392B)
/*************************************************************************** * include/stxxl/bits/verbose.h * * Part of the STXXL. See http://stxxl.sourceforge.net * * Copyright (C) 2005-2006 Roman Dementiev * Copyright (C) 2007-2010 Andreas Beckmann * Copyright (C) 2013 Timo Bingmann * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) **************************************************************************/ #ifndef STXXL_VERBOSE_HEADER #define STXXL_VERBOSE_HEADER #include #include #include #include #include #define _STXXL_PRNT_COUT (1 << 0) #define _STXXL_PRNT_CERR (1 << 1) #define _STXXL_PRNT_LOG (1 << 2) #define _STXXL_PRNT_ERRLOG (1 << 3) #define _STXXL_PRNT_ADDNEWLINE (1 << 16) #define _STXXL_PRNT_TIMESTAMP (1 << 17) #define _STXXL_PRNT_THREAD_ID (1 << 18) #define _STXXL_PRINT_FLAGS_DEFAULT (_STXXL_PRNT_COUT | _STXXL_PRNT_LOG) #define _STXXL_PRINT_FLAGS_ERROR (_STXXL_PRNT_CERR | _STXXL_PRNT_ERRLOG) #define _STXXL_PRINT_FLAGS_VERBOSE (_STXXL_PRINT_FLAGS_DEFAULT | _STXXL_PRNT_TIMESTAMP | _STXXL_PRNT_THREAD_ID) STXXL_BEGIN_NAMESPACE void print_msg(const char* label, const std::string& msg, unsigned flags); STXXL_END_NAMESPACE #define _STXXL_PRINT(label, message, flags) \ do { \ std::ostringstream str_; \ str_ << message; \ stxxl::print_msg(label, str_.str(), flags | _STXXL_PRNT_ADDNEWLINE); \ } while (false) #define _STXXL_NOT_VERBOSE(message) \ do { \ if (0) { \ std::ostringstream str_; \ str_ << message; \ } \ } while (false) #ifdef STXXL_FORCE_VERBOSE_LEVEL #undef STXXL_VERBOSE_LEVEL #define STXXL_VERBOSE_LEVEL STXXL_FORCE_VERBOSE_LEVEL #endif #ifdef STXXL_DEFAULT_VERBOSE_LEVEL #ifndef STXXL_VERBOSE_LEVEL #define STXXL_VERBOSE_LEVEL STXXL_DEFAULT_VERBOSE_LEVEL #endif #endif #ifndef STXXL_VERBOSE_LEVEL #define STXXL_VERBOSE_LEVEL -1 #endif #if STXXL_VERBOSE_LEVEL > -10 #define STXXL_MSG(x) _STXXL_PRINT("STXXL-MSG", x, _STXXL_PRINT_FLAGS_DEFAULT) #else // Please do not report STXXL problems with STXXL_MSG disabled! #define STXXL_MSG(x) _STXXL_NOT_VERBOSE(x) #endif #if STXXL_VERBOSE_LEVEL > -100 #define STXXL_ERRMSG(x) _STXXL_PRINT("STXXL-ERRMSG", x, _STXXL_PRINT_FLAGS_ERROR) #else // Please do not report STXXL problems with STXXL_ERRMSG disabled! #define STXXL_ERRMSG(x) _STXXL_NOT_VERBOSE(x) #endif // STXXL_VERBOSE0 should be used for current debugging activity only, // and afterwards be replaced by STXXL_VERBOSE1 or higher. // Code that actively uses STXXL_VERBOSE0 should never get into a release. #if STXXL_VERBOSE_LEVEL > -1 #define STXXL_VERBOSE0(x) _STXXL_PRINT("STXXL-VERBOSE0", x, _STXXL_PRINT_FLAGS_VERBOSE) #else #define STXXL_VERBOSE0(x) _STXXL_NOT_VERBOSE(x) #endif #if STXXL_VERBOSE_LEVEL > 0 #define STXXL_VERBOSE1(x) _STXXL_PRINT("STXXL-VERBOSE1", x, _STXXL_PRINT_FLAGS_VERBOSE) #else #define STXXL_VERBOSE1(x) _STXXL_NOT_VERBOSE(x) #endif #define STXXL_VERBOSE(x) STXXL_VERBOSE1(x) #if STXXL_VERBOSE_LEVEL > 1 #define STXXL_VERBOSE2(x) _STXXL_PRINT("STXXL-VERBOSE2", x, _STXXL_PRINT_FLAGS_VERBOSE) #else #define STXXL_VERBOSE2(x) _STXXL_NOT_VERBOSE(x) #endif #if STXXL_VERBOSE_LEVEL > 2 #define STXXL_VERBOSE3(x) _STXXL_PRINT("STXXL-VERBOSE3", x, _STXXL_PRINT_FLAGS_VERBOSE) #else #define STXXL_VERBOSE3(x) _STXXL_NOT_VERBOSE(x) #endif // STXXL_VERBOSE[0123]_THIS prefixes "[0xaddress]" and then calls the version // without _THIS. #define STXXL_VERBOSE0_THIS(x) \ STXXL_VERBOSE0("[" << static_cast(this) << "] " << x) #define STXXL_VERBOSE1_THIS(x) \ STXXL_VERBOSE1("[" << static_cast(this) << "] " << x) #define STXXL_VERBOSE2_THIS(x) \ STXXL_VERBOSE2("[" << static_cast(this) << "] " << x) #define STXXL_VERBOSE3_THIS(x) \ STXXL_VERBOSE3("[" << static_cast(this) << "] " << x) // STXXL_CHECK is an assertion macro for unit tests, which contrarily to // assert() also works in release builds. These macros should ONLY be used in // UNIT TESTS, not in the library source. Use usual assert() there. #define STXXL_CHECK(condition) \ do { \ if (!(condition)) { \ _STXXL_PRINT("STXXL-CHECK", \ #condition " - FAILED @ " __FILE__ ":" << __LINE__, \ _STXXL_PRINT_FLAGS_ERROR); abort(); \ } \ } while (0) #define STXXL_CHECK2(condition, text) \ do { \ if (!(condition)) { \ _STXXL_PRINT("STXXL-CHECK", \ text << " - " #condition " - FAILED @ " __FILE__ ":" << __LINE__, \ _STXXL_PRINT_FLAGS_ERROR); abort(); \ } \ } while (0) // STXXL_ASSERT is an assertion macro almost identical to assert(). The only // difference is that with NDEBUG defined, the _code_ itself still exists. This // silences warnings about unused variables and typedefs in release builds. #ifdef NDEBUG #define STXXL_ASSERT(condition) \ do { if (0) { \ if (!(condition)) { \ _STXXL_PRINT("STXXL-ASSERT", \ #condition " - FAILED @ " __FILE__ ":" << __LINE__, \ _STXXL_PRINT_FLAGS_ERROR); abort(); \ } \ } \ } while (0) #else #define STXXL_ASSERT(condition) \ do { if (1) { \ if (!(condition)) { \ _STXXL_PRINT("STXXL-ASSERT", \ #condition " - FAILED @ " __FILE__ ":" << __LINE__, \ _STXXL_PRINT_FLAGS_ERROR); abort(); \ } \ } \ } while (0) #endif // STXXL_CHECK_THROW is an assertion macro for unit tests, which checks that // the enclosed code throws an exception. #define STXXL_CHECK_THROW(code, exception_type) \ do { \ bool t_ = false; try { code; } \ catch (const exception_type&) { t_ = true; } \ if (t_) break; \ _STXXL_PRINT("STXXL-CHECK-THROW", \ #code " - NO EXCEPTION " #exception_type \ " @ " __FILE__ ":" << __LINE__, \ _STXXL_PRINT_FLAGS_ERROR); \ abort(); \ } while (0) //////////////////////////////////////////////////////////////////////////// #endif // !STXXL_VERBOSE_HEADER // vim: et:ts=4:sw=4