ROOT logo
// @(#)root/sessionviewer:$Id: TProofProgressMemoryPlot.h 28564 2009-05-12 11:00:21Z ganis $
// Author: Anna Kreshuk 18/07/2008

/*************************************************************************
 * Copyright (C) 1995-2003, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TProofProgressMemoryPlot
#define ROOT_TProofProgressMemoryPlot

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TProofProgressMemoryPlot                                             //
//                                                                      //
// This class implements a dialog, used to display the memory footprint //
// on the proof workers and master. For the workers, memory is plotted  //
// as a function of number of events processed. For the master, it is   //
// plotted as a function of number of objects merged                    //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TGFrame
#include "TGFrame.h"
#endif

class TGListBox;
class TGTextButton;
class TRootEmbeddedCanvas;
class TProofProgressDialog;
class TGSplitButton;
class TProofLog;
class TMultiGraph;
class TGraph;
class TProofLogElem;

class TProofProgressMemoryPlot : public TGTransientFrame {

 protected:
   TProofProgressDialog *fDialog;
   TGListBox            *fWorkers;
   TGTextButton         *fPlot;
   TGSplitButton        *fAllWorkers; // display all workers button
   TRootEmbeddedCanvas  *fWorkersPlot;
   TRootEmbeddedCanvas  *fMasterPlot;
   TProofLog            *fProofLog;
   TMultiGraph          *fWPlot;
   TMultiGraph          *fMPlot;
   TMultiGraph          *fAPlot;
   Bool_t               fFullLogs;

   TGListBox* BuildLogList(TGFrame *parent);
   TGraph*    DoWorkerPlot(TProofLogElem *ple);
   TGraph*    DoMasterPlot(TProofLogElem *ple);
   TGraph*    DoAveragePlot(Int_t &max_el, Int_t &min_el);
   TGraph*    DoAveragePlotOld(Int_t &max_el, Int_t &min_el);

   Int_t      ParseLine(TString l, Long64_t &v, Long64_t &r, Long64_t &e);

 public:
   TProofProgressMemoryPlot(TProofProgressDialog *d, Int_t w = 700, Int_t h = 300);
   virtual ~TProofProgressMemoryPlot();

   void       Clear(Option_t * = 0);
   void       DoPlot();
   void       Select(Int_t id);

   ClassDef(TProofProgressMemoryPlot,0) //PROOF progress memory plots
};

#endif
 TProofProgressMemoryPlot.h:1
 TProofProgressMemoryPlot.h:2
 TProofProgressMemoryPlot.h:3
 TProofProgressMemoryPlot.h:4
 TProofProgressMemoryPlot.h:5
 TProofProgressMemoryPlot.h:6
 TProofProgressMemoryPlot.h:7
 TProofProgressMemoryPlot.h:8
 TProofProgressMemoryPlot.h:9
 TProofProgressMemoryPlot.h:10
 TProofProgressMemoryPlot.h:11
 TProofProgressMemoryPlot.h:12
 TProofProgressMemoryPlot.h:13
 TProofProgressMemoryPlot.h:14
 TProofProgressMemoryPlot.h:15
 TProofProgressMemoryPlot.h:16
 TProofProgressMemoryPlot.h:17
 TProofProgressMemoryPlot.h:18
 TProofProgressMemoryPlot.h:19
 TProofProgressMemoryPlot.h:20
 TProofProgressMemoryPlot.h:21
 TProofProgressMemoryPlot.h:22
 TProofProgressMemoryPlot.h:23
 TProofProgressMemoryPlot.h:24
 TProofProgressMemoryPlot.h:25
 TProofProgressMemoryPlot.h:26
 TProofProgressMemoryPlot.h:27
 TProofProgressMemoryPlot.h:28
 TProofProgressMemoryPlot.h:29
 TProofProgressMemoryPlot.h:30
 TProofProgressMemoryPlot.h:31
 TProofProgressMemoryPlot.h:32
 TProofProgressMemoryPlot.h:33
 TProofProgressMemoryPlot.h:34
 TProofProgressMemoryPlot.h:35
 TProofProgressMemoryPlot.h:36
 TProofProgressMemoryPlot.h:37
 TProofProgressMemoryPlot.h:38
 TProofProgressMemoryPlot.h:39
 TProofProgressMemoryPlot.h:40
 TProofProgressMemoryPlot.h:41
 TProofProgressMemoryPlot.h:42
 TProofProgressMemoryPlot.h:43
 TProofProgressMemoryPlot.h:44
 TProofProgressMemoryPlot.h:45
 TProofProgressMemoryPlot.h:46
 TProofProgressMemoryPlot.h:47
 TProofProgressMemoryPlot.h:48
 TProofProgressMemoryPlot.h:49
 TProofProgressMemoryPlot.h:50
 TProofProgressMemoryPlot.h:51
 TProofProgressMemoryPlot.h:52
 TProofProgressMemoryPlot.h:53
 TProofProgressMemoryPlot.h:54
 TProofProgressMemoryPlot.h:55
 TProofProgressMemoryPlot.h:56
 TProofProgressMemoryPlot.h:57
 TProofProgressMemoryPlot.h:58
 TProofProgressMemoryPlot.h:59
 TProofProgressMemoryPlot.h:60
 TProofProgressMemoryPlot.h:61
 TProofProgressMemoryPlot.h:62
 TProofProgressMemoryPlot.h:63
 TProofProgressMemoryPlot.h:64
 TProofProgressMemoryPlot.h:65
 TProofProgressMemoryPlot.h:66
 TProofProgressMemoryPlot.h:67
 TProofProgressMemoryPlot.h:68
 TProofProgressMemoryPlot.h:69
 TProofProgressMemoryPlot.h:70
 TProofProgressMemoryPlot.h:71
 TProofProgressMemoryPlot.h:72
 TProofProgressMemoryPlot.h:73
 TProofProgressMemoryPlot.h:74