StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StMemoryInfo.hh
1 /***************************************************************************
2  *
3  * $Id: StMemoryInfo.hh,v 1.5 2013/01/17 14:40:04 fisyak Exp $
4  *
5  * Author: Thomas Ullrich, June 1999
6  ***************************************************************************
7  *
8  * Description:
9  *
10  ***************************************************************************
11  *
12  * $Log: StMemoryInfo.hh,v $
13  * Revision 1.5 2013/01/17 14:40:04 fisyak
14  * Add APPLE
15  *
16  * Revision 1.4 2003/09/02 17:59:35 perev
17  * gcc 3.2 updates + WarnOff
18  *
19  * Revision 1.3 2000/01/04 14:57:54 ullrich
20  * Added friend declaration to avoid warning messages
21  * under Linux.
22  *
23  * Revision 1.2 1999/12/21 15:14:18 ullrich
24  * Modified to cope with new compiler version on Sun (CC5.0).
25  *
26  * Revision 1.1 1999/06/04 17:57:02 ullrich
27  * Initial Revision
28  *
29  **************************************************************************/
30 #ifndef StMemoryInfo_hh
31 #define StMemoryInfo_hh
32 
33 #ifndef __APPLE__
34 #include <malloc.h>
35 #endif
36 #include <Stiostream.h>
37 
38 class StMemoryInfo {
39 public:
40  static StMemoryInfo* instance();
41  void snapshot();
42  void print(ostream& = cout);
43 
44  friend class nobody;
45 
46 private:
47  StMemoryInfo();
48  StMemoryInfo(const StMemoryInfo &);
49  const StMemoryInfo & operator=(const StMemoryInfo &);
50 
51  void printLine(ostream&, const char*, int, int, const char* = 0);
52  static StMemoryInfo* mMemoryInfo;
53 #ifndef __APPLE__
54  struct mallinfo mInfo;
55  struct mallinfo mOldInfo;
56 #endif
57  size_t mCounter;
58 };
59 
60 #endif