/* * Info.hpp * * Created on: Nov 25, 2009 * Author: heber */ #ifndef INFO_HPP_ #define INFO_HPP_ // include config.h #ifdef HAVE_CONFIG_H #include #endif #include class Chronos; class InfoTest; /*********************************************** includes ***********************************/ /****************************************** forward declarations *****************************/ /********************************************** definitions *********************************/ class Info { //!> unit tests needs access to some internals friend class InfoTest; public : static int verbosity; const std::string FunctionName; Info(const char *msg); ~Info(); static void setVerbosity(int verbosityLevel); private: static class Chronos * timekeeper; static bool ChronosBlocker; static size_t NumberInfos; }; // create some debug macro for wrapping Info #ifndef NDEBUG #define DEBUG_FUNCTION_ENTRYEXIT \ Info info(__FUNCTION__); #else #define DEBUG_FUNCTION_ENTRYEXIT #endif #endif /* INFO_HPP_ */