00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef MemUsage_h
00021 #define MemUsage_h
00022
00023 #include <set>
00024
00025
00029 #undef D_MEMUSAGE
00030
00037 class MemUsage
00038 {
00039 protected:
00040 typedef std::set <MemUsage *> data;
00041 static data* m_mu_instances;
00042
00043 MemUsage () {
00044 if ( ! m_mu_instances )
00045 {
00046 m_mu_instances = new data;
00047 }
00048 m_mu_instances->insert (this);
00049 }
00050
00051 virtual ~MemUsage () {
00052 m_mu_instances->erase (this);
00053 }
00054 public:
00056 static void MuDump ();
00058
00059 static void MuDumpVal (const char *name);
00060
00061 virtual size_t mem_size () const { return sizeof (*this); }
00062 };
00063
00064
00065 void MuDump ();
00066 void MuDumpVal (const char *name);
00067
00068 #endif