00001
00002
00003 #ifndef LEACLASSMONITOR_H
00004 #define LEACLASSMONITOR_H
00005
00007
00008
00009
00010
00011
00012
00013
00015
00016 #include "Rtypes.h"
00017 #include <string>
00018 #include <iosfwd>
00019
00020 class LeaClassMonitor;
00021 std::ostream& operator<<(std::ostream& s, LeaClassMonitor* m);
00022
00023 class LeaClassMonitor
00024 {
00025 public:
00026
00027
00028
00029
00030 LeaClassMonitor();
00031 virtual ~LeaClassMonitor();
00032
00033
00034 const Char_t* GetName() const { return fClassName.c_str();}
00035 UInt_t GetNumActive() const { return fNumActive; }
00036 UInt_t GetNumCreated() const { return fNumCreated; }
00037 std::ostream& Print(std::ostream& os);
00038
00039
00040 Bool_t Add(const void* addr);
00041 void Reset();
00042 void SetName(const Char_t* name) { fClassName = name; }
00043 Bool_t Remove(const void* addr);
00044
00045
00046 private:
00047
00048
00049 std::string fClassName;
00050 Int_t fNumActive;
00051 Int_t fNumCreated;
00052
00053 ClassDef(LeaClassMonitor,0)
00054
00055 };
00056
00057
00058 #endif // LEACLASSMONITOR_H