28#include "RConfigure.h"
139 if (!
gROOT->GetListOfProofs()->FindObject(
this))
140 gROOT->GetListOfProofs()->Add(
this);
177 Error(
"Init",
"could not create/assert sandbox for this session");
188 Error(
"Init",
"Unix socket path '%s' is too long (%d bytes):",
190 Error(
"Init",
"use 'ProofLite.SockPathDir' to create it under a directory different"
265 Warning(
"Init",
"problems applying fMaxQueries");
268 Warning(
"Init",
"problems initializing the dataset manager");
323 Warning(
"Init",
"fork-based workers startup is not available on Windows - ignoring");
335 Info(
"Init",
" %d global package directories registered",
nglb);
340 Error(
"Init",
"problems setting up workers");
366 gROOT->GetListOfSockets()->Add(
this);
421 ::Error(
"TProofLite::GetNumberOfWorkers",
422 "PROOF-Lite disabled by the system administrator: sorry!");
431 Int_t in =
nw.Index(
"workers=");
433 nw.Remove(0, in +
strlen(
"workers="));
434 while (!
nw.IsDigit())
435 nw.Remove(
nw.Length()-1);
438 ::Warning(
"TProofLite::GetNumberOfWorkers",
439 "number of workers specified by 'workers='"
440 " is non-positive: using default");
454 ::Warning(
"TProofLite::GetNumberOfWorkers",
455 "number of workers specified by 'workers='"
456 " is non-positive: using default");
477 ::Warning(
"TProofLite::GetNumberOfWorkers",
"number of PROOF-Lite workers limited by"
478 " the system administrator to %d",
fgWrksMax);
500 Error(
"SetupWorkers",
501 "unable to create server socket for internal communications");
539 Warning(
"SetupWorkers",
"standard startup: workers already started");
590 Warning(
"SetupWorkers",
"problems receiving message from accepted socket!");
607 gROOT->GetListOfSockets()->Remove(s);
609 if (
wrk->IsValid()) {
621 if (
wrk->IsValid()) {
634 Warning(
"SetupWorkers",
"received empty message from accepted socket!");
641 mon->DeActivateAll();
647 gROOT->GetPluginManager()->FindHandler(
"TProofProgressDialog")))
688 Error(
"SetProofServEnv",
"ordinal string undefined");
696 Error(
"SetProofServEnv",
"cannot open rc file %s",
rcfile.Data());
723 Warning(
"SetProofServEnv",
"problems getting sandbox string for worker");
754 Error(
"SetProofServEnv",
"cannot open env file %s",
envfile.Data());
773 fprintf(
fenv,
"export LOCALDATASERVER=\"file://\"\n");
804 if (!logfile)
return;
807 if (s.
Contains(
"<logfilewrk>") && logfile) {
809 if (
lfr.EndsWith(
".log"))
lfr.Remove(
lfr.Last(
'.'));
837 var =
dynamic_cast<TNamed *
>(
envVars->FindObject(
"PROOF_SLAVE_CPUPIN_ORDER"));
956 Printf(
"*** PROOF-Lite cluster %s(sequential mode)",
ord.Data());
972 Printf(
"ROOT version|rev|tag: %s",
ver.Data());
988 Printf(
"List of workers:");
1015 (
dset ?
dset->GetEntryList() : 0));
1033 Info(
"SetQueryRunning",
"starting query: %d", pq->
GetSeqNum());
1061 Info(
"DrawSelect",
"not idle, asynchronous Draw not supported");
1091 if (opt.Contains(
"fb=") || opt.Contains(
"feedback="))
SetFeedback(opt,
optfb, 0);
1098 Info(
"Process",
"asynchronous mode not yet supported in PROOF-Lite");
1104 Info(
"Process",
"not idle: cannot accept queries");
1115 Error(
"Process",
"invalid sesion or query-result manager undefined!");
1130 if ((!
hasNoData) &&
dset->GetListOfElements()->GetSize() == 0) {
1132 Error(
"Process",
"from AssertDataSet: %s",
emsg.Data());
1135 if (
dset->GetListOfElements()->GetSize() == 0) {
1136 Error(
"Process",
"no files to process!");
1144 if (!
dsn.Contains(
":") ||
dsn.BeginsWith(
"dataset:")) {
1145 dsn.ReplaceAll(
"dataset:",
"");
1148 emsg.Form(
"dataset manager not initialized!");
1153 emsg.Form(
"requested dataset '%s' does not exists",
dsn.Data());
1160 fcmap->SetName(
"PROOF_FilesToProcess");
1165 if (!
emsg.IsNull()) {
1166 Error(
"HandleProcess",
"%s",
emsg.Data());
1175 if (
selec.BeginsWith(
"draw:")) {
1180 Error(
"Process",
"draw query: error parsing arguments '%s', '%s', '%s'",
1226 if (!
gROOT->IsBatch()) {
1287 if (selector &&
strlen(selector)) {
1302 qr->SetTermTime(
rt);
1326 Emit(
"StopProcess(Bool_t)", abort);
1340 if (
dset->GetEntryList())
1351 Warning(
"ProcessNext",
"problems registering produced datasets: %s", err.
Data());
1383 msg.Form(
"Lite-0: all output objects have been merged ");
1427 if (!
dsm.IsNull()) {
1429 if (
gROOT->GetPluginManager()) {
1431 h =
gROOT->GetPluginManager()->FindHandler(
"TDataSetManager",
dsm);
1432 if (
h &&
h->LoadPlugin() != -1) {
1436 user.Data(),
dsm.Data()));
1441 Warning(
"InitDataSetManager",
"dataset manager plug-in initialization failed");
1456 h =
gROOT->GetPluginManager()->FindHandler(
"TDataSetManager",
"file");
1457 if (
h &&
h->LoadPlugin() == -1)
h = 0;
1462 group.Data(), user.Data(),
1466 Warning(
"InitDataSetManager",
"default dataset manager plug-in initialization failed");
1472 Info(
"InitDataSetManager",
"datasetmgr Cq: %d, Ar: %d, Av: %d, Ti: %d, Sb: %d",
1490 Warning(
"InitDataSetManager",
"failed init of dataset staging requests repository");
1494 Warning(
"InitDataSetManager",
"specify, with [dir:]<path>, a valid path for staging requests");
1497 Warning(
"InitDataSetManager",
"no repository for staging requests available");
1524 if (!file ||
strlen(file) <= 0) {
1545 Error(
"Load",
"need to specify a macro name");
1551 while (
macs.Tokenize(
mac, from,
",")) {
1607 Info(
"CopyMacroToCache",
"enter: names: %s, %s",
macro,
name.Data());
1611 Error(
"CopyMacroToCache",
"file %s not found or not readable",
name.Data());
1620 if (!
mp.BeginsWith(
np) && !
mp.Contains(
":"+
np)) {
1621 Int_t ip = (
mp.BeginsWith(
".:")) ? 2 : 0;
1631 const char *
hext[] = {
".h",
".hh",
"" };
1645 Error(
"CopyMacroToCache",
"header file for %s not found or not readable "
1658 if (!
hname.IsNull())
1665 if (!
hname.IsNull()) {
1696 if (!
f ||
v !=
gROOT->GetVersion() ||
r !=
gROOT->GetGitCommit())
1729 Info(
"CopyMacroToCache",
1730 "retrieving %s from cache",
fncache.Data());
1744 Error(
"CopyMacroToCache",
"could not create a selector from %s",
macro);
1769 Info(
"CopyMacroToCache",
"caching %s ...",
e);
1795 Info(
"CopyMacroToCache",
"caching %s ...",
name.Data());
1797 if (!
hname.IsNull()) {
1800 Info(
"CopyMacroToCache",
"caching %s ...",
hname.Data());
1806 if (!
hname.IsNull())
1825 if (
maxold < 0)
return 0;
1838 if (i !=
kNPOS)
d.Remove(i);
1840 if (i !=
kNPOS)
d.Remove(0,i+1);
1907 if ((
pqm =
pqr->CloneInfo())) {
1911 Warning(
"GetListOfQueries",
"unable to clone TProofQueryResult '%s:%s'",
1912 pqr->GetName(),
pqr->GetTitle());
1946 Info(
"RegisterDataSet",
"dataset manager not available");
1950 if (!uri ||
strlen(uri) <= 0) {
1951 Info(
"RegisterDataSet",
"specifying a dataset name is mandatory");
1957 if (
sopt.Contains(
"V") && !
sopt.Contains(
"S")) {
1960 sopt.ReplaceAll(
"V",
"");
1963 sopt.ReplaceAll(
"S",
"");
1968 if (!dataSet || dataSet->GetList()->GetSize() == 0) {
1969 Error(
"RegisterDataSet",
"can not save an empty list.");
1976 Info(
"RegisterDataSet",
"dataset registration not allowed");
1981 Error(
"RegisterDataSet",
"dataset was not saved");
1989 Error(
"RegisterDataSet",
"problems verifying dataset '%s'", uri);
2005 Info(
"ExistsDataSet",
"dataset manager not available");
2009 if (!dataset ||
strlen(dataset) <= 0) {
2010 Info(
"SetDataSetTreeName",
"specifying a dataset name is mandatory");
2015 Info(
"SetDataSetTreeName",
"specifying a tree name is mandatory");
2034 Info(
"ExistsDataSet",
"dataset manager not available");
2038 if (!uri ||
strlen(uri) <= 0) {
2039 Error(
"ExistsDataSet",
"dataset name missing");
2053 Info(
"GetDataSets",
"dataset manager not available");
2073 Info(
"GetDataSet",
"dataset manager not available");
2087 Info(
"GetDataSet",
"dataset manager not available");
2091 if (!uri ||
strlen(uri) <= 0) {
2092 Info(
"GetDataSet",
"specifying a dataset name is mandatory");
2107 Info(
"RemoveDataSet",
"dataset manager not available");
2117 Info(
"RemoveDataSet",
"dataset creation / removal not allowed");
2134 Error(
"RequestStagingDataSet",
"invalid dataset specified");
2139 Error(
"RequestStagingDataSet",
"no dataset staging request repository available");
2151 Warning(
"RequestStagingDataSet",
"staging of %s already requested", dataset);
2157 if (!
fc || (
fc->GetNFiles() == 0)) {
2158 Error(
"RequestStagingDataSet",
"empty dataset or no dataset returned");
2179 Error(
"RequestStagingDataSet",
"can't register staging request for %s", dataset);
2184 Info(
"RequestStagingDataSet",
"Staging request registered for %s", dataset);
2198 Error(
"CancelStagingDataSet",
"invalid dataset specified");
2203 Error(
"CancelStagingDataSet",
"no dataset staging request repository available");
2226 Error(
"GetStagingStatusDataSet",
"invalid dataset specified");
2231 Error(
"GetStagingStatusDataSet",
"no dataset staging request repository available");
2243 Info(
"GetStagingStatusDataSet",
"no pending staging request for %s", dataset);
2258 Info(
"VerifyDataSet",
"dataset manager not available");
2264 if (
sopt.Contains(
"S")) {
2269 Info(
"VerifyDataSet",
"dataset verification not allowed");
2328 Warning(
"SendInputDataFile",
"problems copying '%s' to '%s'",
2343 Info(
"Remove",
"Enter: %s, %d", ref,
all);
2359 Info(
"Remove",
"%d directories removed", nd);
2382 Warning(
"Remove",
"query result manager undefined!");
2387 "query %s could not be removed (unable to lock session)",
queryref.Data());
2401 Error(
"GetTreeHeader",
"undefined TDSet");
2410 PDB(kGlobal, 1)
Info(
"GetTreeHeader",
"empty TDSet");
2415 t = (
TTree*)
f->Get(
e->GetObjName());
2422 while ((
e =
dset->Next()) != 0) {
2427 entries +=
t1->GetEntries();
2462 Error(
"FindUniqueSlaves",
"first object in fActiveSlaves not a TSlave: embarrasing!");
2505 const char *
ent = 0;
2541 Info(
"PollForNewWorkers",
"max reached: %d workers started",
fNWorkers);
2575 Info(
"PollForNewWorkers",
"additional worker '%s' started",
fullord.Data());
2607 Warning(
"PollForNewWorkers",
"problems receiving message from accepted socket!");
2623 gROOT->GetListOfSockets()->Remove(s);
2625 if (
wrk->IsValid()) {
2637 if (
wrk->IsValid()) {
2650 Warning(
"PollForNewWorkers",
"received empty message from accepted socket!");
2657 mon->DeActivateAll();
2678 Info(
"PollForNewWorkers",
"Will send the PROCESS message to selected workers");
R__EXTERN TApplication * gApplication
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
#define R__ASSERT(e)
Checks condition e and reports a fatal error if it's false.
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t np
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
const Bool_t kSortDescending
R__EXTERN TProofServ * gProofServ
const char *const kPROOF_QueryDir
const char *const kPROOF_DataSetDir
const char *const kPROOF_CacheLockFile
const char *const kPROOF_CacheDir
const char *const kPROOF_PackDir
const char *const kPROOF_ConfFile
const char *const kPROOF_QueryLockFile
R__EXTERN TProof * gProof
const char *const kPROOF_ConfDir
const Int_t kPROOF_Protocol
R__EXTERN TVirtualMutex * gROOTMutex
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
void Printf(const char *fmt,...)
Formats a string in a circular formatting buffer and prints the string.
Bool_t R_ISREG(Int_t mode)
Bool_t R_ISDIR(Int_t mode)
R__EXTERN TSystem * gSystem
#define R__LOCKGUARD(mutex)
TSignalHandler * GetSignalHandler() const
void SetName(const char *name)
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
Manages an element of a TDSet.
This class implements a data set to be used for PROOF processing.
Int_t WriteDataSet(const char *group, const char *user, const char *dsName, TFileCollection *dataset, UInt_t option=0, TMD5 *checksum=0)
Writes indicated dataset.
Bool_t ExistsDataSet(const char *group, const char *user, const char *dsName)
Checks if the indicated dataset exits.
Bool_t RemoveDataSet(const char *group, const char *user, const char *dsName)
Removes the indicated dataset.
TFileCollection * GetDataSet(const char *uri, const char *srv=0) override
Utility function used in various methods for user dataset upload.
virtual TFileCollection * GetDataSet(const char *uri, const char *server=0)
Utility function used in various methods for user dataset upload.
Int_t ScanDataSet(const char *uri, const char *opt)
Scans the dataset indicated by 'uri' following the 'opts' directives.
virtual TMap * GetDataSets(const char *uri, UInt_t=TDataSetManager::kExport)
Returns all datasets for the <group> and <user> specified by <uri>.
virtual Bool_t ExistsDataSet(const char *uri)
Checks if the indicated dataset exits.
virtual void ShowDataSets(const char *uri="*", const char *opt="")
Prints formatted information about the dataset 'uri'.
virtual Bool_t RemoveDataSet(const char *uri)
Removes the indicated dataset.
Bool_t ParseUri(const char *uri, TString *dsGroup=0, TString *dsUser=0, TString *dsName=0, TString *dsTree=0, Bool_t onlyCurrent=kFALSE, Bool_t wildcards=kFALSE)
Parses a (relative) URI that describes a DataSet on the cluster.
virtual Int_t ClearCache(const char *uri)
Clear cached information matching uri.
virtual TMap * GetSubDataSets(const char *uri, const char *excludeservers)
Partition dataset 'ds' accordingly to the servers.
virtual Int_t RegisterDataSet(const char *uri, TFileCollection *dataSet, const char *opt)
Register a dataset, perfoming quota checkings, if needed.
virtual Int_t ShowCache(const char *uri)
Show cached information matching uri.
The TEnv class reads config files, by default named .rootrc.
virtual Int_t GetValue(const char *name, Int_t dflt) const
Returns the integer value for a resource.
Class that contains a list of TFileInfo's and accumulated meta data information about its entries.
Class describing a generic file including meta information.
A ROOT file is an on-disk file, usually with extension .root, that stores objects in a file-system-li...
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
Create / open a file.
void Clear(Option_t *option="") override
Remove all objects from the list.
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
void Add(TObject *obj) override
TObject * Remove(TObject *obj) override
Remove object from the list.
TObject * First() const override
Return the first object in the list. Returns 0 when list is empty.
void Delete(Option_t *option="") override
Remove all objects from the list AND delete all heap based objects.
This code implements the MD5 message-digest algorithm.
static TMD5 * FileChecksum(const char *file)
Returns checksum of specified file.
TMap implements an associative array of (key,value) pairs using a THashTable for efficient retrieval ...
virtual void RemoveAll()
Remove all sockets from the monitor.
virtual void Add(TSocket *sock, Int_t interest=kRead)
Add socket to the monitor's active list.
virtual void DeActivateAll()
De-activate all activated sockets.
The TNamed class is the base class for all named ROOT classes.
const char * GetName() const override
Returns name of object.
const char * GetTitle() const override
Returns title of object.
virtual void SetName(const char *name)
Set the name of the TNamed.
Collectable string class.
Mother of all ROOT objects.
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
@ kInvalidObject
if object ctor succeeded but object should not be used
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
Wrapper for PCRE library (Perl Compatible Regular Expressions).
Int_t Substitute(TString &s, const TString &r, Bool_t doDollarSubst=kTRUE)
Substitute matching part of s with r, dollar back-ref substitution is performed if doDollarSubst is t...
The PROOF package manager contains tools to manage packages.
void GetEnabledPackages(TString &packlist)
Method to get a semi-colon separated list with the names of the enabled packages.
static Int_t RegisterGlobalPath(const char *paths)
Parse one or more paths as possible sources of packages Returns number of paths added; or -1 in case ...
const char * GetDir() const
Longptr_t ExecPlugin(int nargs)
Int_t LoadPlugin()
Load the plugin library for this handler.
This class starts a PROOF session on the local machine: no daemons, client and master merged,...
void FindUniqueSlaves() override
Add to the fUniqueSlave list the active slaves that have a unique (user) file system image.
Int_t VerifyDataSet(const char *uri, const char *=0) override
Verify if all files in the specified dataset are available.
TProofLockPath * fQueryLock
Long64_t Process(TDSet *dset, const char *sel, Option_t *o="", Long64_t nent=-1, Long64_t fst=0) override
Process a data set (TDSet) using the specified selector (.C) file.
static Int_t GetNumberOfWorkers(const char *url=0)
Static method to determine the number of workers giving priority to users request.
Int_t PollForNewWorkers() override
Simulate dynamic addition, for test purposes.
TFileCollection * GetDataSet(const char *uri, const char *=0) override
Get a list of TFileInfo objects describing the files of the specified dataset.
Int_t SetDataSetTreeName(const char *dataset, const char *treename) override
Set/Change the name of the default tree.
Int_t CreateSandbox()
Create the sandbox for this session.
Int_t Load(const char *macro, Bool_t notOnClient=kFALSE, Bool_t uniqueOnly=kTRUE, TList *wrks=0) override
Copy the specified macro in the cache directory.
TQueryResultManager * fQMgr
Int_t InitDataSetManager()
Initialize the dataset manager from directives or from defaults Return 0 on success,...
TServerSocket * fServSock
TDataSetManagerFile * fDataSetStgRepo
Int_t SetProofServEnv(const char *ord)
Create environment files for worker 'ord'.
void ClearDataSetCache(const char *dataset=0) override
Clear the content of the dataset cache, if any (matching 'dataset', if defined).
Int_t RemoveDataSet(const char *uri, const char *=0) override
Remove the specified dataset from the PROOF cluster.
void ShowData() override
List contents of the data directory in the sandbox.
void NotifyStartUp(const char *action, Int_t done, Int_t tot)
Notify setting-up operation message.
void ShowDataSets(const char *uri="", const char *=0) override
Shows datasets in locations that match the uri By default shows the user's datasets and global ones.
void SetQueryRunning(TProofQueryResult *pq)
Set query in running state.
Int_t CleanupSandbox()
Remove old sessions dirs keep at most 'Proof.MaxOldSessions' (default 10)
TDataSetManager * fDataSetManager
void ClearCache(const char *file=0) override
Remove files from all file caches.
Int_t Remove(const char *ref, Bool_t all)
Handle remove request.
Int_t Init(const char *masterurl, const char *conffile, const char *confdir, Int_t loglevel, const char *alias=0)
Start the PROOF environment.
void ShowCache(Bool_t all=kFALSE) override
List contents of file cache.
Bool_t RequestStagingDataSet(const char *dataset) override
Allows users to request staging of a particular dataset.
TList * GetListOfQueries(Option_t *opt="") override
Get the list of queries.
void ShowDataDir(const char *dirname)
List contents of the data directory 'dirname'.
void ResolveKeywords(TString &s, const char *ord, const char *logfile)
Resolve some keywords in 's' <logfilewrk>, <user>, <rootsys>, <cpupin>
TTree * GetTreeHeader(TDSet *tdset) override
Creates a tree header (a tree with nonexisting files) object for the DataSet.
void Print(Option_t *option="") const override
Print status of PROOF-Lite cluster.
TMap * GetDataSets(const char *uri="", const char *=0) override
lists all datasets that match given uri
Bool_t CancelStagingDataSet(const char *dataset) override
Cancels a dataset staging request.
Int_t fDynamicStartupNMax
void SendInputDataFile() override
Make sure that the input data objects are available to the workers in a dedicated file in the cache; ...
Int_t CopyMacroToCache(const char *macro, Int_t headerRequired=0, TSelector **selector=0, Int_t opt=0, TList *wrks=0)
Copy a macro, and its possible associated .h[h] file, to the cache directory, from where the workers ...
Int_t fDynamicStartupStep
Bool_t RegisterDataSet(const char *dsName, TFileCollection *ds, const char *opt="") override
Register the 'dataSet' on the cluster under the current user, group and the given 'dataSetName'.
Bool_t ExistsDataSet(const char *uri) override
Returns kTRUE if 'dataset' described by 'uri' exists, kFALSE otherwise.
TProofQueryResult * MakeQueryResult(Long64_t nent, const char *opt, Long64_t fst, TDSet *dset, const char *selec)
Create a TProofQueryResult instance for this query.
TFileCollection * GetStagingStatusDataSet(const char *dataset) override
Obtains a TFileCollection showing the staging status of the specified dataset.
~TProofLite() override
Destructor.
Int_t SetupWorkers(Int_t opt=0, TList *wrks=0)
Start up PROOF workers.
Long64_t DrawSelect(TDSet *dset, const char *varexp, const char *selection="", Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0) override
Execute the specified drawing action on a data set (TDSet).
TProofLockPath * fCacheLock
void ShowDataSetCache(const char *dataset=0) override
Display the content of the dataset cache, if any (matching 'dataset', if defined).
Int_t Unlock()
Unlock the directory.
Int_t Lock()
Locks the directory.
The PROOF manager interacts with the PROOF server coordinator to create or destroy a PROOF session,...
TQueryResult version adapted to PROOF neeeds.
void SetRunning(Int_t startlog, const char *par, Int_t nwrks)
Call when running starts.
const char * GetOrdinal() const
static void ResolveKeywords(TString &fname, const char *path=0)
Replace <ord>, <user>, <u>, <group>, <stag>, <qnum>, <file>, <rver> and <build> placeholders in fname...
static Int_t RegisterDataSets(TList *in, TList *out, TDataSetManager *dsm, TString &e)
Register TFileCollections in 'out' as datasets according to the rules in 'in'.
static TMap * GetDataSetNodeMap(TFileCollection *fc, TString &emsg)
Get a map {server-name, list-of-files} for collection 'fc' to be used in TPacketizerFile.
Int_t GetNumberOfInactiveSlaves() const
Return number of inactive slaves, i.e.
void ActivateAsyncInput()
Activate the a-sync input handler.
TMonitor * fCurrentMonitor
TMonitor * fAllUniqueMonitor
void SetFeedback(TString &opt, TString &optfb, Int_t action)
Extract from opt in optfb information about wanted feedback settings.
Int_t SendCurrentState(ESlaves list=kActive)
Transfer the current state of the master to the active slave servers.
TList * fTerminatedSlaveInfos
TMonitor * fUniqueMonitor
Bool_t fProgressDialogStarted
Int_t GetClientProtocol() const
void SetupWorkersEnv(TList *wrks, Bool_t increasingpool=kFALSE)
Set up packages, loaded macros, include and lib paths ...
TList * fNonUniqueMasters
Int_t HandleOutputOptions(TString &opt, TString &target, Int_t action)
Extract from opt information about output handling settings.
TVirtualProofPlayer * fPlayer
Bool_t IsParallel() const
void AskParallel()
Ask the for the number of parallel slaves.
void SetRunStatus(ERunStatus rst)
Long64_t fLastPollWorkers_s
TQueryResult * GetQueryResult(const char *ref=0)
Return pointer to the full TQueryResult instance owned by the player and referenced by 'ref'.
Int_t GetNumberOfSlaves() const
Return number of slaves as described in the config file.
void SetPerfTree(const char *pf="perftree.root", Bool_t withWrks=kFALSE)
Enable/Disable saving of the performance tree.
Int_t AssertPath(const char *path, Bool_t writable)
Make sure that 'path' exists; if 'writable' is kTRUE, make also sure that the path is writable.
Int_t VerifyDataSetParallel(const char *uri, const char *optStr)
Internal function for parallel dataset verification used TProof::VerifyDataSet and TProofLite::Verify...
Int_t SetParallel(Int_t nodes=-1, Bool_t random=kFALSE)
Tell PROOF how many slaves to use in parallel.
Int_t Collect(const TSlave *sl, Long_t timeout=-1, Int_t endtype=-1, Bool_t deactonfail=kFALSE)
Collect responses from slave sl.
Float_t GetCpuTime() const
Int_t SendInitialState()
Transfer the initial (i.e.
Int_t Broadcast(const TMessage &mess, TList *slaves)
Broadcast a message to all slaves in the specified list.
void PrepareInputDataFile(TString &dataFile)
Prepare the file with the input data objects to be sent the master; the objects are taken from the de...
void InitMembers()
Default initializations.
void SetParameter(const char *par, const char *value)
Set input list parameter.
void SetActive(Bool_t=kTRUE)
Int_t GetParallel() const
Returns number of slaves active in parallel mode.
Long64_t GetBytesRead() const
void UpdateDialog()
Final update of the progress dialog.
void AskStatistics()
Ask the for the statistics of the slaves.
TPluginHandler * fProgressDialog
void ParseConfigField(const char *config)
The config file field may contain special instructions which need to be parsed at the beginning,...
Int_t GetNumberOfBadSlaves() const
Return number of bad slaves.
TMonitor * fActiveMonitor
Int_t GoParallel(Int_t nodes, Bool_t accept=kFALSE, Bool_t random=kFALSE)
Go in parallel mode with at most "nodes" slaves.
virtual TVirtualProofPlayer * MakePlayer(const char *player=0, TSocket *s=0)
Construct a TProofPlayer object.
TSignalHandler * fIntHandler
Int_t SavePerfTree(const char *pf=0, const char *qref=0)
Save performance information from TPerfStats to file 'pf'.
virtual Int_t Load(const char *macro, Bool_t notOnClient=kFALSE, Bool_t uniqueOnly=kTRUE, TList *wrks=0)
Load the specified macro on master, workers and, if notOnClient is kFALSE, on the client.
Int_t RemoveWorkers(TList *wrks)
Used for shuting down the workres after a query is finished.
TList * fAvailablePackages
Int_t GetNumberOfActiveSlaves() const
Return number of active slaves, i.e.
TSlave * CreateSlave(const char *url, const char *ord, Int_t perf, const char *image, const char *workdir)
Create a new TSlave of type TSlave::kSlave.
static Int_t AssertDataSet(TDSet *dset, TList *input, TDataSetManager *mgr, TString &emsg)
Make sure that dataset is in the form to be processed.
friend class TProofInputHandler
Float_t GetRealTime() const
Int_t SendGroupView()
Send to all active slaves servers the current slave group size and their unique id.
Int_t GetLogLevel() const
TList * GetListOfSlaveInfos()
Returns list of TSlaveInfo's. In case of error return 0.
TProofMgr::EServType fServType
static TList * fgProofEnvList
const char * GetUser() const
EQueryMode GetQueryMode(Option_t *mode=0) const
Find out the query mode based on the current setting and 'mode'.
Bool_t fSendGroupView
list returned by kPROOF_GETSLAVEINFO
void ResetProgressDialog(const char *sel, Int_t sz, Long64_t fst, Long64_t ent)
Reset progress dialog.
static const TList * GetEnvVars()
Get environemnt variables.
TList * fEnabledPackagesOnCluster
Int_t GetSandbox(TString &sb, Bool_t assert=kFALSE, const char *rc=0)
Set the sandbox path from ' Proof.Sandbox' or the alternative var 'rc'.
Int_t GetNumberOfUniqueSlaves() const
Return number of unique slaves, i.e.
void AddInput(TObject *obj)
Add objects that might be needed during the processing of the selector (see Process()).
TProofOutputList fOutputList
void QueryResultReady(const char *ref)
Notify availability of a query result.
void Emit(const char *signal, const T &arg)
Activate signal with single parameter.
Class managing the query-result area.
void SaveQuery(TProofQueryResult *qr, const char *fout=0)
Save current status of query 'qr' to file name fout.
Bool_t FinalizeQuery(TProofQueryResult *pq, TProof *proof, TVirtualProofPlayer *player)
Final steps after Process() to complete the TQueryResult instance.
void RemoveQuery(TQueryResult *qr, Bool_t soft=kFALSE)
Remove everything about query qr.
TList * PreviousQueries() const
Int_t CleanupQueriesDir()
Remove all queries results referring to previous sessions.
Int_t ApplyMaxQueries(Int_t mxq)
Scan the queries directory and remove the oldest ones (and relative dirs, if empty) in such a way onl...
Int_t DrawQueries() const
Int_t LockSession(const char *sessiontag, TProofLockPath **lck)
Try locking query area of session tagged sessiontag.
void IncrementDrawQueries()
void ScanPreviousQueries(const char *dir)
Scan the queries directory for the results of previous queries.
A container class for query results.
Long64_t GetEntries() const
TQueryResult * CloneInfo()
Return an instance of TQueryResult containing only the local info fields, i.e.
virtual void SetProcessInfo(Long64_t ent, Float_t cpu=0., Long64_t siz=-1, Float_t inittime=0., Float_t proctime=0.)
Set processing info.
virtual void SetOutputList(TList *out, bool adopt=true)
Set / change the output list.
static const char * GetMacroPath()
Get macro search path. Static utility function.
static const TString & GetRootSys()
Get the rootsys directory in the installation. Static utility function.
static const TString & GetEtcDir()
Get the sysconfig directory in the installation. Static utility function.
static void SetMacroPath(const char *newpath)
Set or extend the macro search path.
A TSelector object is used by the TTree::Draw, TTree::Scan, TTree::Process to navigate in a TTree and...
static TSelector * GetSelector(const char *filename)
The code in filename is loaded (interpreted or compiled, see below), filename must contain a valid cl...
virtual TSocket * Accept(UChar_t Opt=0)
Accept a connection on a server socket.
Class describing a PROOF worker server.
virtual Int_t Recv(TMessage *&mess)
Receive a TMessage object.
virtual Bool_t IsValid() const
A sorted doubly linked list.
Double_t RealTime()
Stop the stopwatch (if it is running) and return the realtime (in seconds) passed between the start a...
void Stop()
Stop the stopwatch.
Int_t Atoi() const
Return integer value of string.
TString & Replace(Ssiz_t pos, Ssiz_t n, const char *s)
const char * Data() const
TString & ReplaceAll(const TString &s1, const TString &s2)
TString & Remove(Ssiz_t pos)
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
virtual const char * GetBuildCompilerVersion() const
Return the build compiler version.
virtual int Symlink(const char *from, const char *to)
Create a symbolic link from file1 to file2.
virtual Bool_t ExpandPathName(TString &path)
Expand a pathname getting rid of special shell characters like ~.
virtual void FreeDirectory(void *dirp)
Free a directory.
virtual void * OpenDirectory(const char *name)
Open a directory. Returns 0 if directory does not exist.
virtual int GetPid()
Get process id.
virtual int CopyFile(const char *from, const char *to, Bool_t overwrite=kFALSE)
Copy a file.
virtual const char * Getenv(const char *env)
Get environment variable.
virtual TString SplitAclicMode(const char *filename, TString &mode, TString &args, TString &io) const
This method split a filename of the form:
virtual char * ConcatFileName(const char *dir, const char *name)
Concatenate a directory and a file name. User must delete returned string.
virtual int MakeDirectory(const char *name)
Make a directory.
virtual Int_t Exec(const char *shellcmd)
Execute a command.
virtual int GetSysInfo(SysInfo_t *info) const
Returns static system info, like OS type, CPU type, number of CPUs RAM size, etc into the SysInfo_t s...
int GetPathInfo(const char *path, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime)
Get info about a file: id, size, flags, modification time.
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
virtual const char * GetDirEntry(void *dirp)
Get a directory entry. Returns 0 if no more entries.
virtual const char * BaseName(const char *pathname)
Base name of a file name. Base name of /user/root is root.
virtual void AddSignalHandler(TSignalHandler *sh)
Add a signal handler to list of system signal handlers.
virtual const char * HostName()
Return the system's host name.
virtual const char * WorkingDirectory()
Return working directory.
virtual TSignalHandler * RemoveSignalHandler(TSignalHandler *sh)
Remove a signal handler from list of signal handlers.
virtual void Setenv(const char *name, const char *value)
Set environment variable.
virtual const char * GetBuildArch() const
Return the build architecture.
virtual const char * HomeDirectory(const char *userName=nullptr)
Return the user's home directory.
virtual TString GetDirName(const char *pathname)
Return the directory name in pathname.
virtual int Unlink(const char *name)
Unlink, i.e.
virtual UserGroup_t * GetUserInfo(Int_t uid)
Returns all user info in the UserGroup_t structure.
virtual const char * TempDirectory() const
Return a user configured or systemwide directory to create temporary files in.
A TTree represents a columnar dataset.
virtual void SetMaxEntryLoop(Long64_t maxev=kMaxEntries)
virtual void SetMaxVirtualSize(Long64_t size=0)
virtual void DropBaskets()
Remove some baskets from memory.
virtual Long64_t GetEntries() const
This class represents a RFC 3986 compatible URI.
Bool_t SetFragment(const TString &fragment)
Set fragment component of URI:
const TString GetUri() const
Returns the whole URI - an implementation of chapter 5.3 component recomposition.
void SetUser(const char *user)
void SetUrl(const char *url, Bool_t defaultIsFile=kFALSE)
Parse url character string and split in its different subcomponents.
void SetProtocol(const char *proto, Bool_t setDefaultPort=kFALSE)
Set protocol and, optionally, change the port accordingly.
const char * GetUser() const
void SetHost(const char *host)
virtual void AddInput(TObject *inp)=0
virtual Int_t GetDrawArgs(const char *var, const char *sel, Option_t *opt, TString &selector, TString &objname)=0
virtual TList * GetInputList() const =0
virtual Long64_t DrawSelect(TDSet *set, const char *varexp, const char *selection, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)=0
virtual EExitStatus GetExitStatus() const =0
virtual void AddQueryResult(TQueryResult *q)=0
virtual Bool_t JoinProcess(TList *workers)=0
virtual TList * GetListOfResults() const =0
virtual void RemoveQueryResult(const char *ref)=0
virtual void StopProcess(Bool_t abort, Int_t timeout=-1)=0
virtual Long64_t Process(TDSet *set, const char *selector, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)=0
virtual TList * GetOutputList() const =0
virtual void SetCurrentQuery(TQueryResult *q)=0