Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TQueryResult.h
Go to the documentation of this file.
1 // @(#)root/tree:$Id$
2 // Author: G Ganis Sep 2005
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2005, 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_TQueryResult
13 #define ROOT_TQueryResult
14 
15 
16 //////////////////////////////////////////////////////////////////////////
17 // //
18 // TQueryResult //
19 // //
20 // A container class for the results of a query. //
21 // //
22 //////////////////////////////////////////////////////////////////////////
23 
24 #include "TNamed.h"
25 #include "TDatime.h"
26 #include "TMacro.h"
27 #include "TString.h"
28 
29 class TBrowser;
30 class TTreePlayer;
31 class TQueryResult;
32 
33 Bool_t operator==(const TQueryResult &qr1, const TQueryResult &qr2);
34 
35 
36 class TQueryResult : public TNamed {
37 
38 friend class TTreePlayer;
39 friend class TProofPlayerLite;
40 friend class TProofPlayerRemote;
41 friend class TProof;
42 friend class TProofLite;
43 friend class TProofServ;
44 friend class TQueryResultManager;
45 
46 public:
47  enum EQueryStatus {
48  kAborted = 0, kSubmitted, kRunning, kStopped, kCompleted
49  };
50 
51 protected:
52  Int_t fSeqNum; ///< query unique sequential number
53  Bool_t fDraw; ///< true if draw action query
54  EQueryStatus fStatus; ///< query status
55  TDatime fStart; ///< time when processing started
56  TDatime fEnd; ///< time when processing ended
57  Float_t fUsedCPU; ///< real CPU time used (seconds)
58  TString fOptions; ///< processing options + aclic mode (< opt >#< aclic_mode >)
59  TList *fInputList; ///< input list; contains also data sets, entry list, ...
60  Long64_t fEntries; ///< number of entries processed
61  Long64_t fFirst; ///< first entry processed
62  Long64_t fBytes; ///< number of bytes processed
63  TMacro *fLogFile; ///< file with log messages from the query
64  TMacro *fSelecHdr; ///< selector header file
65  TMacro *fSelecImp; ///< selector implementation file
66  TString fLibList; ///< blank-separated list of libs loaded at fStart
67  TString fParList; ///< colon-separated list of PAR loaded at fStart
68  TList *fOutputList; ///< output list
69  Bool_t fFinalized; ///< whether Terminate has been run
70  Bool_t fArchived; ///< whether the query has been archived
71  TString fResultFile; ///< URL of the file where results have been archived
72  Float_t fPrepTime; ///< Prepare time (seconds) (millisec precision)
73  Float_t fInitTime; ///< Initialization time (seconds) (millisec precision)
74  Float_t fProcTime; ///< Processing time (seconds) (millisec precision)
75  Float_t fMergeTime; ///< Merging time (seconds) (millisec precision)
76  Float_t fRecvTime; ///< Transfer-to-client time (seconds) (millisec precision)
77  Float_t fTermTime; ///< Terminate time (seconds) (millisec precision)
78  Int_t fNumWrks; ///< Number of workers at start
79  Int_t fNumMergers; ///< Number of submergers
80 
81  TQueryResult(Int_t seqnum, const char *opt, TList *inlist,
82  Long64_t entries, Long64_t first,
83  const char *selec);
84 
85  void AddInput(TObject *obj);
86  void AddLogLine(const char *logline);
87  TQueryResult *CloneInfo();
88  virtual void RecordEnd(EQueryStatus status, TList *outlist = 0);
89  void SaveSelector(const char *selec);
90  void SetArchived(const char *archfile);
91  virtual void SetFinalized() { fFinalized = kTRUE; }
92  virtual void SetInputList(TList *in, Bool_t adopt = kTRUE);
93  virtual void SetOutputList(TList *out, Bool_t adopt = kTRUE);
94  virtual void SetProcessInfo(Long64_t ent, Float_t cpu = 0.,
95  Long64_t siz = -1,
96  Float_t inittime = 0., Float_t proctime = 0.);
97  void SetPrepTime(Float_t preptime) { fPrepTime = preptime; }
98  void SetMergeTime(Float_t mergetime) { fMergeTime = mergetime; }
99  void SetRecvTime(Float_t recvtime) { fRecvTime = recvtime; }
100  void SetTermTime(Float_t termtime) { fTermTime = termtime; }
101  void SetNumMergers(Int_t nmergers) { fNumMergers = nmergers; }
102 
103 public:
104  TQueryResult() : fSeqNum(-1), fDraw(0), fStatus(kSubmitted), fUsedCPU(0.),
105  fInputList(0), fEntries(-1), fFirst(-1), fBytes(0),
106  fLogFile(0), fSelecHdr(0), fSelecImp(0),
107  fLibList("-"), fOutputList(0),
108  fFinalized(kFALSE), fArchived(kFALSE), fPrepTime(0.),
109  fInitTime(0.), fProcTime(0.), fMergeTime(0.),
110  fRecvTime(-1), fTermTime(0.), fNumWrks(-1), fNumMergers(-1) { }
111  virtual ~TQueryResult();
112 
113  void Browse(TBrowser *b = 0);
114 
115  Int_t GetSeqNum() const { return fSeqNum; }
116  EQueryStatus GetStatus() const { return fStatus; }
117  TDatime GetStartTime() const { return fStart; }
118  TDatime GetEndTime() const { return fEnd; }
119  const char *GetOptions() const { return fOptions; }
120  TList *GetInputList() { return fInputList; }
121  TObject *GetInputObject(const char *classname) const;
122  Long64_t GetEntries() const { return fEntries; }
123  Long64_t GetFirst() const { return fFirst; }
124  Long64_t GetBytes() const { return fBytes; }
125  Float_t GetUsedCPU() const { return fUsedCPU; }
126  TMacro *GetLogFile() const { return fLogFile; }
127  TMacro *GetSelecHdr() const { return fSelecHdr; }
128  TMacro *GetSelecImp() const { return fSelecImp; }
129  const char *GetLibList() const { return fLibList; }
130  const char *GetParList() const { return fParList; }
131  TList *GetOutputList() { return fOutputList; }
132  const char *GetResultFile() const { return fResultFile; }
133  Float_t GetPrepTime() const { return fPrepTime; }
134  Float_t GetInitTime() const { return fInitTime; }
135  Float_t GetProcTime() const { return fProcTime; }
136  Float_t GetMergeTime() const { return fMergeTime; }
137  Float_t GetRecvTime() const { return fRecvTime; }
138  Float_t GetTermTime() const { return fTermTime; }
139  Int_t GetNumWrks() const { return fNumWrks; }
140  Int_t GetNumMergers() const { return fNumMergers; }
141 
142  Bool_t IsArchived() const { return fArchived; }
143  virtual Bool_t IsDone() const { return (fStatus > kRunning); }
144  Bool_t IsDraw() const { return fDraw; }
145  Bool_t IsFinalized() const { return fFinalized; }
146 
147  Bool_t Matches(const char *ref);
148 
149  void Print(Option_t *opt = "") const;
150 
151  ClassDef(TQueryResult,5) //Class describing a query
152 };
153 
154 inline Bool_t operator!=(const TQueryResult &qr1, const TQueryResult &qr2)
155  { return !(qr1 == qr2); }
156 
157 #endif