/* * Project: MoleCuilder * Description: creates and alters molecular systems * Copyright (C) 2010 University of Bonn. All rights reserved. * Please see the LICENSE file or "Copyright notice" in builder.cpp for details. */ /* * Info.cpp * * Created on: Nov 25, 2009 * Author: heber */ // include config.h #ifdef HAVE_CONFIG_H #include #endif //#include "CodePatterns/MemDebug.hpp" #include "CodePatterns/Chronos.hpp" #include "CodePatterns/Info.hpp" #include "CodePatterns/Log.hpp" int Info::verbosity = 0; Chronos * Info::timekeeper = NULL; bool Info::ChronosBlocker = false; size_t Info::NumberInfos = 0; /** * Constructor. * * \return Info instance */ Info::Info(const char *msg) : FunctionName(msg) { verbosity++; LOG(0, "INFO: Begin of "+FunctionName); // one more info object ++NumberInfos; // have pointer ready if (timekeeper == NULL) { timekeeper = Chronos::getPointer(); } // start time keeping timekeeper->startTiming(FunctionName); } /** * Destructor. */ Info::~Info() { // end time keeping timekeeper->endTiming(FunctionName); // verbosity stuff LOG(0, "INFO: End of "+FunctionName); verbosity--; // one info object less --NumberInfos; // we are last one? if (!NumberInfos) { timekeeper = NULL; } } /** * Sets the verbosity. * * \param verbosityLevel verbosity */ void Info::setVerbosity(int verbosityLevel) { verbosity = verbosityLevel; }