Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TProofSuperMaster.h
Go to the documentation of this file.
1 // @(#)root/proof:$Id$
2 // Author: Fons Rademakers 13/02/97
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, 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_TProofSuperMaster
13 #define ROOT_TProofSuperMaster
14 
15 
16 //////////////////////////////////////////////////////////////////////////
17 // //
18 // TProofSuperMaster //
19 // //
20 // This class controls a Parallel ROOT Facility, PROOF, cluster. //
21 // It fires the slave servers, it keeps track of how many slaves are //
22 // running, it keeps track of the slaves running status, it broadcasts //
23 // messages to all slaves, it collects results, etc. //
24 // //
25 //////////////////////////////////////////////////////////////////////////
26 
27 #include "TProof.h"
28 #include "TString.h"
29 
30 class TVirtualProofPlayer;
31 class TDSet;
32 
33 class TProofSuperMaster : public TProof {
34 
35 friend class TProofPlayerSuperMaster;
36 
37 protected:
38  Bool_t StartSlaves(Bool_t);
39  void ValidateDSet(TDSet *dset);
40  virtual TVirtualProofPlayer *MakePlayer(const char *player = 0, TSocket *s = 0);
41 
42 public:
43  TProofSuperMaster(const char *masterurl, const char *conffile = kPROOF_ConfFile,
44  const char *confdir = kPROOF_ConfDir, Int_t loglevel = 0,
45  const char *alias = 0, TProofMgr *mgr = 0);
46  virtual ~TProofSuperMaster() { }
47 
48  Long64_t Process(TDSet *set, const char *selector,
49  Option_t *option = "", Long64_t nentries = -1,
50  Long64_t firstentry = 0);
51  Long64_t Process(TFileCollection *fc, const char *sel, Option_t *o = "",
52  Long64_t nent = -1, Long64_t fst = 0)
53  { return TProof::Process(fc, sel, o, nent, fst); }
54  Long64_t Process(const char *dsname, const char *sel,
55  Option_t *o = "", Long64_t nent = -1,
56  Long64_t fst = 0, TObject *enl = 0)
57  { return TProof::Process(dsname, sel, o, nent, fst, enl); }
58  Long64_t Process(const char *sel, Long64_t nent, Option_t *o = "")
59  { return TProof::Process(sel, nent, o); }
60  // Process via TSelector
61  Long64_t Process(TDSet *set, TSelector *selector,
62  Option_t *option = "", Long64_t nentries = -1,
63  Long64_t firstentry = 0)
64  { return TProof::Process(set, selector, option, nentries, firstentry); }
65  Long64_t Process(TFileCollection *fc, TSelector *sel, Option_t *o = "",
66  Long64_t nent = -1, Long64_t fst = 0)
67  { return TProof::Process(fc, sel, o, nent, fst); }
68  Long64_t Process(const char *dsname, TSelector *sel,
69  Option_t *o = "", Long64_t nent = -1,
70  Long64_t fst = 0, TObject *enl = 0)
71  { return TProof::Process(dsname, sel, o, nent, fst, enl); }
72  Long64_t Process(TSelector *sel, Long64_t nent, Option_t *o = "")
73  { return TProof::Process(sel, nent, o); }
74 
75  ClassDef(TProofSuperMaster,0) //PROOF control class for making submasters
76 };
77 
78 #endif