Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

MemUsage.h

Go to the documentation of this file.
00001 /*-----------------------------------------------------------*- c++ -*-\
00002 |                                                                      |  
00003 |                      __   __    ____ _____ ____                      |  
00004 |                      \ \ / /_ _/ ___|_   _|___ \                     |  
00005 |                       \ V / _` \___ \ | |   __) |                    |  
00006 |                        | | (_| |___) || |  / __/                     |  
00007 |                        |_|\__,_|____/ |_| |_____|                    |  
00008 |                                                                      |  
00009 |                               core system                            | 
00010 |                                                    (C) SUSE LINUX AG |  
00011 \----------------------------------------------------------------------/ 
00012 
00013    File:       MemUsage.h
00014    Author:     Martin Vidner <mvidner@suse.cz>
00015 
00016 $Id: MemUsage.h,v 1.5 2004/03/17 12:50:01 mvidner Exp $
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     //  ready to be printed in gdb
00059     static void MuDumpVal (const char *name);
00060 
00061     virtual size_t mem_size () const { return sizeof (*this); }
00062 };
00063 
00064 // this makes it easier for gdb.
00065 void MuDump ();
00066 void MuDumpVal (const char *name);
00067 
00068 #endif

Generated on Thu Feb 23 23:56:10 2006 for liby2util by doxygen 1.3.6