KaliVeda  1.13/01
Heavy-Ion Analysis Toolkit
KVClassMonitor.h
Go to the documentation of this file.
1 
4 #ifndef __KVCLASSMONITOR_H
5 #define __KVCLASSMONITOR_H
6 
7 #include "KVBase.h"
8 #include <map>
9 #include <string>
10 #include "TEnv.h"
11 
55 class KVClassMonitor : public KVBase {
56 
61  mutable std::map<std::string, int> fChanges;
62 
64 public:
65  virtual ~KVClassMonitor();
66 
67  void Check();
68  void CompareToInit();
69  void SetInitStatistics();
70  std::map<std::string, int>& GetListOfChanges() const;
71 
72  static KVClassMonitor* GetInstance();
73 
75  static void DoCheck(const TString& method, const TString& message)
76  {
77  if (!fDisableCheck && fgClassMonitor) {
78  printf("<%s> : %s\n", method.Data(), message.Data());
80  }
81  }
82 
84  static void DisableChecking()
85  {
87  }
89  static void EnableChecking()
90  {
92  }
93 
94  ClassDef(KVClassMonitor, 0) //Track potential memory leaks
95 };
96 
97 #endif
const Bool_t kFALSE
bool Bool_t
const Bool_t kTRUE
#define ClassDef(name, id)
Base class for KaliVeda framework.
Definition: KVBase.h:141
Simple tool to track which classes instance count increases over time.
static KVClassMonitor * GetInstance()
Return pointer to unique instance of class monitor class.
std::map< std::string, int > fChanges
list of classes whose number changed in last Check()
std::map< std::string, int > & GetListOfChanges() const
TEnv fClassStats
store class instance statistics
TEnv fClassStatsInit
intitial class instance statistics
static Bool_t fDisableCheck
disable static DoCheck() method
static void DisableChecking()
Disable static DoCheck method.
static void EnableChecking()
Re-enable static DoCheck method.
virtual ~KVClassMonitor()
Destructor.
static void DoCheck(const TString &method, const TString &message)
Print statistics of global singleton if it exists.
void SetInitStatistics()
static KVClassMonitor * fgClassMonitor
singleton
const char * Data() const