Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TProofProgressStatus.h
Go to the documentation of this file.
1 // @(#)root/proof:$Id$
2 // Author: Jan Iwaszkiewicz 08/08/08
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2008, 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_TProofProgressStatus
13 #define ROOT_TProofProgressStatus
14 
15 #include "TObject.h"
16 
17 //////////////////////////////////////////////////////////////////////////
18 // //
19 // TProofProgressStatus //
20 // //
21 // Small class including processing statistics //
22 // //
23 //////////////////////////////////////////////////////////////////////////
24 
25 class TProofProgressStatus : public TObject {
26 public:
27  enum EStatusBits { kFileNotOpen = BIT(15),
28  kFileCorrupted = BIT(16)
29  };
30 private:
31  Long64_t fLastEntries; // Last chunck
32  Long64_t fEntries;
33  Long64_t fBytesRead;
34  Long64_t fReadCalls;
35  Double_t fLearnTime; // the time spent in learning phase
36  Double_t fLastProcTime; // the wallclock time of the last addition
37  Double_t fProcTime; // the wallclock time
38  Double_t fCPUTime;
39  Double_t fLastUpdate; // Timestamp of last change
40 public:
41  TProofProgressStatus(Long64_t fEntries = 0, Long64_t fBytesRead = 0,
42  Long64_t fReadCalls = 0,
43  Double_t fProcTime = 0, Double_t fCPUTime = 0);
44  void Reset() { fEntries = 0,
45  fBytesRead = 0, fProcTime = 0, fCPUTime = 0; SetLastUpdate();}
46 
47  inline Long64_t GetEntries() const { return fEntries; }
48  inline Long64_t GetBytesRead() const { return fBytesRead; }
49  inline Long64_t GetReadCalls() const { return fReadCalls; }
50  inline Double_t GetLearnTime() const { return fLearnTime; }
51  inline Double_t GetProcTime() const { return fProcTime; }
52  inline Double_t GetCPUTime() const { return fCPUTime; }
53  inline Double_t GetLastUpdate() const { return fLastUpdate; }
54  inline Double_t GetRate() const { return ((fProcTime > 0) ? fEntries/fProcTime : 0); }
55  Double_t GetCurrentRate() const;
56  inline void SetLastEntries(Long64_t entries) { fLastEntries = entries; }
57  inline void SetEntries(Long64_t entries) { fEntries = entries; }
58  inline void IncEntries(Long64_t entries = 1) { fLastEntries = entries; fEntries += entries; }
59  inline void IncBytesRead(Long64_t bytesRead) { fBytesRead += bytesRead; }
60  inline void SetBytesRead(Long64_t bytesRead) { fBytesRead = bytesRead; }
61  inline void IncReadCalls(Long64_t readCalls) { fReadCalls += readCalls; }
62  inline void SetReadCalls(Long64_t readCalls) { fReadCalls = readCalls; }
63  inline void SetLearnTime(Double_t learnTime) { fLearnTime = learnTime; }
64  inline void SetLastProcTime(Double_t procTime) { fLastProcTime = procTime; }
65  inline void SetProcTime(Double_t procTime) { fProcTime = procTime; }
66  inline void IncProcTime(Double_t procTime) { fLastProcTime = procTime; fProcTime += procTime; }
67  inline void SetCPUTime(Double_t procTime) { fCPUTime = procTime; }
68  inline void IncCPUTime(Double_t procTime) { fCPUTime += procTime; }
69  void SetLastUpdate(Double_t updtTime = 0);
70  void Print(Option_t* option = "") const;
71 
72  TProofProgressStatus operator-(TProofProgressStatus &st);
73  TProofProgressStatus &operator+=(const TProofProgressStatus &st);
74  TProofProgressStatus &operator-=(const TProofProgressStatus &st);
75 
76  ClassDef(TProofProgressStatus,2) // Proof progress status class
77 };
78 
79 #endif