Warning, file /include/root/RooTrace.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #ifndef ROO_TRACE
0017 #define ROO_TRACE
0018
0019 #include "RooLinkedList.h"
0020 #include <map>
0021 #include <string>
0022
0023 #define TRACE_CREATE
0024 #define TRACE_DESTROY
0025
0026 class RooTrace {
0027 public:
0028 RooTrace() ;
0029 virtual ~RooTrace() {} ;
0030
0031 static void create(const TObject* obj) ;
0032 static void destroy(const TObject* obj) ;
0033
0034
0035 static void createSpecial(const char* name, int size) ;
0036 static void destroySpecial(const char* name) ;
0037
0038
0039 static void active(bool flag) ;
0040 static void verbose(bool flag) ;
0041
0042 static void dump() ;
0043 static void dump(std::ostream& os, bool sinceMarked=false) ;
0044 static void mark() ;
0045
0046 static void callgrind_zero() ;
0047 static void callgrind_dump() ;
0048
0049
0050 static RooTrace& instance() ;
0051
0052 static void printObjectCounts() ;
0053
0054
0055 protected:
0056
0057 static RooTrace* _instance ;
0058
0059 void dump3(std::ostream&, bool sinceMarked) ;
0060
0061 void mark3() ;
0062 void printObjectCounts3() ;
0063
0064 void create2(const TObject* obj) ;
0065 void destroy2(const TObject* obj) ;
0066
0067 void create3(const TObject* obj) ;
0068 void destroy3(const TObject* obj) ;
0069
0070 void createSpecial3(const char* name, int size) ;
0071 void destroySpecial3(const char* name) ;
0072
0073 void addPad(const TObject* ref, bool doPad) ;
0074 bool removePad(const TObject* ref) ;
0075
0076 bool _active ;
0077 bool _verbose ;
0078 RooLinkedList _list ;
0079 RooLinkedList _markList ;
0080 std::map<TClass*,int> _objectCount ;
0081 std::map<std::string,int> _specialCount ;
0082 std::map<std::string,int> _specialSize ;
0083
0084 ClassDef(RooTrace,0)
0085 };
0086
0087
0088 #endif