00001 #ifndef __KMTRACELEAK__H__ 00002 #define __KMTRACELEAK__H__ 00003 00004 // Qt includes 00005 #include <qobject.h> 00006 00007 // kmtraceviewer includes 00008 #include "KMtraceCallStack.hh" 00009 #include "KMtraceCall.hh" 00010 #include "KMtraceLeaksViewItem.hh" 00011 00034 class KMtraceLeak : public QObject 00035 { 00036 Q_OBJECT 00037 00038 public: 00039 // standard constructors 00040 KMtraceLeak( ); 00041 KMtraceLeak( int blocks, int bytes, int firstBytes, QString firstAddress ); 00042 00043 // accesser functions 00044 int getBlocks( ); 00045 int getBytes( ); 00046 int getFirstBytes( ); 00047 QString getFirstAddress( ); 00048 00058 void addCall( KMtraceCall *call ); 00059 00065 KMtraceCallStack *getCallStack( ); 00066 00074 void setSuppressed( bool suppressed ); 00075 00081 bool isSuppressed( ); 00082 00088 void setView( KMtraceLeaksViewItem *kitem ); 00089 00097 KMtraceLeaksViewItem *getView( ); 00098 00099 signals: 00109 void suppressionChanged( KMtraceLeak *leak ); 00110 00111 private: 00112 // blocks (how many calls to allocation routine) 00113 int m_blocks; 00114 00115 // bytes (how many bytes make up the leak) 00116 int m_bytes; 00117 00118 // how big is the first block 00119 int m_firstBytes; 00120 00121 // address of first block 00122 QString m_firstAddress; 00123 00124 // the backtrace (call stack in modules, lines, function names, addresses) 00125 KMtraceCallStack m_callStack; 00126 00127 // whether this leak should be shown as suppressed leak (if ever) 00128 bool m_suppressed; 00129 00130 // the view to the model 00131 KMtraceLeaksViewItem *m_kitem; 00132 }; 00133 00134 #endif