Ignore:
Timestamp:
Apr 2, 2011, 12:11:44 AM (15 years ago)
Author:
Frederik Heber <heber@…>
Children:
8e24ef
Parents:
6b898c
git-author:
Frederik Heber <heber@…> (03/14/11 17:54:03)
git-committer:
Frederik Heber <heber@…> (04/02/11 00:11:44)
Message:

Added static and private object counter Info::NumberInfos.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Helpers/Info.cpp

    r6b898c r93abe8  
    2020#include "MemDebug.hpp"
    2121
     22#include "Chronos.hpp"
    2223#include "Info.hpp"
    2324#include "Log.hpp"
     
    2526
    2627int Info::verbosity = 0;
     28Chronos * Info::timekeeper = NULL;
     29bool Info::ChronosBlocker = false;
     30size_t Info::NumberInfos = 0;
    2731
    2832/**
     
    3640  verbosity++;
    3741  DoLog(0) && (Log() << Verbose(0) << "Begin of " << FunctionName << endl);
    38 };
     42
     43  // one more info object
     44  ++NumberInfos;
     45
     46  // have pointer ready
     47  if (timekeeper == NULL) {
     48    timekeeper = Chronos::getPointer();
     49  }
     50
     51  // start time keeping
     52  timekeeper->startTiming(FunctionName);
     53}
    3954
    4055/**
    4156 * Destructor. Better use purgeInstance().
    4257 */
    43 Info::~Info() {
     58Info::~Info()
     59{
     60  // end time keeping
     61  timekeeper->endTiming(FunctionName);
     62
     63  // verbosity stuff
    4464  DoLog(0) && (Log() << Verbose(0) << "End of " << FunctionName << endl);
    4565  verbosity--;
     66
     67  // one info object less
     68  --NumberInfos;
     69
     70  // we are last one?
     71  if (!NumberInfos) {
     72    timekeeper = NULL;
     73  }
    4674}
    4775
     
    5179 * \param verbosityLevel verbosity
    5280 */
    53 void Info::setVerbosity(int verbosityLevel) {
     81void Info::setVerbosity(int verbosityLevel)
     82{
    5483  verbosity = verbosityLevel;
    5584}
Note: See TracChangeset for help on using the changeset viewer.