Logo ROOT  
Reference Guide
TVirtualPerfStats.h
Go to the documentation of this file.
1 // @(#)root/base:$Id$
2 // Author: Kristjan Gulbrandsen 11/05/04
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TVirtualPerfStats
13 #define ROOT_TVirtualPerfStats
14 
15 //////////////////////////////////////////////////////////////////////////
16 // //
17 // TVirtualPerfStats //
18 // //
19 // Provides the interface for the PROOF internal performance measurment //
20 // and event tracing. //
21 // //
22 //////////////////////////////////////////////////////////////////////////
23 
24 
25 #include "TObject.h"
26 
27 
28 class TFile;
29 class TBranch;
30 class TChain;
31 
32 class TVirtualPerfStats : public TObject {
33 
34 private:
35  friend class TChain;
36 
37  virtual void SetFile(TFile *) = 0;
38 
39 public:
40  virtual ~TVirtualPerfStats() {}
41 
42  enum EEventType {
44  kPacket, //info of single packet processing
45  kStart, //begin of run
46  kStop, //end of run
47  kFile, //file started/finished in packetizer
48  kFileOpen, //opening data file statistics
49  kFileRead, //reading data file event
50  kRate, //processing {evt, MB} rates
51  kNumEventType //number of entries, must be last
52  };
53 
54  static TVirtualPerfStats *&CurrentPerfStats(); // Return the current perfStats for this thread.
55 
56  virtual void SimpleEvent(EEventType type) = 0;
57 
58  virtual void PacketEvent(const char *slave, const char *slavename, const char *filename,
59  Long64_t eventsprocessed, Double_t latency,
60  Double_t proctime, Double_t cputime,
61  Long64_t bytesRead) = 0;
62 
63  virtual void FileEvent(const char *slave, const char *slavename, const char *nodename,
64  const char *filename, Bool_t isStart) = 0;
65 
66  virtual void FileOpenEvent(TFile *file, const char *filename, Double_t start) = 0;
67 
68  virtual void FileReadEvent(TFile *file, Int_t len, Double_t start) = 0;
69 
70  virtual void UnzipEvent(TObject *tree, Long64_t pos, Double_t start, Int_t complen, Int_t objlen) = 0;
71 
72  virtual void RateEvent(Double_t proctime, Double_t deltatime,
73  Long64_t eventsprocessed, Long64_t bytesRead) = 0;
74 
75  virtual void SetBytesRead(Long64_t num) = 0;
76  virtual Long64_t GetBytesRead() const = 0;
77  virtual void SetNumEvents(Long64_t num) = 0;
78  virtual Long64_t GetNumEvents() const = 0;
79 
80  virtual void PrintBasketInfo(Option_t *option = "") const = 0;
81  virtual void SetLoaded(TBranch *b, size_t basketNumber) = 0;
82  virtual void SetLoaded(size_t bi, size_t basketNumber) = 0;
83  virtual void SetLoadedMiss(TBranch *b, size_t basketNumber) = 0;
84  virtual void SetLoadedMiss(size_t bi, size_t basketNumber) = 0;
85  virtual void SetMissed(TBranch *b, size_t basketNumber) = 0;
86  virtual void SetMissed(size_t bi, size_t basketNumber) = 0;
87  virtual void SetUsed(TBranch *b, size_t basketNumber) = 0;
88  virtual void SetUsed(size_t bi, size_t basketNumber) = 0;
89  virtual void UpdateBranchIndices(TObjArray *branches) = 0;
90 
91  static const char *EventType(EEventType type);
92 
93  ClassDef(TVirtualPerfStats,0) // ABC for collecting PROOF statistics
94 };
95 
96 
97 #ifndef __CINT__
98 #define gPerfStats (TVirtualPerfStats::CurrentPerfStats())
99 
100 #elif defined(__MAKECINT__)
101 // To properly handle the use of gPerfStats in header files (in static declarations)
103 #endif
104 
105 
106 #endif
TVirtualPerfStats::SetLoadedMiss
virtual void SetLoadedMiss(size_t bi, size_t basketNumber)=0
TVirtualPerfStats::FileEvent
virtual void FileEvent(const char *slave, const char *slavename, const char *nodename, const char *filename, Bool_t isStart)=0
TObjArray
An array of TObjects.
Definition: TObjArray.h:37
Option_t
const char Option_t
Definition: RtypesCore.h:66
TVirtualPerfStats::SetLoaded
virtual void SetLoaded(size_t bi, size_t basketNumber)=0
tree
Definition: tree.py:1
TVirtualPerfStats::GetBytesRead
virtual Long64_t GetBytesRead() const =0
TVirtualPerfStats::RateEvent
virtual void RateEvent(Double_t proctime, Double_t deltatime, Long64_t eventsprocessed, Long64_t bytesRead)=0
TVirtualPerfStats::UnzipEvent
virtual void UnzipEvent(TObject *tree, Long64_t pos, Double_t start, Int_t complen, Int_t objlen)=0
Long64_t
long long Long64_t
Definition: RtypesCore.h:80
TVirtualPerfStats::kNumEventType
@ kNumEventType
Definition: TVirtualPerfStats.h:51
TVirtualPerfStats
Provides the interface for the PROOF internal performance measurement and event tracing.
Definition: TVirtualPerfStats.h:32
TVirtualPerfStats::~TVirtualPerfStats
virtual ~TVirtualPerfStats()
Definition: TVirtualPerfStats.h:40
TVirtualPerfStats::SetLoaded
virtual void SetLoaded(TBranch *b, size_t basketNumber)=0
TVirtualPerfStats::kRate
@ kRate
Definition: TVirtualPerfStats.h:50
TVirtualPerfStats::EventType
static const char * EventType(EEventType type)
Return the name of the event type.
Definition: TVirtualPerfStats.cxx:54
TVirtualPerfStats::EEventType
EEventType
Definition: TVirtualPerfStats.h:42
TVirtualPerfStats::kPacket
@ kPacket
Definition: TVirtualPerfStats.h:44
b
#define b(i)
Definition: RSha256.hxx:100
TVirtualPerfStats::PacketEvent
virtual void PacketEvent(const char *slave, const char *slavename, const char *filename, Long64_t eventsprocessed, Double_t latency, Double_t proctime, Double_t cputime, Long64_t bytesRead)=0
bool
TVirtualPerfStats::SetUsed
virtual void SetUsed(size_t bi, size_t basketNumber)=0
TVirtualPerfStats::kFileRead
@ kFileRead
Definition: TVirtualPerfStats.h:49
TBranch
A TTree is a list of TBranches.
Definition: TBranch.h:89
TVirtualPerfStats::kFile
@ kFile
Definition: TVirtualPerfStats.h:47
TVirtualPerfStats::PrintBasketInfo
virtual void PrintBasketInfo(Option_t *option="") const =0
TVirtualPerfStats::SimpleEvent
virtual void SimpleEvent(EEventType type)=0
TVirtualPerfStats::kStart
@ kStart
Definition: TVirtualPerfStats.h:45
TVirtualPerfStats::SetBytesRead
virtual void SetBytesRead(Long64_t num)=0
TVirtualPerfStats::GetNumEvents
virtual Long64_t GetNumEvents() const =0
TVirtualPerfStats::kFileOpen
@ kFileOpen
Definition: TVirtualPerfStats.h:48
TFile
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format.
Definition: TFile.h:54
TVirtualPerfStats::UpdateBranchIndices
virtual void UpdateBranchIndices(TObjArray *branches)=0
TVirtualPerfStats::SetFile
virtual void SetFile(TFile *)=0
Double_t
double Double_t
Definition: RtypesCore.h:59
TObject.h
file
Definition: file.py:1
TObject
Mother of all ROOT objects.
Definition: TObject.h:37
TVirtualPerfStats::FileReadEvent
virtual void FileReadEvent(TFile *file, Int_t len, Double_t start)=0
ClassDef
#define ClassDef(name, id)
Definition: Rtypes.h:325
TVirtualPerfStats::SetMissed
virtual void SetMissed(size_t bi, size_t basketNumber)=0
TVirtualPerfStats::kUnDefined
@ kUnDefined
Definition: TVirtualPerfStats.h:43
R__EXTERN
#define R__EXTERN
Definition: DllImport.h:27
TVirtualPerfStats::SetLoadedMiss
virtual void SetLoadedMiss(TBranch *b, size_t basketNumber)=0
TChain
A chain is a collection of files containing TTree objects.
Definition: TChain.h:33
type
int type
Definition: TGX11.cxx:121
TVirtualPerfStats::FileOpenEvent
virtual void FileOpenEvent(TFile *file, const char *filename, Double_t start)=0
TVirtualPerfStats::SetNumEvents
virtual void SetNumEvents(Long64_t num)=0
TVirtualPerfStats::SetMissed
virtual void SetMissed(TBranch *b, size_t basketNumber)=0
gPerfStats
#define gPerfStats
Definition: TVirtualPerfStats.h:98
TVirtualPerfStats::CurrentPerfStats
static TVirtualPerfStats *& CurrentPerfStats()
Return the current ROOT perf stats if any.
Definition: TVirtualPerfStats.cxx:41
TVirtualPerfStats::kStop
@ kStop
Definition: TVirtualPerfStats.h:46
int
TVirtualPerfStats::SetUsed
virtual void SetUsed(TBranch *b, size_t basketNumber)=0