27 #ifndef ROOT_TProofMgr 30 #ifndef ROOT_TProofDebug 39 #ifndef ROOT_MessageTypes 48 #ifndef ROOT_TSysEvtHandler 54 #ifndef ROOT_TProofOutputList 57 #ifndef ROOT_TStopwatch 64 namespace std { using ::map; }
67 #define CANNOTUSE(x) Info(x,"Not manager: cannot use this method") 164 const char*
const kCP =
"/bin/cp -fp";
165 const char*
const kRM =
"/bin/rm -rf";
166 const char*
const kLS =
"/bin/ls -l";
167 const char*
const kUNTAR =
"%s -c %s/%s | (cd %s; tar xf -)";
168 const char*
const kUNTAR2 =
"%s -c %s | (cd %s; tar xf -)";
169 const char*
const kUNTAR3 =
"%s -c %s | (tar xf -)";
172 const char*
const kCP =
"copy";
173 const char*
const kRM =
"delete";
174 const char*
const kLS =
"dir";
175 const char*
const kUNTAR =
"...";
176 const char*
const kUNTAR2 =
"...";
177 const char*
const kUNTAR3 =
"...";
178 const char*
const kGUNZIP =
"gunzip";
200 fTotal(tot), fProcessed(proc), fBytesRead(bytes),
201 fInitTime(initt), fProcTime(proct), fEvtRateI(evts), fMBRateI(mbs),
202 fActWorkers(actw), fTotSessions(tsess), fEffSessions(esess) { }
248 const char *msd =
"",
const char *datadir =
"") :
249 fOrdinal(ordinal), fHostName(host), fMsd(msd), fDataDir(datadir),
250 fPerfIndex(perfidx), fSysInfo(), fStatus(kNotActive) { }
253 const char *
GetMsd()
const {
return fMsd; }
254 const char *
GetName()
const {
return fHostName; }
290 fMerger(t), fPort(port), fMergedObjects(0), fWorkersToMerge(forHowManyWorkers),
291 fMergedWorkers(0), fWorkers(0), fIsActive(
kTRUE) { }
294 void AddWorker(
TSlave *sl);
304 void SetMergedWorker();
307 Bool_t AreAllWorkersAssigned();
308 Bool_t AreAllWorkersMerged();
328 fExp.
Form(
"%c (%d workers still sending) ", fgCr[fIdx], fNWrks);
329 changed = (fLastNWrks != fNWrks || fLastNWrks == -1) ?
kTRUE :
kFALSE;
331 return fExp.
Data(); }
342 friend class TPacketizerDev;
365 kUsingSessionGui =
BIT(14),
370 kUseProgressDialog =
BIT(19)
378 kOverwriteDataSet = 0x2,
379 kNoOverwriteDataSet = 0x4,
380 kOverwriteAllFiles = 0x8,
381 kOverwriteNoFiles = 0x10,
386 kOverwriteIfExists = 1,
417 kLocalInterrupt = -1,
431 kShowEnabledPackages = 8,
434 kShowSubPackages = 11,
435 kDisableSubPackages = 12,
436 kDisableSubPackage = 13,
437 kBuildSubPackage = 14,
439 kDisablePackage = 16,
440 kUnloadPackages = 17,
441 kDisablePackages = 18,
443 kListEnabledPackages = 20,
448 kCheckDataSetName = 2,
450 kRegisterDataSet = 4,
458 kSetDefaultTreeName = 12,
460 kRequestStaging = 14,
474 kDeactivateWorker = 2
477 kDontBuildOnClient = -2,
478 kBuildOnSlavesNoWait = -1,
480 kCollectBuildResults = 1
631 void CleanGDirectory(
TList *ol);
634 Int_t SendCommand(
const char *cmd,
ESlaves list = kActive);
639 Int_t SendGroupView();
640 Int_t SendInitialState();
644 void AskStatistics();
650 void NotifyLogMsg(
const char *msg,
const char *sfx =
"\n");
652 Int_t BuildPackageOnClient(
const char *package,
Int_t opt = 0,
TString *path = 0,
Int_t chkveropt = kCheckROOT);
654 Int_t LoadPackageOnClient(
const char *package,
TList *loadopts = 0);
655 Int_t UnloadPackage(
const char *package);
656 Int_t UnloadPackageOnClient(
const char *package);
657 Int_t UnloadPackages();
659 Int_t DisablePackage(
const char *package);
660 Int_t DisablePackageOnClient(
const char *package);
661 Int_t DisablePackages();
663 void Activate(
TList *slaves = 0);
670 Int_t BroadcastFile(
const char *file,
Int_t opt,
const char *rfile,
TList *wrks);
671 Int_t BroadcastFile(
const char *file,
Int_t opt,
const char *rfile = 0,
ESlaves list = kAllUnique);
672 Int_t BroadcastGroupPriority(
const char *grp,
Int_t priority,
ESlaves list = kAllUnique);
673 Int_t BroadcastGroupPriority(
const char *grp,
Int_t priority,
TList *workers);
687 virtual void FindUniqueSlaves();
693 Int_t GetNumberOfSlaves()
const;
694 Int_t GetNumberOfActiveSlaves()
const;
695 Int_t GetNumberOfInactiveSlaves()
const;
696 Int_t GetNumberOfUniqueSlaves()
const;
697 Int_t GetNumberOfBadSlaves()
const;
701 Int_t RestoreActiveList();
702 void SaveActiveList();
705 void InterruptCurrentMonitor();
709 void MarkBad(
TSlave *wrk,
const char *reason = 0);
710 void MarkBad(
TSocket *s,
const char *reason = 0);
711 void TerminateWorker(
TSlave *wrk);
712 void TerminateWorker(
const char *ord);
714 void ActivateAsyncInput();
715 void DeActivateAsyncInput();
724 Int_t GetActiveMergersCount();
725 Int_t FindNextFreeMerger();
727 void AskForOutput(
TSlave *sl);
731 void ResetMergePrg();
732 void ParseConfigField(
const char *config);
734 Bool_t Prompt(
const char *p);
737 static TList *GetDataSetSrvMaps(
const TString &srvmaps);
742 Int_t Init(
const char *masterurl,
const char *conffile,
743 const char *confdir,
Int_t loglevel,
744 const char *alias = 0);
756 void HandleLibIncPath(
const char *
what,
Bool_t add,
const char *dirs);
759 TSlave *CreateSlave(
const char *url,
const char *ord,
760 Int_t perf,
const char *image,
const char *workdir);
761 TSlave *CreateSubmaster(
const char *url,
const char *ord,
762 const char *image,
const char *msd,
Int_t nwk = 1);
764 virtual Int_t PollForNewWorkers();
765 virtual void SaveWorkerInfo();
773 virtual void ValidateDSet(
TDSet *dset);
775 Int_t VerifyDataSetParallel(
const char *uri,
const char *optStr);
779 Int_t AssertPath(
const char *path,
Bool_t writable);
782 void PrepareInputDataFile(
TString &dataFile);
783 virtual void SendInputDataFile();
784 Int_t SendFile(
const char *file,
Int_t opt = (kBinary | kForward | kCp | kCpBin),
785 const char *rfile = 0,
TSlave *sl = 0);
792 static void *SlaveStartupThread(
void *arg);
805 static void SystemCmd(
const char *cmd,
Int_t fdout);
808 TProof(
const char *masterurl,
const char *conffile = kPROOF_ConfFile,
809 const char *confdir = kPROOF_ConfDir,
Int_t loglevel = 0,
810 const char *alias = 0,
TProofMgr *mgr = 0);
813 void cd(
Int_t id = -1);
820 TString Getenv(
const char *env,
const char *ord =
"0");
821 Int_t GetRC(
const char *RCenv,
Int_t &env,
const char *ord =
"0");
822 Int_t GetRC(
const char *RCenv,
Double_t &env,
const char *ord =
"0");
823 Int_t GetRC(
const char *RCenv,
TString &env,
const char *ord =
"0");
831 virtual Long64_t Process(
const char *dsetname,
const char *selector,
850 const char *selection =
"",
853 Long64_t DrawSelect(
const char *dsetname,
const char *varexp,
854 const char *selection =
"",
858 Int_t Archive(
const char *queryref,
const char *url = 0);
859 Int_t CleanupSession(
const char *sessiontag);
864 Int_t Retrieve(
Int_t query,
const char *path = 0);
865 Int_t Retrieve(
const char *queryref,
const char *path = 0);
867 void DisableGoAsyn();
868 void GoAsynchronous();
869 void StopProcess(
Bool_t abort,
Int_t timeout = -1);
873 virtual Int_t Echo(
const char *str);
883 virtual void ClearCache(
const char *file = 0);
884 TList *GetListOfPackages();
885 TList *GetListOfEnabledPackages();
888 Int_t ClearPackages();
889 Int_t ClearPackage(
const char *package);
890 Int_t DownloadPackage(
const char *
par,
const char *dstdir = 0);
892 Int_t EnablePackage(
const char *package,
const char *loadopts,
894 Int_t EnablePackage(
const char *package,
TList *loadopts,
907 Int_t UploadDataSet(
const char *,
const char *,
const char * = 0,
Int_t = 0,
TList * = 0);
908 Int_t UploadDataSetFromFile(
const char *,
const char *,
const char * = 0,
Int_t = 0,
TList * = 0);
911 virtual TMap *
GetDataSets(
const char *uri =
"",
const char* optStr =
"");
912 virtual void ShowDataSets(
const char *uri =
"",
const char* optStr =
"");
914 TMap *GetDataSetQuota(
const char* optStr =
"");
915 void ShowDataSetQuota(
Option_t* opt = 0);
918 void ShowDataSet(
const char *dataset =
"",
const char* opt =
"filter:SsCc");
922 TList *FindDataSets(
const char *searchString,
const char* optStr =
"");
923 virtual Bool_t RequestStagingDataSet(
const char *dataset);
925 virtual void ShowStagingStatusDataSet(
const char *dataset,
const char *optStr =
"filter:SsCc");
926 virtual Bool_t CancelStagingDataSet(
const char *dataset);
928 virtual Int_t SetDataSetTreeName(
const char *dataset,
const char *treename);
930 virtual void ShowDataSetCache(
const char *dataset = 0);
931 virtual void ClearDataSetCache(
const char *dataset = 0);
933 virtual void ShowData();
934 void ClearData(
UInt_t what = kUnregistered,
const char *dsname = 0);
950 Int_t GetParallel()
const;
953 TList *GetListOfSlaveInfos();
980 void SetParameter(
const char *par,
const char *
value);
981 void SetParameter(
const char *par,
Int_t value);
982 void SetParameter(
const char *par,
Long_t value);
983 void SetParameter(
const char *par,
Long64_t value);
984 void SetParameter(
const char *par,
Double_t value);
985 TObject *GetParameter(
const char *par)
const;
986 void DeleteParameters(
const char *wildcard);
987 void ShowParameters(
const char *wildcard =
"PROOF_*")
const;
991 TList *GetInputList();
992 TObject *GetOutput(
const char *name);
993 TList *GetOutputList();
994 static TObject *GetOutput(
const char *name,
TList *out);
1000 void SetInputDataFile(
const char *datafile);
1001 void ClearInputData(
TObject *obj = 0);
1002 void ClearInputData(
const char *name);
1004 void AddFeedback(
const char *name);
1005 void RemoveFeedback(
const char *name);
1006 void ClearFeedback();
1007 void ShowFeedback()
const;
1008 TList *GetFeedbackList()
const;
1011 Int_t GetNumberOfQueries();
1013 TList *GetQueryResults();
1015 void GetMaxQueries();
1017 void ShowQueries(
Option_t *opt =
"");
1023 void LogMessage(
const char *msg,
Bool_t all);
1032 void Feedback(
TList *objs);
1033 void QueryResultReady(
const char *ref);
1034 void CloseProgressDialog();
1035 void ResetProgressDialog(
const char *sel,
Int_t sz,
1037 void StartupMessage(
const char *msg,
Bool_t status,
Int_t done,
1039 void DataSetStatus(
const char *msg,
Bool_t status,
1044 void GetLog(
Int_t start = -1,
Int_t end = -1);
1047 void ShowLog(
Int_t qry = -1);
1048 void ShowLog(
const char *queryref);
1057 TList *GetOutputNames();
1059 void AddChain(
TChain *chain);
1060 void RemoveChain(
TChain *chain);
1068 virtual void SetAlias(
const char *alias=
"");
1084 Int_t SavePerfTree(
const char *pf = 0,
const char *qref = 0);
1085 void SetPerfTree(
const char *pf =
"perftree.root",
Bool_t withWrks =
kFALSE);
1088 static TProof *Open(
const char *url = 0,
const char *conffile = 0,
1089 const char *confdir = 0,
Int_t loglevel = 0);
1090 static void LogViewer(
const char *url = 0,
Int_t sessionidx = 0);
1094 static void AddEnvVar(
const char *name,
const char *value);
1095 static void DelEnvVar(
const char *name);
1096 static const TList *GetEnvVars();
1097 static void ResetEnvVars();
std::map< TString, MD5Mod_t > FileMap_t
void(* PrintProgress_t)(Long64_t tot, Long64_t proc, Float_t proctime, Long64_t bytes)
const Long64_t kPROOF_DynWrkPollInt_s
TMap * GetDataSets(const char *owner="", const char *server="", const char *opt=0)
GetDataSets wrapper.
TList * GetListOfBadSlaves() const
const char *const kGUNZIP
const char * GetName() const
Returns name of object.
Long64_t GetBytesRead() const
TMonitor * fAllUniqueMonitor
Bool_t IsFolder() const
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects)...
This class represents a WWW compatible URL.
const char *const kPROOF_WorkDir
Int_t Broadcast(Int_t kind, TList *slaves)
This is the ROOT implementation of the Qt object communication mechanism (see also http://www...
This class implements a mutex interface.
const char * GetOrdinal() const
TList * GetListOfInactiveSlaves() const
Class supporting a collection of lines with C++ code.
TList * GetListOfSlaves() const
void SetDSet(TDSet *dset)
Int_t GetClientProtocol() const
TVirtualMutex * fCloseMutex
const char *const kPROOF_PackageLockFile
const char * GetConfFile() const
Int_t VerifyDataSet(const char *dsname, const char *opt=0, const char *redir=0)
VerifyDataSet wrapper.
static TPluginHandler * fgLogViewer
Bool_t UseDynamicStartup() const
Int_t GetWorkersToMerge()
const char * GetDataPoolUrl() const
const char *const kPROOF_PackDownloadDir
TVirtualProofPlayer * fPlayer
const char * GetUrl(Bool_t withDeflt=kFALSE) const
Return full URL.
Int_t GetSessionID() const
Bool_t fFinalizationRunning
const char * GetConfDir() const
TSignalHandler * fIntHandler
void AddMergedObjects(Int_t objects)
static struct mg_connection * fc(struct mg_context *ctx)
Bool_t SendingLogToWindow() const
TPluginHandler * fProgressDialog
Int_t fLastAssignedMerger
Bool_t fSendGroupView
list returned by kPROOF_GETSLAVEINFO
const char * Export(Bool_t &changed)
#define ClassDef(name, id)
TList * fEnabledPackagesOnClient
THashList * fGlobalPackageDirList
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
This code implements the MD5 message-digest algorithm.
The TNamed class is the base class for all named ROOT classes.
Int_t GetLogLevel() const
const char *const kPROOF_QueryDir
Bool_t IsEndMaster() const
void Init(TClassEdit::TInterpreterLookupHelper *helper)
const char *const kPROOF_WorkerIdleTO
const char * GetGroup() const
TProofInterruptHandler(TProof *p)
const char * GetWorkDir() const
TProofLockPath * fPackageLock
const char * GetSessionTag() const
TList * GetEnabledPackages() const
const char * GetDataDir() const
A container class for query results.
PrintProgress_t fPrintProgress
TList * GetLoadedMacros() const
const char *const kPROOF_DataDir
static TList * fgProofEnvList
virtual const char * GetMssUrl(Bool_t=kFALSE)
Float_t GetRealTime() const
void SetDataPoolUrl(const char *url)
const char * GetUser() const
virtual void SetMssUrl(const char *mss)
TMonitor * fUniqueMonitor
Bool_t IsSortable() const
const char *const kPROOF_ConfFile
const char *const kPROOF_QueryLockFile
Using a TBrowser one can browse all ROOT objects.
Int_t RemoveDataSet(const char *dsname)
RemoveDataSet wrapper.
TFileCollection * GetDataSet(const char *ds, const char *server="")
GetDataSet wrapper.
const char *const kPROOF_TerminateWorker
Double_t length(const TVector2 &v)
void SetPrintProgress(PrintProgress_t pp)
const char *const kPROOF_DataSetDir
TMonitor * fCurrentMonitor
const char *const kPROOF_ConfDir
Collection abstract base class.
void SetActive(Bool_t=kTRUE)
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
const char *const kPROOF_CacheLockFile
ERunStatus GetRunStatus() const
A TEventList object is a list of selected events (entries) in a TTree.
const char *const kUNTAR2
Bool_t fProgressDialogStarted
const Int_t kPROOF_Protocol
TMergerInfo(TSlave *t, Int_t port, Int_t forHowManyWorkers)
void SetStatus(ESlaveStatus stat)
void Reset(Detail::TBranchProxy *x)
TSlaveInfo(const char *ordinal="", const char *host="", Int_t perfidx=0, const char *msd="", const char *datadir="")
static unsigned int total
R__EXTERN TProof * gProof
void SendLogToWindow(Bool_t mode)
void Print(std::ostream &os, const OptionType &opt)
const char *const kPROOF_InputDataFile
TVirtualProofPlayer * GetPlayer() const
const char * GetMaster() const
Int_t GetNumberOfDrawQueries()
TList * fNonUniqueMasters
TMap implements an associative array of (key,value) pairs using a THashTable for efficient retrieval ...
TList * fEnabledPackagesOnCluster
TPluginHandler * GetProgressDialog() const
const char *const kPROOF_MissingFiles
void SetRunStatus(ERunStatus rst)
void ShowDataSets(const char *ds, const char *opt="")
ShowDataSets wrapper.
bool IsEqual(const Transform &t1, const Transform &t2, unsigned int size)
static Vc_ALWAYS_INLINE int_v max(const int_v &x, const int_v &y)
Binding & operator=(OUT(*fun)(void))
Mother of all ROOT objects.
typedef void((*Func_t)())
void ResetProgressDialogStatus()
TString fActiveSlavesSaved
Float_t GetCpuTime() const
Class that contains a list of TFileInfo's and accumulated meta data information about its entries...
TProofOutputList fOutputList
SysInfo_t GetSysInfo() const
Int_t Compare(const void *item1, const void *item2)
A chain is a collection of files containg TTree objects.
const char * GetImage() const
TList * GetListOfUniqueSlaves() const
const char *const kUNTAR3
Int_t GetRemoteProtocol() const
Bool_t IsParallel() const
const char * GetUser() const
TList * fAvailablePackages
A TTree object has a header with a name and a title.
TProofMgr::EServType fServType
TList * fTerminatedSlaveInfos
const char * GetMsd() const
A TSelector object is used by the TTree::Draw, TTree::Scan, TTree::Process to navigate in a TTree and...
Int_t RegisterDataSet(const char *dsname, TFileCollection *fc, const char *opt="")
RegisterDataSet wrapper.
TList * GetListOfActiveSlaves() const
TProofProgressInfo(Long64_t tot=0, Long64_t proc=0, Long64_t bytes=0, Float_t initt=-1., Float_t proct=-1., Float_t evts=-1., Float_t mbs=-1., Int_t actw=0, Int_t tsess=0, Float_t esess=0.)
static int64_t push(FILE *fp, SOCKET sock, SSL *ssl, const char *buf, int64_t len)
TMonitor * fActiveMonitor
virtual ~TProofProgressInfo()
Bool_t ExistsDataSet(const char *dsname)
ExistsDataSet wrapper.
Long64_t fLastPollWorkers_s
Int_t Broadcast(Int_t kind, ESlaves list=kActive)
const char *const kPROOF_CacheDir
const char * Data() const
void SetOrdinal(const char *ord)
const char *const kPROOF_PackDir