Logo ROOT   6.21/01
Reference Guide
TProofPlayer.h
Go to the documentation of this file.
1 // @(#)root/proofplayer:$Id$
2 // Author: Maarten Ballintijn 07/01/02
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2001, 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_TProofPlayer
13 #define ROOT_TProofPlayer
14 
15 
16 //////////////////////////////////////////////////////////////////////////
17 // //
18 // TProofPlayer //
19 // //
20 // This internal class and its subclasses steer the processing in PROOF.//
21 // Instances of the TProofPlayer class are created on the worker nodes //
22 // per session and do the processing. //
23 // Instances of its subclass - TProofPlayerRemote are created per each //
24 // query on the master(s) and on the client. On the master(s), //
25 // TProofPlayerRemote coordinate processing, check the dataset, create //
26 // the packetizer and take care of merging the results of the workers. //
27 // The instance on the client collects information on the input //
28 // (dataset and selector), it invokes the Begin() method and finalizes //
29 // the query by calling Terminate(). //
30 // //
31 //////////////////////////////////////////////////////////////////////////
32 
33 #include "TVirtualProofPlayer.h"
34 #include "TArrayL64.h"
35 #include "TArrayF.h"
36 #include "TArrayI.h"
37 #include "TList.h"
38 #include "TSystem.h"
39 #include "TQueryResult.h"
40 #include "TProofProgressStatus.h"
41 #include "TError.h"
42 
43 #include <mutex>
44 
45 class TSelector;
46 class TSocket;
47 class TVirtualPacketizer;
48 class TSlave;
49 class TEventIter;
50 class TProofStats;
51 class TStatus;
52 class TTimer;
53 class THashList;
54 class TH1;
55 class TFile;
56 class TStopwatch;
57 
58 //------------------------------------------------------------------------
59 
61 
62 private:
63  TList *fAutoBins; // Map of min/max values by name for slaves
64 
65 protected:
66  TList *fInput; //-> list with input objects
67  THashList *fOutput; // list with output objects
68  TSelector *fSelector; //! the latest selector
69  Bool_t fCreateSelObj; //! kTRUE when fSelector has been created locally
70  TClass *fSelectorClass; //! class of the latest selector
71  TTimer *fFeedbackTimer; //! timer for sending intermediate results
72  Long_t fFeedbackPeriod; //! period (ms) for sending intermediate results
73  TEventIter *fEvIter; //! iterator on events or objects
74  TStatus *fSelStatus; //! status of query in progress
75  EExitStatus fExitStatus; // exit status
76  Long64_t fTotalEvents; // number of events requested
77  TProofProgressStatus *fProgressStatus; // the progress status object;
78 
79  Long64_t fReadBytesRun; //! Bytes read in this run
80  Long64_t fReadCallsRun; //! Read calls in this run
81  Long64_t fProcessedRun; //! Events processed in this run
82 
83  TList *fQueryResults; //List of TQueryResult
84  TQueryResult *fQuery; //Instance of TQueryResult currently processed
85  TQueryResult *fPreviousQuery; //Previous instance of TQueryResult processed
86  Int_t fDrawQueries; //Number of Draw queries in the list
87  Int_t fMaxDrawQueries; //Max number of Draw queries kept
88 
89  TTimer *fStopTimer; //Timer associated with a stop request
90  std::mutex fStopTimerMtx; //To protect the stop timer
91 
92  TTimer *fDispatchTimer; //Dispatch pending events while processing
93 
94  TTimer *fProcTimeTimer; //Notifies reaching of allowed max proc time
95  TStopwatch *fProcTime; //Packet proc time
96 
97  TString fOutputFilePath; //Path to file with (partial) results of the query
98  TFile *fOutputFile; //TFile object attached to fOutputFilePath
99  Long_t fSaveMemThreshold; //Threshold for saving output to file
100  Bool_t fSavePartialResults; //Whether to save the partial results
101  Bool_t fSaveResultsPerPacket; //Whether to save partial results after each packet
102 
103  static THashList *fgDrawInputPars; // List of input parameters to be kept on drawing actions
104 
105  void *GetSender() { return this; } //used to set gTQSender
106 
107  virtual Int_t DrawCanvas(TObject *obj); // Canvas drawing via libProofDraw
108 
109  virtual void SetupFeedback(); // specialized setup
110 
111  virtual void MergeOutput(Bool_t savememvalues = kFALSE);
112 
113 public: // fix for broken compilers so TCleanup can call StopFeedback()
114  virtual void StopFeedback(); // specialized teardown
115 
116 protected:
117  class TCleanup {
118  private:
120  public:
123  };
124 
125  Int_t AssertSelector(const char *selector_file);
126  Bool_t CheckMemUsage(Long64_t &mfreq, Bool_t &w80r, Bool_t &w80v, TString &wmsg);
127 
128  void MapOutputListToDataMembers() const;
129 
130 public:
133 
134  TProofPlayer(TProof *proof = 0);
135  virtual ~TProofPlayer();
136 
137  Long64_t Process(TDSet *set,
138  const char *selector, Option_t *option = "",
139  Long64_t nentries = -1, Long64_t firstentry = 0);
140  Long64_t Process(TDSet *set,
141  TSelector *selector, Option_t *option = "",
142  Long64_t nentries = -1, Long64_t firstentry = 0);
143  virtual Bool_t JoinProcess(TList *workers);
144  TVirtualPacketizer *GetPacketizer() const { return 0; }
145  Long64_t Finalize(Bool_t force = kFALSE, Bool_t sync = kFALSE);
147  Long64_t DrawSelect(TDSet *set, const char *varexp,
148  const char *selection, Option_t *option = "",
149  Long64_t nentries = -1, Long64_t firstentry = 0);
150  Int_t GetDrawArgs(const char *var, const char *sel, Option_t *opt,
151  TString &selector, TString &objname);
152  void HandleGetTreeHeader(TMessage *mess);
153  void HandleRecvHisto(TMessage *mess);
154  void FeedBackCanvas(const char *name, Bool_t create);
155 
156  void StopProcess(Bool_t abort, Int_t timeout = -1);
157  void AddInput(TObject *inp);
158  void ClearInput();
159  TObject *GetOutput(const char *name) const;
160  TList *GetOutputList() const;
161  TList *GetInputList() const { return fInput; }
162  TList *GetListOfResults() const { return fQueryResults; }
164  TQueryResult *GetCurrentQuery() const { return fQuery; }
165  TQueryResult *GetQueryResult(const char *ref);
166  void RemoveQueryResult(const char *ref);
171  void AddOutput(TList *out); // Incorporate a list
172  void StoreOutput(TList *out); // Adopts the list
173  void StoreFeedback(TObject *slave, TList *out); // Adopts the list
174  void Progress(Long64_t total, Long64_t processed); // *SIGNAL*
175  void Progress(TSlave *, Long64_t total, Long64_t processed)
176  { Progress(total, processed); }
177  void Progress(Long64_t total, Long64_t processed, Long64_t bytesread,
178  Float_t initTime, Float_t procTime,
179  Float_t evtrti, Float_t mbrti); // *SIGNAL*
180  void Progress(TSlave *, Long64_t total, Long64_t processed, Long64_t bytesread,
181  Float_t initTime, Float_t procTime,
182  Float_t evtrti, Float_t mbrti)
183  { Progress(total, processed, bytesread, initTime, procTime,
184  evtrti, mbrti); } // *SIGNAL*
185  void Progress(TProofProgressInfo *pi); // *SIGNAL*
186  void Progress(TSlave *, TProofProgressInfo *pi) { Progress(pi); } // *SIGNAL*
187  void Feedback(TList *objs); // *SIGNAL*
188 
192 
194 
196 
197  void UpdateAutoBin(const char *name,
200  Double_t& zmin, Double_t& zmax);
201 
202  Bool_t IsClient() const { return kFALSE; }
203 
208 
209  void SetDispatchTimer(Bool_t on = kTRUE);
210  void SetStopTimer(Bool_t on = kTRUE,
211  Bool_t abort = kFALSE, Int_t timeout = 0);
212 
213  virtual void SetInitTime() { }
214 
215  virtual void SetMerging(Bool_t = kTRUE) { }
216 
219 
220  void SetOutputFilePath(const char *fp) { fOutputFilePath = fp; }
221  Int_t SavePartialResults(Bool_t queryend = kFALSE, Bool_t force = kFALSE);
222 
223  void SetProcessing(Bool_t on = kTRUE);
225 
226  void UpdateProgressInfo();
227 
228  ClassDef(TProofPlayer,0) // Basic PROOF player
229 };
230 
231 
232 //------------------------------------------------------------------------
233 
235 
236 private:
238 
239 protected:
240  void SetupFeedback() { }
241  void StopFeedback() { }
242 
243 public:
244  TProofPlayerLocal(Bool_t client = kTRUE) : fIsClient(client) { }
245  virtual ~TProofPlayerLocal() { }
246 
247  Bool_t IsClient() const { return fIsClient; }
248  Long64_t Process(const char *selector, Long64_t nentries = -1, Option_t *option = "");
249  Long64_t Process(TSelector *selector, Long64_t nentries = -1, Option_t *option = "");
251  const char *selector, Option_t *option = "",
252  Long64_t nentries = -1, Long64_t firstentry = 0) {
253  return TProofPlayer::Process(set, selector, option, nentries, firstentry); }
255  TSelector *selector, Option_t *option = "",
256  Long64_t nentries = -1, Long64_t firstentry = 0) {
257  return TProofPlayer::Process(set, selector, option, nentries, firstentry); }
258  ClassDef(TProofPlayerLocal,0) // PROOF player running on client
259 };
260 
261 
262 //------------------------------------------------------------------------
263 
264 //////////////////////////////////////////////////////////////////////////
265 // //
266 // TProofPlayerRemote //
267 // //
268 // Instances of TProofPlayerRemote are created per each query on the //
269 // master(s) and on the client. On the master(s), TProofPlayerRemote //
270 // coordinate processing, check the dataset, create the packetizer //
271 // and take care of merging the results of the workers. //
272 // The instance on the client collects information on the input //
273 // (dataset and selector), it invokes the Begin() method and finalizes //
274 // the query by calling Terminate(). //
275 // //
276 //////////////////////////////////////////////////////////////////////////
277 
278 
280 
281 protected:
282  TProof *fProof; // link to associated PROOF session
283  TList *fOutputLists; // results returned by slaves
284  TList *fFeedback; // reference for use on master
285  TList *fFeedbackLists; // intermediate results
286  TVirtualPacketizer *fPacketizer; // transform TDSet into packets for slaves
287  Bool_t fMergeFiles; // is True when merging output files centrally is needed
288  TDSet *fDSet; //!tdset for current processing
289  ErrorHandlerFunc_t fErrorHandler; // Store previous handler when redirecting output
290  Bool_t fMergeTH1OneByOne; // If kTRUE forces TH1 merge one-by-one [kTRUE]
291  TH1 *fProcPackets; //!Histogram with packets being processed (owned by TPerfStats)
292  TMessage *fProcessMessage; // Process message to replay when adding new workers dynamically
293  TString fSelectorFileName; // Current Selector's name, set by Process()
294 
295  TStopwatch *fMergeSTW; // Merging stop watch
296  Int_t fNumMergers; // Number of submergers
297 
298  virtual Bool_t HandleTimer(TTimer *timer);
300  Long64_t first, const char *defpackunit,
301  const char *defpackdata);
302  TList *MergeFeedback();
304  void NotifyMemory(TObject *obj);
305  void SetLastMergingMsg(TObject *obj);
306  virtual Bool_t SendSelector(const char *selector_file); //send selector to slaves
307  TProof *GetProof() const { return fProof; }
308  void SetupFeedback(); // specialized setup
309  void StopFeedback(); // specialized teardown
311 
312 public:
313  TProofPlayerRemote(TProof *proof = 0) : fProof(proof), fOutputLists(0), fFeedback(0),
319  virtual ~TProofPlayerRemote(); // Owns the fOutput list
320  virtual Long64_t Process(TDSet *set, const char *selector,
321  Option_t *option = "", Long64_t nentries = -1,
322  Long64_t firstentry = 0);
323  virtual Long64_t Process(TDSet *set, TSelector *selector,
324  Option_t *option = "", Long64_t nentries = -1,
325  Long64_t firstentry = 0);
326  virtual Bool_t JoinProcess(TList *workers);
327  virtual Long64_t Finalize(Bool_t force = kFALSE, Bool_t sync = kFALSE);
328  virtual Long64_t Finalize(TQueryResult *qr);
329  Long64_t DrawSelect(TDSet *set, const char *varexp,
330  const char *selection, Option_t *option = "",
331  Long64_t nentries = -1, Long64_t firstentry = 0);
332 
333  void RedirectOutput(Bool_t on = kTRUE);
334  void StopProcess(Bool_t abort, Int_t timeout = -1);
335  void StoreOutput(TList *out); // Adopts the list
336  virtual void StoreFeedback(TObject *slave, TList *out); // Adopts the list
337  Int_t Incorporate(TObject *obj, TList *out, Bool_t &merged);
338  TObject *HandleHistogram(TObject *obj, Bool_t &merged);
339  Bool_t HistoSameAxis(TH1 *h0, TH1 *h1);
341  void AddOutput(TList *out); // Incorporate a list
342  virtual void MergeOutput(Bool_t savememvalues = kFALSE);
343  void Progress(Long64_t total, Long64_t processed); // *SIGNAL*
344  void Progress(TSlave*, Long64_t total, Long64_t processed)
345  { Progress(total, processed); }
346  void Progress(Long64_t total, Long64_t processed, Long64_t bytesread,
347  Float_t initTime, Float_t procTime,
348  Float_t evtrti, Float_t mbrti); // *SIGNAL*
349  void Progress(TSlave *, Long64_t total, Long64_t processed, Long64_t bytesread,
350  Float_t initTime, Float_t procTime,
351  Float_t evtrti, Float_t mbrti)
352  { Progress(total, processed, bytesread, initTime, procTime,
353  evtrti, mbrti); } // *SIGNAL*
354  void Progress(TProofProgressInfo *pi); // *SIGNAL*
355  void Progress(TSlave *, TProofProgressInfo *pi) { Progress(pi); } // *SIGNAL*
356  void Feedback(TList *objs); // *SIGNAL*
359 
360  Bool_t IsClient() const;
361 
362  void SetInitTime();
363 
364  void SetMerging(Bool_t on = kTRUE);
365 
366  ClassDef(TProofPlayerRemote,0) // PROOF player running on master server
367 };
368 
369 
370 //------------------------------------------------------------------------
371 
373 
374 private:
376  TList *fFeedback; // List of objects to send updates of
377 
378  Bool_t HandleTimer(TTimer *timer);
379 
380 protected:
381  void SetupFeedback();
382  void StopFeedback();
383 
384 public:
385  TProofPlayerSlave(TSocket *socket = 0) : fSocket(socket), fFeedback(0) { }
386 
387  void HandleGetTreeHeader(TMessage *mess);
388 
389  ClassDef(TProofPlayerSlave,0) // PROOF player running on slave server
390 };
391 
392 
393 //------------------------------------------------------------------------
394 
396 
397 private:
410 
411 protected:
412  Bool_t HandleTimer(TTimer *timer);
413  void SetupFeedback();
414 
415 public:
419 
420  Long64_t Process(TDSet *set, const char *selector,
421  Option_t *option = "", Long64_t nentries = -1,
422  Long64_t firstentry = 0);
423  Long64_t Process(TDSet *set, TSelector *selector,
424  Option_t *option = "", Long64_t nentries = -1,
425  Long64_t firstentry = 0)
426  { return TProofPlayerRemote::Process(set, selector, option,
427  nentries, firstentry); }
428  void Progress(Long64_t total, Long64_t processed)
429  { TProofPlayerRemote::Progress(total, processed); }
430  void Progress(Long64_t total, Long64_t processed, Long64_t bytesread,
431  Float_t initTime, Float_t procTime,
432  Float_t evtrti, Float_t mbrti)
433  { TProofPlayerRemote::Progress(total, processed, bytesread,
434  initTime, procTime, evtrti, mbrti); }
436  void Progress(TSlave *sl, Long64_t total, Long64_t processed);
437  void Progress(TSlave *sl, Long64_t total, Long64_t processed, Long64_t bytesread,
438  Float_t initTime, Float_t procTime,
439  Float_t evtrti, Float_t mbrti);
440  void Progress(TSlave *sl, TProofProgressInfo *pi);
441 
442  ClassDef(TProofPlayerSuperMaster,0) // PROOF player running on super master
443 };
444 
445 #endif
virtual void SetMerging(Bool_t=kTRUE)
Definition: TProofPlayer.h:215
Long64_t Process(const char *selector, Long64_t nentries=-1, Option_t *option="")
Process the specified TSelector file &#39;nentries&#39; times.
TCleanup(TProofPlayer *p)
Definition: TProofPlayer.h:121
void SetMerging(Bool_t on=kTRUE)
Switch on/off merge timer.
TProof * GetProof() const
Definition: TProofPlayer.h:307
TProofProgressStatus * fProgressStatus
Definition: TProofPlayer.h:77
TProofPlayerSuperMaster(TProof *proof=0)
Definition: TProofPlayer.h:416
virtual ~TProofPlayerSuperMaster()
Definition: TProofPlayer.h:418
float xmin
Definition: THbookFile.cxx:93
Internal class steering processing in PROOF.
Definition: TProofPlayer.h:60
long long Long64_t
Definition: RtypesCore.h:69
EExitStatus fExitStatus
status of query in progress
Definition: TProofPlayer.h:75
Int_t AssertSelector(const char *selector_file)
Make sure that a valid selector object Return -1 in case of problems, 0 otherwise.
void StoreOutput(TList *out)
Store output list (may not be used in this class).
TQueryResult * GetCurrentQuery() const
Definition: TProofPlayer.h:164
Int_t GetLearnEntries()
Return the number of entries in the learning phase.
virtual ~TProofPlayerLocal()
Definition: TProofPlayer.h:245
Long_t fFeedbackPeriod
timer for sending intermediate results
Definition: TProofPlayer.h:72
float Float_t
Definition: RtypesCore.h:53
const char Option_t
Definition: RtypesCore.h:62
float ymin
Definition: THbookFile.cxx:93
TQueryResult * GetQueryResult(const char *ref)
Get query result instances referenced &#39;ref&#39; from the list of results.
virtual Bool_t JoinProcess(TList *workers)
Not implemented: meaningful only in the remote player. Returns kFALSE.
Bool_t CheckMemUsage(Long64_t &mfreq, Bool_t &w80r, Bool_t &w80v, TString &wmsg)
Check the memory usage, if requested.
This class implements a data set to be used for PROOF processing.
Definition: TDSet.h:153
virtual Long64_t Finalize(Bool_t force=kFALSE, Bool_t sync=kFALSE)
Finalize query (may not be used in this class).
Bool_t fSaveResultsPerPacket
Definition: TProofPlayer.h:101
TProofPlayer(TProof *proof=0)
Default ctor.
#define BIT(n)
Definition: Rtypes.h:83
void StopProcess(Bool_t abort, Int_t timeout=-1)
Stop process after this event.
TQueryResult * fPreviousQuery
Definition: TProofPlayer.h:85
void AddOutput(TList *out)
Incorporate output list (may not be used in this class).
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format...
Definition: TFile.h:48
TString fSelectorFileName
Definition: TProofPlayer.h:293
void SetupFeedback()
Setup reporting of feedback objects.
Long64_t GetEventsProcessed() const
Definition: TProofPlayer.h:206
virtual void MergeOutput(Bool_t savememvalues=kFALSE)
Merge objects in output the lists.
void RemoveQueryResult(const char *ref)
Remove all query result instances referenced &#39;ref&#39; from the list of results.
TTimer * fProcTimeTimer
Definition: TProofPlayer.h:94
Bool_t HandleTimer(TTimer *timer)
Send progress and feedback to client.
TDSetElement * GetNextPacket(TSlave *slave, TMessage *r)
Get next packet for specified slave.
Basic string class.
Definition: TString.h:131
void Progress(TSlave *, TProofProgressInfo *pi)
Definition: TProofPlayer.h:355
Array of floats (32 bits per element).
Definition: TArrayF.h:27
#define f(i)
Definition: RSha256.hxx:104
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
Bool_t IsClient() const
Definition: TProofPlayer.h:247
Bool_t HistoSameAxis(TH1 *h0, TH1 *h1)
Return kTRUE is the histograms &#39;h0&#39; and &#39;h1&#39; have the same binning and ranges on the axis (i...
Bool_t IsClient() const
Definition: TProofPlayer.h:202
Long64_t GetEntries() const
TQueryResult * fQuery
Definition: TProofPlayer.h:84
void SetDispatchTimer(Bool_t on=kTRUE)
Enable/disable the timer to dispatch pening events while processing.
void SetupFeedback()
Setup feedback.
Array of integers (32 bits per element).
Definition: TArrayI.h:27
TList * GetOutputList() const
Get output list.
Int_t SavePartialResults(Bool_t queryend=kFALSE, Bool_t force=kFALSE)
Save the partial results of this query to a dedicated file under the user data directory.
TList * fInput
Definition: TProofPlayer.h:66
TMessage * fProcessMessage
Histogram with packets being processed (owned by TPerfStats)
Definition: TProofPlayer.h:292
TList * fAutoBins
Definition: TProofPlayer.h:63
void SetStopTimer(Bool_t on=kTRUE, Bool_t abort=kFALSE, Int_t timeout=0)
Enable/disable the timer to stop/abort processing.
Manages an element of a TDSet.
Definition: TDSet.h:66
TProofProgressStatus * GetProgressStatus() const
Definition: TProofPlayer.h:224
TProofPlayerSlave(TSocket *socket=0)
Definition: TProofPlayer.h:385
void Progress(TSlave *, Long64_t total, Long64_t processed)
Definition: TProofPlayer.h:175
#define ClassDef(name, id)
Definition: Rtypes.h:326
TList * GetInputList() const
Definition: TProofPlayer.h:161
void AddEventsProcessed(Long64_t ev)
Definition: TProofPlayer.h:207
Long64_t fReadBytesRun
Definition: TProofPlayer.h:79
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
Definition: THashList.h:34
TEventIter * fEvIter
period (ms) for sending intermediate results
Definition: TProofPlayer.h:73
This class holds the status of an ongoing operation and collects error messages.
Definition: TStatus.h:32
void * GetSender()
Definition: TProofPlayer.h:105
void IncEntries(Long64_t entries=1)
void StopFeedback()
Stop reporting of feedback objects.
void AddQueryResult(TQueryResult *q)
Add query result to the list, making sure that there are no duplicates.
void DeleteDrawFeedback(TDrawFeedback *f)
Delete draw feedback object.
void Progress(TSlave *, Long64_t total, Long64_t processed)
Definition: TProofPlayer.h:344
void SetDrawFeedbackOption(TDrawFeedback *f, Option_t *opt)
Set draw feedback option.
TList * GetListOfResults() const
Definition: TProofPlayer.h:162
TList * MergeFeedback()
Merge feedback lists.
Long64_t fProcessedRun
Read calls in this run.
Definition: TProofPlayer.h:81
virtual Long64_t Process(TDSet *set, const char *selector, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)
Process specified TDSet on PROOF.
Int_t fMaxDrawQueries
Definition: TProofPlayer.h:87
virtual void SetupFeedback()
Set up feedback (may not be used in this class).
TClass * fSelectorClass
kTRUE when fSelector has been created locally
Definition: TProofPlayer.h:70
void Progress(TSlave *, Long64_t total, Long64_t processed, Long64_t bytesread, Float_t initTime, Float_t procTime, Float_t evtrti, Float_t mbrti)
Definition: TProofPlayer.h:180
void SetCurrentQuery(TQueryResult *q)
Set current query and save previous value.
TH1F * h1
Definition: legend1.C:5
void SetupFeedback()
Set up feedback (may not be used in this class).
Definition: TProofPlayer.h:240
A container class for query results.
Definition: TQueryResult.h:36
THashList * fOutput
Definition: TProofPlayer.h:67
void SetInitTime()
Set init time.
TTimer * fFeedbackTimer
class of the latest selector
Definition: TProofPlayer.h:71
void SetOutputFilePath(const char *fp)
Definition: TProofPlayer.h:220
void Feedback(TList *objs)
Feedback signal.
A doubly linked list.
Definition: TList.h:44
TProofPlayerLocal(Bool_t client=kTRUE)
Definition: TProofPlayer.h:244
TStopwatch * fProcTime
Definition: TProofPlayer.h:95
void ClearInput()
Clear input list.
void UpdateAutoBin(const char *name, Double_t &xmin, Double_t &xmax, Double_t &ymin, Double_t &ymax, Double_t &zmin, Double_t &zmax)
Update automatic binning parameters for given object "name".
void HandleGetTreeHeader(TMessage *mess)
Handle tree header request.
void Progress(TProofProgressInfo *pi)
Progress signal.
Definition: TProofPlayer.h:435
float ymax
Definition: THbookFile.cxx:93
TDSetElement * GetNextPacket(TSlave *slave, TMessage *r)
Get next packet (may not be used in this class).
ROOT::R::TRInterface & r
Definition: Object.C:4
TObject * GetOutput(const char *name) const
Get output object by name.
Long64_t Process(TDSet *set, const char *selector, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)
Process specified TDSet on PROOF worker.
Definition: TProofPlayer.h:250
Long64_t fReadCallsRun
Bytes read in this run.
Definition: TProofPlayer.h:80
void AddInput(TObject *inp)
Add object to input list.
virtual void StopFeedback()
Stop feedback (may not be used in this class).
void SetupFeedback()
Setup reporting of feedback objects and progress messages.
void AddOutput(TList *out)
Incorporate the content of the received output list &#39;out&#39; into the final output list fOutput...
Long_t fSaveMemThreshold
Definition: TProofPlayer.h:99
virtual Bool_t JoinProcess(TList *workers)
Prepares the given list of new workers to join a progressing process.
Long64_t Process(TDSet *set, const char *selector, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)
Process specified TDSet on PROOF worker.
virtual void SetInitTime()
Definition: TProofPlayer.h:213
Special iterator class used in TProofPlayer to iterate over events or objects in the packets...
Definition: TEventIter.h:42
Handles synchronous and a-synchronous timer events.
Definition: TTimer.h:51
void SetLastMergingMsg(TObject *obj)
Set the message to be notified in case of exception.
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition: TClass.h:75
virtual Bool_t HandleTimer(TTimer *timer)
Send feedback objects to client.
float xmax
Definition: THbookFile.cxx:93
Int_t ReinitSelector(TQueryResult *qr)
Reinitialize fSelector using the selector files in the query result.
Long64_t Process(TDSet *set, const char *selector, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)
Process specified TDSet on PROOF.
void HandleRecvHisto(TMessage *mess)
Receive histo from slave.
TList * fQueryResults
Events processed in this run.
Definition: TProofPlayer.h:83
Long64_t Finalize(Bool_t force=kFALSE, Bool_t sync=kFALSE)
Finalize query (may not be used in this class).
TStatus * fSelStatus
iterator on events or objects
Definition: TProofPlayer.h:74
void FeedBackCanvas(const char *name, Bool_t create)
Create/destroy a named canvas for feedback.
void Progress(TSlave *, Long64_t total, Long64_t processed, Long64_t bytesread, Float_t initTime, Float_t procTime, Float_t evtrti, Float_t mbrti)
Definition: TProofPlayer.h:349
Int_t AddOutputObject(TObject *obj)
Incorporate the received object &#39;obj&#39; into the output list fOutput.
void MapOutputListToDataMembers() const
const Bool_t kFALSE
Definition: RtypesCore.h:88
void UpdateProgressInfo()
Update fProgressStatus.
static unsigned int total
long Long_t
Definition: RtypesCore.h:50
void SetMaxDrawQueries(Int_t max)
Definition: TProofPlayer.h:168
The packetizer is a load balancing object created for each query.
TString fOutputFilePath
Definition: TProofPlayer.h:97
TFile * fOutputFile
Definition: TProofPlayer.h:98
virtual void MergeOutput(Bool_t savememvalues=kFALSE)
Merge output (may not be used in this class).
Long64_t Process(TDSet *set, TSelector *selector, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)
Process specified TDSet on PROOF worker with TSelector object The return value is -1 in case of error...
Definition: TProofPlayer.h:254
void RestorePreviousQuery()
Definition: TProofPlayer.h:169
Bool_t IsClient() const
Is the player running on the client?
TSelector * fSelector
Definition: TProofPlayer.h:68
void StopFeedback()
Stop feedback (may not be used in this class).
Definition: TProofPlayer.h:241
double Double_t
Definition: RtypesCore.h:55
void RedirectOutput(Bool_t on=kTRUE)
Control output redirection to TProof::fLogFileW.
TTimer * fDispatchTimer
Definition: TProofPlayer.h:92
EStatusBits
Definition: TObject.h:57
void HandleGetTreeHeader(TMessage *mess)
Handle tree header request.
This class controls a Parallel ROOT Facility, PROOF, cluster.
Definition: TProof.h:316
static THashList * fgDrawInputPars
Definition: TProofPlayer.h:103
int nentries
Definition: THbookFile.cxx:89
ErrorHandlerFunc_t fErrorHandler
tdset for current processing
Definition: TProofPlayer.h:289
void(* ErrorHandlerFunc_t)(int level, Bool_t abort, const char *location, const char *msg)
Definition: TError.h:46
The TH1 histogram class.
Definition: TH1.h:56
Bool_t MergeOutputFiles()
Merge output in files.
Long64_t DrawSelect(TDSet *set, const char *varexp, const char *selection, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)
Draw (may not be used in this class).
Int_t InitPacketizer(TDSet *dset, Long64_t nentries, Long64_t first, const char *defpackunit, const char *defpackdata)
Init the packetizer Return 0 on success (fPacketizer is correctly initialized), -1 on failure...
void SetSelectorDataMembersFromOutputList()
Set the selector&#39;s data members: find the mapping of data members to otuput list entries in the outpu...
virtual Bool_t SendSelector(const char *selector_file)
Send the selector file(s) to master or worker nodes.
Bool_t HandleTimer(TTimer *timer)
Handle timer event.
virtual Int_t DrawCanvas(TObject *obj)
Draw the object if it is a canvas.
Mother of all ROOT objects.
Definition: TObject.h:37
virtual ~TProofPlayerRemote()
Destructor.
void StopFeedback()
Stop feedback.
TObject * HandleHistogram(TObject *obj, Bool_t &merged)
Low statistic histograms need a special treatment when using autobin.
void Progress(Long64_t total, Long64_t processed)
Report progress (may not be used in this class).
Int_t AddOutputObject(TObject *obj)
Incorporate output object (may not be used in this class).
TProofPlayer * fPlayer
Definition: TProofPlayer.h:119
Int_t Incorporate(TObject *obj, TList *out, Bool_t &merged)
Incorporate object &#39;newobj&#39; in the list &#39;outlist&#39;.
Utility class to draw objects in the feedback list during queries.
Definition: TDrawFeedback.h:35
static constexpr double pi
void Progress(Long64_t total, Long64_t processed)
Progress signal.
Definition: TProofPlayer.h:428
Array of long64s (64 bits per element).
Definition: TArrayL64.h:27
TVirtualPacketizer * GetPacketizer() const
Definition: TProofPlayer.h:358
void StopProcess(Bool_t abort, Int_t timeout=-1)
Stop the process after this event.
TVirtualPacketizer * fPacketizer
Definition: TProofPlayer.h:286
Int_t GetDrawArgs(const char *var, const char *sel, Option_t *opt, TString &selector, TString &objname)
Parse the arguments from var, sel and opt and fill the selector and object name accordingly.
virtual void StoreFeedback(TObject *slave, TList *out)
Store feedback results from the specified slave.
Long64_t Process(TDSet *set, TSelector *selector, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)
Process specified TDSet on PROOF.
Definition: TProofPlayer.h:423
Long64_t fTotalEvents
Definition: TProofPlayer.h:76
void StoreFeedback(TObject *slave, TList *out)
Store feedback list (may not be used in this class).
Long64_t GetCacheSize()
Return the size in bytes of the cache.
std::mutex fStopTimerMtx
Definition: TProofPlayer.h:90
Bool_t fCreateSelObj
the latest selector
Definition: TProofPlayer.h:69
Abstract interface for the PROOF player.
Definition: first.py:1
Int_t fDrawQueries
Definition: TProofPlayer.h:86
Class describing a PROOF worker server.
Definition: TSlave.h:46
Container class for processing statistics.
A TSelector object is used by the TTree::Draw, TTree::Scan, TTree::Process to navigate in a TTree and...
Definition: TSelector.h:33
float * q
Definition: THbookFile.cxx:87
TVirtualPacketizer * GetPacketizer() const
Definition: TProofPlayer.h:144
const Bool_t kTRUE
Definition: RtypesCore.h:87
void Progress(TSlave *, TProofProgressInfo *pi)
Definition: TProofPlayer.h:186
TProofPlayerRemote(TProof *proof=0)
Definition: TProofPlayer.h:313
Long64_t DrawSelect(TDSet *set, const char *varexp, const char *selection, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)
Draw (support for TChain::Draw()).
void NotifyMemory(TObject *obj)
Printout the memory record after merging object &#39;obj&#39; This record is used by the memory monitor...
void StoreOutput(TList *out)
Store received output list.
char name[80]
Definition: TGX11.cxx:109
TStopwatch * fMergeSTW
Definition: TProofPlayer.h:295
void SetProcessing(Bool_t on=kTRUE)
Set processing bit according to &#39;on&#39;.
void Progress(Long64_t total, Long64_t processed)
Progress signal.
virtual ~TProofPlayer()
Destructor.
TTimer * fStopTimer
Definition: TProofPlayer.h:89
void Progress(Long64_t total, Long64_t processed, Long64_t bytesread, Float_t initTime, Float_t procTime, Float_t evtrti, Float_t mbrti)
Progress signal.
Definition: TProofPlayer.h:430
EExitStatus GetExitStatus() const
Definition: TProofPlayer.h:205
void Feedback(TList *objs)
Set feedback list (may not be used in this class).
void SetExitStatus(EExitStatus st)
Definition: TProofPlayer.h:204
TDrawFeedback * CreateDrawFeedback(TProof *p)
Draw feedback creation proxy.
Bool_t fSavePartialResults
Definition: TProofPlayer.h:100
Stopwatch class.
Definition: TStopwatch.h:28