00001 // @(#)root/sessionviewer:$Id: TProofProgressMemoryPlot.h 28564 2009-05-12 11:00:21Z ganis $ 00002 // Author: Anna Kreshuk 18/07/2008 00003 00004 /************************************************************************* 00005 * Copyright (C) 1995-2003, Rene Brun and Fons Rademakers. * 00006 * All rights reserved. * 00007 * * 00008 * For the licensing terms see $ROOTSYS/LICENSE. * 00009 * For the list of contributors see $ROOTSYS/README/CREDITS. * 00010 *************************************************************************/ 00011 00012 #ifndef ROOT_TProofProgressMemoryPlot 00013 #define ROOT_TProofProgressMemoryPlot 00014 00015 ////////////////////////////////////////////////////////////////////////// 00016 // // 00017 // TProofProgressMemoryPlot // 00018 // // 00019 // This class implements a dialog, used to display the memory footprint // 00020 // on the proof workers and master. For the workers, memory is plotted // 00021 // as a function of number of events processed. For the master, it is // 00022 // plotted as a function of number of objects merged // 00023 // // 00024 ////////////////////////////////////////////////////////////////////////// 00025 00026 #ifndef ROOT_TGFrame 00027 #include "TGFrame.h" 00028 #endif 00029 00030 class TGListBox; 00031 class TGTextButton; 00032 class TRootEmbeddedCanvas; 00033 class TProofProgressDialog; 00034 class TGSplitButton; 00035 class TProofLog; 00036 class TMultiGraph; 00037 class TGraph; 00038 class TProofLogElem; 00039 00040 class TProofProgressMemoryPlot : public TGTransientFrame { 00041 00042 protected: 00043 TProofProgressDialog *fDialog; 00044 TGListBox *fWorkers; 00045 TGTextButton *fPlot; 00046 TGSplitButton *fAllWorkers; // display all workers button 00047 TRootEmbeddedCanvas *fWorkersPlot; 00048 TRootEmbeddedCanvas *fMasterPlot; 00049 TProofLog *fProofLog; 00050 TMultiGraph *fWPlot; 00051 TMultiGraph *fMPlot; 00052 TMultiGraph *fAPlot; 00053 Bool_t fFullLogs; 00054 00055 TGListBox* BuildLogList(TGFrame *parent); 00056 TGraph* DoWorkerPlot(TProofLogElem *ple); 00057 TGraph* DoMasterPlot(TProofLogElem *ple); 00058 TGraph* DoAveragePlot(Int_t &max_el, Int_t &min_el); 00059 TGraph* DoAveragePlotOld(Int_t &max_el, Int_t &min_el); 00060 00061 Int_t ParseLine(TString l, Long64_t &v, Long64_t &r, Long64_t &e); 00062 00063 public: 00064 TProofProgressMemoryPlot(TProofProgressDialog *d, Int_t w = 700, Int_t h = 300); 00065 virtual ~TProofProgressMemoryPlot(); 00066 00067 void Clear(Option_t * = 0); 00068 void DoPlot(); 00069 void Select(Int_t id); 00070 00071 ClassDef(TProofProgressMemoryPlot,0) //PROOF progress memory plots 00072 }; 00073 00074 #endif