82 #define kPEX_STOPPED 1001
83 #define kPEX_ABORTED 1002
89 class TAutoBinVal :
public TNamed {
91 Double_t fXmin, fXmax, fYmin, fYmax, fZmin, fZmax;
99 fZmin = zmin; fZmax = zmax;
104 xmin = fXmin; xmax = fXmax;
105 ymin = fYmin; ymax = fYmax;
106 zmin = fZmin; zmax = fZmax;
115 class TDispatchTimer :
public TTimer {
131 if (
gDebug > 0)
printf(
"TDispatchTimer::Notify: called!\n");
144 class TProctimeTimer :
public TTimer {
160 if (
gDebug > 0)
printf(
"TProctimeTimer::Notify: called!\n");
172 class TStopTimer :
public TTimer {
190 :
TTimer(((to <= 0 || to > 864000) ? 10 : to * 1000), kFALSE)
193 Info (
"TStopTimer",
"enter: %d, timeout: %d", abort, to);
199 Info (
"TStopTimer",
"timeout set to %s ms", fTime.AsString());
210 if (
gDebug > 0)
printf(
"TStopTimer::Notify: called!\n");
230 : fAutoBins(0), fOutput(0), fSelector(0), fCreateSelObj(kTRUE), fSelectorClass(0),
231 fFeedbackTimer(0), fFeedbackPeriod(2000),
232 fEvIter(0), fSelStatus(0),
233 fTotalEvents(0), fReadBytesRun(0), fReadCallsRun(0), fProcessedRun(0),
234 fQueryResults(0), fQuery(0), fPreviousQuery(0), fDrawQueries(0),
235 fMaxDrawQueries(1), fStopTimer(0), fStopTimerMtx(0), fDispatchTimer(0),
236 fProcTimeTimer(0), fProcTime(0),
238 fSaveMemThreshold(-1), fSavePartialResults(kFALSE), fSaveResultsPerPacket(kFALSE)
241 fExitStatus = kFinished;
251 initLimitsFinder =
kTRUE;
293 Info (
"StopProcess",
"abort: %d, timeout: %d", abort, timeout);
296 fEvIter->StopProcess(abort);
298 if (abort == kTRUE) {
317 fDispatchTimer =
new TDispatchTimer(
this);
318 fDispatchTimer->Start();
335 fStopTimer =
new TStopTimer(
this, abort, timeout);
339 Info (
"SetStopTimer",
"%s timer STARTED (timeout: %d)",
340 (abort ?
"ABORT" :
"STOP"), timeout);
343 Info (
"SetStopTimer",
"timer STOPPED");
354 Warning(
"AddQueryResult",
"query undefined - do nothing");
360 if (!fQueryResults) {
361 fQueryResults =
new TList;
362 fQueryResults->
Add(q);
364 TIter nxr(fQueryResults);
370 fQueryResults->Remove(qr);
380 fQueryResults->AddFirst(q);
382 fQueryResults->AddAfter(qp, q);
387 if (fDrawQueries == fMaxDrawQueries && fMaxDrawQueries > 0) {
388 TIter nxr(fQueryResults);
394 fQueryResults->Remove(qr);
401 if (fDrawQueries >= 0 && fDrawQueries < fMaxDrawQueries) {
404 fQueryResults =
new TList;
405 fQueryResults->
Add(q);
417 TIter nxq(fQueryResults);
421 fQueryResults->Remove(qr);
435 if (ref && strlen(ref) > 0) {
436 TIter nxq(fQueryResults);
494 ol = fQuery->GetOutputList();
509 Info(
"ReinitSelector",
"query undefined - do nothing");
515 if (selec.
Length() <= 0) {
516 Info(
"ReinitSelector",
"selector name undefined - do nothing");
525 Bool_t compselec = (selec.
Contains(
".") || stdselec) ? kFALSE : kTRUE;
529 if (!stdselec && !compselec) {
536 TMD5 *md5icur = 0, *md5iold = 0, *md5hcur = 0, *md5hold = 0;
550 if (md5hcur && md5hold && md5icur && md5iold)
551 if (*md5hcur == *md5hold && *md5icur == *md5iold)
558 if (selc)
delete [] selc;
589 if (
id !=
kNPOS &&
id < opt.Length() - 1)
590 selec += opt(
id + 1, opt.Length());
593 Info(
"ReinitSelector",
"problems locating or exporting selector files");
611 fSelectorClass = fSelector->IsA();
641 Info(
"ReinitSelector",
"compiled selector re-init failed:"
642 " automatic reload unsuccessful:"
643 " please load manually the correct library");
659 if (ipathold.
Length() > 0)
790 Info(
"SavePartialResults",
"partial result saving disabled");
796 Error(
"SavePartialResults",
"gProofServ undefined: something really wrong going on!!!");
800 Error(
"SavePartialResults",
"fOutput undefined: something really wrong going on!!!");
805 Info(
"SavePartialResults",
"start saving partial results {%d,%d,%d,%d}",
809 PDB(kOutput, 2)
Info(
"SavePartialResults",
"fEvIter: %p", fEvIter);
812 PDB(kOutput, 2)
Info(
"SavePartialResults",
"list of packets: %p, sz: %d",
813 packets, (packets ? packets->
GetSize(): -1));
816 const char *oopt =
"UPDATE";
832 (fOutputFile && fOutputFile->IsZombie())) {
845 if (packetsDir) packetsDir->
cd();
855 while ((o = nxo())) {
859 if (!strncmp(o->
GetName(),
"PROOF_", 6))
continue;
863 if (!strcmp(o->
GetName(),
"MissingFiles"))
continue;
894 if (queryend) torm.
Add(o);
903 if (!fOutput->FindObject(baseName)) {
921 if (!strcmp(
TUrl(oname, kTRUE).GetProtocol(),
"file")) {
934 oname.
Form(
"<datadir>/%s", baseName.
Data());
950 fOutputFile->Close();
954 if (queryend && torm.
GetSize() > 0) {
956 while ((o = nxrm())) { fOutput->Remove(o); }
961 Info(
"SavePartialResults",
"partial results saved to file");
972 if (selector_file && strlen(selector_file)) {
987 Error(
"AssertSelector",
"cannot load: %s", selector_file );
993 Info(
"AssertSelector",
"Processing via filename");
994 }
else if (!fSelector) {
995 Error(
"AssertSelector",
"no TSelector object define : cannot continue!");
998 Info(
"AssertSelector",
"Processing via TSelector object");
1029 PDB(kGlobal,1)
Info(
"Process",
"Enter");
1040 Error(
"Process",
"cannot assert the selector object");
1044 fSelectorClass = fSelector->IsA();
1045 Int_t version = fSelector->Version();
1046 if (version == 0 &&
IsClient()) fSelector->GetOutputList()->Clear();
1048 fOutput = (
THashList *) fSelector->GetOutputList();
1054 fOutput->
Add(fSelStatus);
1056 fSelector->SetOption(option);
1057 fSelector->SetInputList(
fInput);
1067 while ((e = dset->
Next())) {
1068 fTotalEvents += e->
GetNum();
1075 Int_t useTreeCache = 1;
1077 if (useTreeCache > -1 && useTreeCache < 2)
1078 gEnv->
SetValue(
"ProofPlayer.UseTreeCache", useTreeCache);
1086 Int_t useParallelUnzip = 0;
1088 if (useParallelUnzip > -1 && useParallelUnzip < 2)
1089 gEnv->
SetValue(
"ProofPlayer.UseParallelUnzip", useParallelUnzip);
1092 Int_t dontCacheFiles = 0;
1094 if (dontCacheFiles == 1)
1107 opt =
gEnv->
GetValue(
"ProofPlayer.SavePartialResults", 0);
1120 Info(
"Process",
"memory threshold for saving objects to file set to %ld kB",
1123 Error(
"Process",
"cannot get SysInfo_t (!)");
1128 PDB(kLoop,1)
Info(
"Process",
"Call Begin(0)");
1129 fSelector->Begin(0);
1133 PDB(kLoop,1)
Info(
"Process",
"Call Begin(0)");
1134 fSelector->Begin(0);
1137 PDB(kLoop,1)
Info(
"Process",
"Call SlaveBegin(0)");
1138 fSelector->SlaveBegin(0);
1145 Error(
"Process",
"exception %d caught", excode);
1152 Warning(
"Process",
"problems seetting up file-object swapping");
1161 Info(
"Process",
"Looping over Process()");
1188 TString lastMsg(
"(unfortunately no detailed info is available about current packet)");
1191 if (!
CheckMemUsage(singleshot, warnHWMres, warnHWMvir, wmsg)) {
1194 fSelStatus->Add(wmsg.
Data());
1201 }
else if (!wmsg.
IsNull()) {
1205 TPair *currentElem = 0;
1210 while ((fEvIter->GetNextPacket(fst, num) != -1) &&
1232 lastMsg =
"check logs for possible stacktrace - last cycle:";
1236 lastMsg.
Form(
"while processing dset:'%s', file:'%s'"
1237 " - check logs for possible stacktrace - last event:", dset->
GetName(), fn.
Data());
1250 if (maxproctime > 0) {
1251 if (!fProcTimeTimer) fProcTimeTimer =
new TProctimeTimer(
this, maxproctime);
1252 fProcTimeTimer->Start(maxproctime, kTRUE);
1253 if (!fProcTime) fProcTime =
new TStopwatch();
1257 if (refnum < 0 && maxproctime <= 0) {
1258 wmsg.
Form(
"neither entries nor max proc time specified:"
1259 " risk of infinite loop: processing aborted");
1270 while (refnum < 0 || num--) {
1282 fProcTimeTimer->Start(mpt, kTRUE);
1287 Info(
"Process",
"max proc time reached (%ld msecs): packet processing stopped:\n%s",
1288 maxproctime, lastMsg.
Data());
1298 entry = fEvIter->GetEntryNumber(fst);
1304 if (fSelector->Version() == 0) {
1306 Info(
"Process",
"Call ProcessCut(%lld)", entry);
1307 if (fSelector->ProcessCut(entry)) {
1309 Info(
"Process",
"Call ProcessFill(%lld)", entry);
1310 fSelector->ProcessFill(entry);
1314 Info(
"Process",
"Call Process(%lld)", entry);
1315 fSelector->Process(entry);
1320 Info(
"Process",
"packet processing aborted following the"
1321 " selector settings:\n%s", lastMsg.
Data());
1322 fEvIter->InvalidatePacket();
1330 if (!
CheckMemUsage(memlogfreq, warnHWMres, warnHWMvir, wmsg)) {
1367 Info(
"Process",
"received stop-process signal");
1371 Info(
"Process",
"received abort-process signal");
1374 Error(
"Process",
"exception %d caught", excode);
1383 TPair *currentElem = 0;
1386 delete currentElem->
Key();
1395 if (!wmsg.
IsNull())
Warning(
"Process",
"%s (%s)", wmsg.
Data(), shrc ?
"warn" :
"hwm");
1408 if (fStopTimer != 0)
1410 if (fFeedbackTimer != 0)
1417 Warning(
"Process",
"problems saving the results to file");
1427 while ((o = nxo())) {
1433 const char *dir = of->
GetDir();
1434 if (!dir || (dir && strlen(dir) <= 0)) {
1436 }
else if (dir && strlen(dir) > 0) {
1438 if (!strcmp(u.
GetHost(),
"localhost") || !strcmp(u.
GetHost(),
"127.0.0.1") ||
1439 !strcmp(u.
GetHost(),
"localhost.localdomain")) {
1451 if (fSelector->Version() == 0) {
1452 PDB(kLoop,1)
Info(
"Process",
"Call Terminate()");
1453 fSelector->Terminate();
1455 PDB(kLoop,1)
Info(
"Process",
"Call SlaveTerminate()");
1456 fSelector->SlaveTerminate();
1458 PDB(kLoop,1)
Info(
"Process",
"Call Terminate()");
1459 fSelector->Terminate();
1491 Error(
"Process",
"selector object undefiend!");
1496 fSelector = selector;
1498 return Process(dset, (
const char *)0, option, nentries, first);
1518 if (mfreq > 0 && processed%mfreq == 0) {
1524 Info(
"CheckMemUsage|Svc",
"Memory %ld virtual %ld resident event %lld",
1531 wmsg.
Form(
"using more than %d%% of allowed virtual memory (%ld kB)"
1537 wmsg.
Form(
"using more than %d%% of allowed virtual memory (%ld kB)",
1545 wmsg.
Form(
"using more than %d%% of allowed resident memory (%ld kB)"
1552 wmsg.
Form(
"using more than %d%% of allowed both virtual and resident memory ({%ld,%ld} kB)",
1555 wmsg.
Form(
"using more than %d%% of allowed resident memory (%ld kB)",
1601 fOutput->Add(olsdm);
1612 if ( fAutoBins == 0 ) {
1616 TAutoBinVal *val = (TAutoBinVal*) fAutoBins->
FindObject(name);
1625 val =
new TAutoBinVal(name,xmin,xmax,ymin,ymax,zmin,zmax);
1626 fAutoBins->Add(val);
1628 val->GetAll(xmin,xmax,ymin,ymax,zmin,zmax);
1703 if (!gDrawCanvasHook) {
1705 TString drawlib =
"libProofDraw";
1715 Warning(
"DrawCanvas",
"can't find DrawCanvas");
1717 Warning(
"DrawCanvas",
"can't load %s", drawlib.
Data());
1719 Warning(
"DrawCanvas",
"can't locate %s", drawlib.
Data());
1721 if (gDrawCanvasHook && obj)
1722 return (*gDrawCanvasHook)(
obj);
1735 static Int_t (*gGetDrawArgsHook)(
const char *,
const char *,
Option_t *,
1739 if (!gGetDrawArgsHook) {
1741 TString drawlib =
"libProofDraw";
1749 gGetDrawArgsHook = (
Int_t (*)(
const char *,
const char *, Option_t *,
1750 TString &, TString &))(
f);
1752 Warning(
"GetDrawArgs",
"can't find GetDrawArgs");
1754 Warning(
"GetDrawArgs",
"can't load %s", drawlib.
Data());
1756 Warning(
"GetDrawArgs",
"can't locate %s", drawlib.
Data());
1758 if (gGetDrawArgsHook)
1759 return (*gGetDrawArgsHook)(var, sel, opt, selector, objname);
1769 static void (*gFeedBackCanvasHook)(
const char *,
Bool_t) = 0;
1772 if (!gFeedBackCanvasHook) {
1774 TString drawlib =
"libProofDraw";
1782 gFeedBackCanvasHook = (
void (*)(
const char *,
Bool_t))(
f);
1784 Warning(
"FeedBackCanvas",
"can't find FeedBackCanvas");
1786 Warning(
"FeedBackCanvas",
"can't load %s", drawlib.
Data());
1788 Warning(
"FeedBackCanvas",
"can't locate %s", drawlib.
Data());
1790 if (gFeedBackCanvasHook) (*gFeedBackCanvasHook)(
name, create);
1800 if (fEvIter)
return fEvIter->GetCacheSize();
1809 if (fEvIter)
return fEvIter->GetLearnEntries();
1822 if (fNumMergers <= 0 && fProof->fMergersCount > 0)
1832 fQuery->SetMergeTime(rt);
1836 fQuery->SetRecvTime(rt);
1838 PDB(kGlobal,2) fQuery->Print(
"F");
1858 Error(
"Process",
"selector object undefiend!");
1865 Long64_t rc = Process(set, selector, option, nentries);
1910 if (fProcessMessage)
1919 Long64_t first,
const char *defpackunit,
1920 const char *defpackdata)
1923 PDB(kGlobal,1)
Info(
"Process",
"Enter");
1928 Int_t honebyone = 1;
1930 honebyone =
gEnv->
GetValue(
"ProofPlayer.MergeTH1OneByOne", 1);
1936 TList *listOfMissingFiles = 0;
1945 packetizer = defpackunit;
1947 Info(
"InitPacketizer",
"using alternate packetizer: %s", packetizer.
Data());
1952 Error(
"InitPacketizer",
"class '%s' not found", packetizer.
Data());
1958 callEnv.
InitWithPrototype(cl, cl->GetName(),
"TList*,Long64_t,TList*,TProofProgressStatus*");
1960 Error(
"InitPacketizer",
1961 "cannot find correct constructor for '%s'", cl->GetName());
1976 Error(
"InitPacketizer",
"received stop/abort request");
1982 packetizer =
"TPacketizerMulti";
1987 Error(
"InitPacketizer",
"class '%s' not found", packetizer.
Data());
1995 Error(
"InitPacketizer",
"cannot find correct constructor for '%s'", cl->
GetName());
2021 listOfMissingFiles =
new TList;
2026 dset->
Lookup(kTRUE, &listOfMissingFiles);
2030 Error(
"InitPacketizer",
"received stop/abort request");
2039 Error(
"InitPacketizer",
"No files from the data set were found - Aborting");
2041 if (listOfMissingFiles) {
2043 fOutput->Remove(listOfMissingFiles);
2051 packetizer = defpackdata;
2053 Info(
"InitPacketizer",
"using alternate packetizer: %s", packetizer.
Data());
2058 Error(
"InitPacketizer",
"class '%s' not found", packetizer.
Data());
2064 callEnv.
InitWithPrototype(cl, cl->GetName(),
"TDSet*,TList*,Long64_t,Long64_t,TList*,TProofProgressStatus*");
2066 Error(
"InitPacketizer",
"cannot find correct constructor for '%s'", cl->GetName());
2087 Error(
"InitPacketizer",
"cannot construct '%s'", cl->
GetName());
2093 Error(
"InitPacketizer",
2094 "instantiated packetizer object '%s' is invalid", cl->
GetName());
2115 if (!listOfMissingFiles)
2116 listOfMissingFiles =
new TList;
2118 dset->
Remove(elem, kFALSE);
2126 if (listOfMissingFiles && listOfMissingFiles->
GetSize() > 0) {
2127 TIter missingFiles(listOfMissingFiles);
2133 msg =
Form(
"File not found: %s - skipping!",
2136 msg =
Form(
"File not found: %s - skipping!", fi->
GetName());
2143 listOfMissingFiles->
SetName(
"MissingFiles");
2153 msg =
Form(
" About %.2f %c of the requested files (%d out of %d) were missing or unusable; details in"
2154 " the 'missingFiles' list", xb * 100.,
'%', nbad, nbad + ngood);
2157 " +++ About %.2f %c of the requested files (%d out of %d) are missing or unusable; details in"
2158 " the 'MissingFiles' list\n"
2159 " +++", xb * 100.,
'%', nbad, nbad + ngood);
2181 PDB(kGlobal,1)
Info(
"Process",
"Enter");
2187 Error(
"Process",
"No progress status");
2224 TList *inputtmp = 0;
2228 PDB(kPacketizer,1)
Info(
"Process",
"Create Proxy TDSet");
2234 if (
InitPacketizer(dset, nentries, first,
"TPacketizerUnit",
"TPacketizer") != 0) {
2235 Error(
"Process",
"cannot init the packetizer");
2250 if (clf.IsDigit()) { memlogfreq = clf.
Atoi(); mrc = 0; }
2253 if (memlogfreq == 0) {
2255 if (memlogfreq <= 0) memlogfreq = 1;
2263 Warning(
"Process",
"could not forward input data: %s", emsg.
Data());
2268 Warning(
"Process",
"could not attach to histogram 'PROOF_ProcPcktHist'");
2271 Info(
"Process",
"attached to histogram 'PROOF_ProcPcktHist' to record"
2272 " packets being processed");
2306 Info(
"Process",
"starting new query");
2320 fSelectorClass = fSelector->IsA();
2326 if (fSelector->GetInputList() && fSelector->GetInputList()->GetSize() > 0) {
2327 TIter nxi(fSelector->GetInputList());
2329 while ((o = nxi())) {
2333 inputtmp =
new TList;
2343 fSelector->SetInputList(
fInput);
2344 fSelector->SetOption(option);
2345 if (fSelector->GetOutputList()) fSelector->GetOutputList()->Clear();
2347 PDB(kLoop,1)
Info(
"Process",
"Call Begin(0)");
2348 fSelector->Begin(0);
2382 mesg << set << fn <<
fInput << opt << num << fst << evl << sync << enl;
2383 (*fProcessMessage) << set << fn <<
fInput << opt << num << fst << evl << sync << enl;
2385 mesg << set << fn <<
fInput << opt << num << fst << evl << sync;
2388 Warning(
"Process",
"entry lists not supported by the server");
2395 PDB(kGlobal,1)
Info(
"Process",
"Broadcast called: %d workers notified", nb);
2408 Info(
"Process|Svc",
"Start merging Memory information");
2415 PDB(kGlobal,1)
Info(
"Process",
"Asynchronous processing:"
2416 " activating CollectInputFrom");
2425 PDB(kGlobal,1)
Info(
"Process",
"Calling Collect");
2450 PDB(kGlobal,1)
Info(
"Process",
"Synchronous processing: calling Collect");
2454 Info(
"Process",
"switching to the asynchronous mode ...");
2492 TIter nxi(inputtmp);
2514 Error(
"Process",
"selector object undefined");
2519 if (
IsClient() && (selector != fSelector)) {
2521 fSelector = selector;
2539 Error(
"Process",
"Should not happen: fProcessMessage=%p fProof=%p fPacketizer=%p",
2545 Error(
"Process",
"Invalid call");
2550 Info(
"Process",
"Preparing %d new worker(s) to process", workers->
GetEntries());
2565 Info(
"Process",
"Adding new workers to the packetizer");
2567 Error(
"Process",
"Cannot add new workers to the packetizer!");
2572 Info(
"Process",
"Broadcasting process message to new workers");
2587 PDB(kOutput,1)
Info(
"MergeOutputFiles",
"enter: fOutput size: %d", fOutput->GetSize());
2588 PDB(kOutput,2) fOutput->ls();
2595 while ((o = nxo())) {
2596 if ((pf = dynamic_cast<TProofOutputFile*>(o))) {
2606 Error(
"MergeOutputFiles",
"file merger is null in TProofOutputFile! Protocol error?");
2624 if (outfile.Contains(
"<datadir>/")) {
2639 if (outfile.BeginsWith(
"client:")) outfile.Replace(0, 7,
"");
2642 outfile.Form(
"%s%s", ddir.
Data(), bn.
Data());
2649 if (outfile.BeginsWith(
"master:")) outfile.Replace(0, 7,
"");
2656 if (uof.GetPort() > 0 && usrv.
GetPort() > 0 &&
2670 outfilerem.
Insert(0, srv);
2678 Error(
"MergeOutputFiles",
"cannot open the output file");
2683 if (!filemerger->
Merge()) {
2684 Error(
"MergeOutputFiles",
"cannot merge the output files");
2694 if (!strcmp(u.GetProtocol(),
"file")) {
2702 filemerger->
Reset();
2712 pf->
Merge(&dumlist);
2717 Error(
"MergeOutputFiles",
"file collection is null in TProofOutputFile! Protocol error?");
2731 if (!fOutput->FindObject(
"PROOFSERV_RegisterDataSet"))
2732 fOutput->Add(
new TNamed(
"PROOFSERV_RegisterDataSet",
""));
2734 fOutput->Add(
new TNamed(tag, opt));
2738 if (!rmList) rmList =
new TList;
2740 PDB(kOutput,2) fOutput->Print();
2747 if (rmList && rmList->
GetSize() > 0) {
2750 while((o = nxo())) {
2757 PDB(kOutput,1)
Info(
"MergeOutputFiles",
"done!");
2774 PDB(kOutput,1)
Warning(
"SetSelectorDataMembersFromOutputList",
2775 "failed to find map object in output list!");
2794 fQuery->GetName()), force);
2797 PDB(kGlobal,1)
Info(
"Finalize",
"Calling Merge Output to finalize the output list");
2810 fOutput->Add(status);
2816 PDB(kOutput,1)
Info(
"Finalize",
"Calling Merge Output");
2821 fOutput->SetOwner();
2826 if (pperf) fOutput->Add(pperf);
2831 while ((o = nxo())) fOutput->Add(o);
2840 if (!listOfMissingFiles) {
2841 listOfMissingFiles =
new TList;
2842 listOfMissingFiles->
SetName(
"MissingFiles");
2847 if (!fOutput->FindObject(listOfMissingFiles)) fOutput->Add(listOfMissingFiles);
2868 Info(
"Finalize",
"problems reinitializing selector \"%s\"",
2869 fQuery->GetSelecImp()->GetName());
2877 failedPackets->SetName(
"FailedPackets");
2882 status->
Add(
"Some packets were not processed! Check the the"
2883 " 'FailedPackets' list in the output list");
2887 fSelector->SetInputList(
fInput);
2899 Warning(
"Finalize",
"undefined output list in the selector! Protocol error?");
2905 fOutput->SetOwner(kFALSE);
2906 fOutput->Clear(
"nodelete");
2911 PDB(kLoop,1)
Info(
"Finalize",
"Call Terminate()");
2917 fSelector->Terminate();
2919 rv = fSelector->GetStatus();
2929 fQuery->SetOutputList(fOutput);
2931 fQuery->SetFinalized();
2933 Warning(
"Finalize",
"current TQueryResult object is undefined!");
2938 fOutput->Remove(fSelector);
2939 if (output) output->
Remove(fSelector);
2946 if (output) { output->
SetOwner(kFALSE); output->
Clear(
"nodelete"); }
2951 fOutput->SetOwner(kFALSE);
2952 fOutput->Clear(
"nodelete");
2958 fOutput->SetOwner();
2963 PDB(kGlobal,1)
Info(
"Process",
"exit");
2978 PDB(kGlobal,1)
Info(
"Finalize(TQueryResult *)",
"Enter");
2981 Info(
"Finalize(TQueryResult *)",
2982 "method to be executed only on the clients");
2987 Info(
"Finalize(TQueryResult *)",
"query undefined");
2992 Info(
"Finalize(TQueryResult *)",
"query already finalized");
3016 Info(
"Finalize(TQueryResult *)",
"outputlist is empty");
3050 if (!selector_file) {
3051 Info(
"SendSelector",
"Invalid input: selector (file) name undefined");
3057 Info(
"SendSelector",
"selector name '%s' does not contain a '.':"
3058 " nothing to send, it will be loaded from a library", selector_file);
3063 TString selec = selector_file;
3095 Info(
"SendSelector",
3096 "header file not found: tried: %s %s", h.
Data(), header.
Data());
3103 Info(
"SendSelector",
"problems sending implementation file %s", selec.
Data());
3107 Info(
"SendSelector",
"problems sending header file %s", header.
Data());
3119 PDB(kOutput,1)
Info(
"MergeOutput",
"Enter");
3130 obj = list->
First();
3135 if ( list->
IsEmpty() )
continue;
3145 while ( (obj = list->
First()) ) {
3155 PDB(kOutput,1)
Info(
"MergeOutput",
"fOutputLists empty");
3172 while ((obj = nxo())) {
3176 PDB(kOutput,2)
Info(
"MergeOutput",
"found TProofOutputFile '%s'", obj->
GetName());
3178 PDB(kOutput,2)
Info(
"MergeOutput",
"outputfilename: '%s'", dir.Data());
3180 if (dir.Last(
'/') !=
kNPOS) dir.Remove(dir.Last(
'/')+1);
3181 PDB(kOutput,2)
Info(
"MergeOutput",
"dir: '%s'", dir.Data());
3190 PDB(kOutput,2)
Info(
"MergeOutput",
"rawdir: '%s'", dir.Data());
3209 if (dir.EndsWith(
".merger")) dir.Remove(dir.Last(
'.'));
3225 PDB(kOutput,2)
Info(
"MergeOutput",
"output object '%s' is not a TProofOutputFile", obj->
GetName());
3231 TIter nxrm(&rmlist);
3232 while ((obj = nxrm()))
3233 fOutput->Remove(obj);
3239 if (saveMemValues) {
3245 if (status) status->
SetMemValues(vmaxmst, rmaxmst, kFALSE);
3248 PDB(kOutput,1) fOutput->Print();
3249 PDB(kOutput,1)
Info(
"MergeOutput",
"leave (%d object(s))", fOutput->GetSize());
3262 m << total << processed;
3276 Info(
"Progress",
"%lld %lld %lld %f %f %f %f", total, processed, bytesread,
3277 initTime, procTime, evtrti, mbrti);
3280 fProof->
Progress(total, processed, bytesread, initTime, procTime, evtrti, mbrti);
3284 m << total << processed << bytesread << initTime << procTime << evtrti << mbrti;
3312 Warning(
"Progress",
"TProofProgressInfo object undefined!");
3350 Info(
"AddOutputObject",
"Enter: %p (%s)", obj, obj ? obj->
ClassName() :
"undef");
3354 PDB(kOutput,1)
Info(
"AddOutputObject",
"Invalid input (obj == 0x0)");
3367 if (elists && !strcmp(elists->
GetName(),
"PROOF_EventListsList")) {
3374 TIter nxevl(elists);
3376 while ((evl = dynamic_cast<TEventList *> (nxevl()))) {
3382 while ((elem = dynamic_cast<TDSetElement *> (nxelem()))) {
3383 if (!strcmp(elem->GetFileName(), evl->
GetName()))
3387 Error(
"AddOutputObject",
"Found an event list for %s, but no object with"
3388 " the same name in the TDSet", evl->
GetName());
3391 Long64_t offset = elem->GetTDSetOffset();
3396 if (arr && offset > 0)
3397 for (
Int_t i = 0; i < num; i++)
3445 if (!fOutput->FindObject(key.
Data()))
3463 if (!of.
EndsWith(
".merger")) of +=
".merger";
3485 return (merged ? 1 : 0);
3512 PDB(kOutput,1)
Info(
"AddOutput",
"Enter");
3516 PDB(kOutput,1)
Info(
"AddOutput",
"Invalid input (out == 0x0)");
3534 TIter nxevl(elists);
3536 while ((evl = dynamic_cast<TEventList *> (nxevl()))) {
3542 while ((elem = dynamic_cast<TDSetElement *> (nxelem()))) {
3543 if (!strcmp(elem->GetFileName(), evl->
GetName()))
3547 Error(
"AddOutput",
"Found an event list for %s, but no object with"
3548 " the same name in the TDSet", evl->
GetName());
3551 Long64_t offset = elem->GetTDSetOffset();
3556 if (arr && offset > 0)
3557 for (
Int_t i = 0; i < num; i++)
3578 while ((obj = nxo())) {
3604 Info(
"NotifyMemory|Svc",
"Memory %ld virtual %ld resident after merging object %s",
3637 Info(
"Incorporate",
"enter: obj: %p (%s), list: %p",
3638 newobj, newobj ? newobj->
ClassName() :
"undef", outlist);
3641 if (!newobj || !outlist) {
3642 Error(
"Incorporate",
"Invalid inputs: obj: %p, list: %p", newobj, outlist);
3652 PDB(kOutput,1)
Info(
"Incorporate",
"histogram object '%s' merged", newobj->
GetName());
3654 PDB(kOutput,1)
Info(
"Incorporate",
"histogram object '%s' added to the"
3655 " appropriate list for delayed merging", newobj->
GetName());
3666 outlist->
Add(newobj);
3687 outlist->
Add(newobj);
3715 PDB(kOutput,2)
Info(
"HandleHistogram",
"h:%s ent:%d, buffer size: %d",
3721 PDB(kOutput,2)
Info(
"HandleHistogram",
"create fOutputLists");
3741 fOutput->Remove(href);
3746 while ((href = (
TH1 *) nxh())) {
3750 list->AddBefore(href, h);
3761 while ((href = (
TH1 *) nxh())) {
3765 list->AddBefore(href, h);
3778 fOutput->Remove(hout);
3808 PDB(kOutput,1)
Info(
"HandleHistogram",
"leaving");
3818 if (!h0 || !h1)
return rc;
3820 TAxis *a0 = 0, *a1 = 0;
3825 if (a0->
GetNbins() == a1->GetNbins())
3834 if (a0->
GetNbins() == a1->GetNbins())
3844 if (a0->
GetNbins() == a1->GetNbins())
3858 PDB(kOutput,1)
Info(
"StoreOutput",
"Enter");
3861 PDB(kOutput,1)
Info(
"StoreOutput",
"Leave (empty)");
3869 PDB(kOutput,2)
Info(
"StoreOutput",
"Create fOutputLists");
3881 while ( (aList = dynamic_cast<TEventList*> (it())) ) {
3885 while ( (elem = dynamic_cast<TDSetElement*> (nxe())) ) {
3886 if (strcmp(elem->GetFileName(), aList->
GetName()) == 0)
3890 Error(
"StoreOutput",
"found the EventList for %s, but no object with that name "
3891 "in the TDSet", aList->
GetName());
3894 Long64_t offset = elem->GetTDSetOffset();
3900 for (
int i = 0; i < num; i++)
3903 mainList->
Add(aList);
3909 while( (obj =
next()) ) {
3910 PDB(kOutput,2)
Info(
"StoreOutput",
"find list for '%s'", obj->
GetName() );
3914 PDB(kOutput,2)
Info(
"StoreOutput",
"list for '%s' not found (creating)", obj->
GetName());
3924 PDB(kOutput,1)
Info(
"StoreOutput",
"leave");
3933 Info(
"MergeFeedback",
"Enter");
3937 Info(
"MergeFeedback",
"Leave (no output)");
3957 #ifndef R__TH1MERGEFIXED
3961 while (
TObject *key = keys() ) {
3963 TH1 *
h =
dynamic_cast<TH1 *
>(o);
3964 #ifndef R__TH1MERGEFIXED
3969 if (h && !strncmp(o->
GetName(),
"PROOF_",6)) {
3979 while ((href = (
TH1 *)nxh())) {
3987 list->AddBefore(href, h);
3997 #ifdef R__TH1MERGEFIXED
4000 TObject *obj = (oref) ? oref : list->First();
4006 if ( list->IsEmpty() ) {
4020 while ( (obj = list->First()) ) {
4030 Info(
"MergeFeedback",
"Leave (%d object(s))", fb->
GetSize());
4041 Info(
"StoreFeedback",
"Enter");
4045 Info(
"StoreFeedback",
"Leave (empty)");
4057 PDB(kFeedback,2)
Info(
"StoreFeedback",
"Create fFeedbackLists");
4065 const char *
ord = ((
TSlave*) slave)->GetOrdinal();
4068 while( (obj =
next()) ) {
4070 Info(
"StoreFeedback",
"%s: Find '%s'", ord, obj->
GetName() );
4074 Info(
"StoreFeedback",
"%s: map for '%s' not found (creating)", ord, obj->
GetName());
4081 Info(
"StoreFeedback",
"%s: removing previous value", ord);
4082 if (map->GetValue(slave))
4083 delete map->GetValue(slave);
4086 map->Add(slave, obj);
4088 Info(
"StoreFeedback",
"%s: %s, size: %d", ord, obj->
GetName(), map->GetSize());
4093 Info(
"StoreFeedback",
"Leave");
4105 PDB(kFeedback,1)
Info(
"SetupFeedback",
"\"FeedbackList\" %sfound",
4112 fFeedbackPeriod = 2000;
4114 fFeedbackTimer =
new TTimer;
4116 fFeedbackTimer->Start(fFeedbackPeriod, kTRUE);
4124 if (fFeedbackTimer == 0)
return;
4126 PDB(kFeedback,1)
Info(
"StopFeedback",
"Stop Timer");
4136 PDB(kFeedback,2)
Info(
"HandleTimer",
"Entry");
4138 if (fFeedbackTimer == 0)
return kFALSE;
4168 fFeedbackTimer->Start(fFeedbackPeriod, kTRUE);
4174 PDB(kFeedback,2)
Info(
"HandleTimer",
"Sending %d objects", fb->
GetSize());
4184 fFeedbackTimer->Start(fFeedbackPeriod, kTRUE);
4215 Info(
"GetNextPacket",
"%s (%s): '%s' '%s' '%s' %lld %lld",
4237 const char *selection,
Option_t *option,
4240 if (!fgDrawInputPars) {
4243 fgDrawInputPars->Add(
new TObjString(
"PROOF_ChainWeight"));
4244 fgDrawInputPars->Add(
new TObjString(
"PROOF_LineColor"));
4245 fgDrawInputPars->Add(
new TObjString(
"PROOF_LineStyle"));
4246 fgDrawInputPars->Add(
new TObjString(
"PROOF_LineWidth"));
4247 fgDrawInputPars->Add(
new TObjString(
"PROOF_MarkerColor"));
4248 fgDrawInputPars->Add(
new TObjString(
"PROOF_MarkerStyle"));
4249 fgDrawInputPars->Add(
new TObjString(
"PROOF_MarkerSize"));
4250 fgDrawInputPars->Add(
new TObjString(
"PROOF_FillColor"));
4251 fgDrawInputPars->Add(
new TObjString(
"PROOF_FillStyle"));
4252 fgDrawInputPars->Add(
new TObjString(
"PROOF_ListOfAliases"));
4256 if (
GetDrawArgs(varexp, selection, option, selector, objname) != 0) {
4257 Error(
"DrawSelect",
"parsing arguments");
4262 TNamed *selectionobj =
new TNamed(
"selection", selection);
4268 while ((o = nxi())) {
4271 if (fgDrawInputPars &&
4272 !fgDrawInputPars->FindObject(o->
GetName()) &&
4280 if (objname ==
"") objname =
"htemp";
4294 delete selectionobj;
4298 TIter nxsi(savedInput);
4299 while ((o = nxsi()))
4329 Info(
"SetupFeedback",
"\"FeedbackList\" found: %d objects", fb->
GetSize());
4332 Info(
"SetupFeedback",
"\"FeedbackList\" NOT found");
4335 if (fb == 0 || fb->
GetSize() == 0)
return;
4340 fFeedbackPeriod = 2000;
4342 fFeedbackTimer =
new TTimer;
4344 fFeedbackTimer->Start(fFeedbackPeriod, kTRUE);
4354 if (fFeedbackTimer == 0)
return;
4356 PDB(kFeedback,1)
Info(
"StopFeedback",
"Stop Timer");
4366 PDB(kFeedback,2)
Info(
"HandleTimer",
"Entry");
4395 fOutput = (
THashList *) fSelector->GetOutputList();
4403 if (o != 0) fb->
Add(o);
4407 PDB(kFeedback,2)
Info(
"HandleTimer",
"Sending %d objects", fb->
GetSize());
4417 fFeedbackTimer->Start(fFeedbackPeriod, kTRUE);
4437 PDB(kGlobal, 1)
Info(
"HandleGetTreeHeader",
"empty TDSet");
4444 t->SetMaxVirtualSize(0);
4446 entries = t->GetEntries();
4449 while ((e = dset->Next()) != 0) {
4460 t->SetMaxEntryLoop(entries);
4465 answ <<
TString(
"Success") << t;
4467 answ <<
TString(
"Failed") << t;
4489 fProgressStatus->Reset();
4490 PDB(kGlobal,1)
Info(
"Process",
"Enter");
4493 if (!proof)
return -1;
4500 if (!SendSelector(selector_file)) {
4501 Error(
"Process",
"sending selector %s", selector_file);
4505 TCleanup clean(
this);
4511 if (!dset->ElementsValid()) {
4513 if (!dset->ElementsValid()) {
4514 Error(
"Process",
"could not validate TDSet");
4529 while (
TSlave *sl = dynamic_cast<TSlave*>(nextslave())) {
4530 TList *submasters = 0;
4533 submasters =
new TList;
4534 submasters->
SetName(sl->GetMsd());
4535 keyholder.
Add(submasters);
4538 valueholder.
Add(setelements);
4539 msds.
Add(
new TPair(submasters, setelements));
4541 submasters =
dynamic_cast<TList*
>(msd->
Key());
4543 if (submasters) submasters->
Add(sl);
4548 TIter nextelement(dset->GetListOfElements());
4549 while (
TDSetElement *elem = dynamic_cast<TDSetElement*>(nextelement())) {
4551 if (elem->GetNum()<1)
continue;
4553 if (nentries !=-1 && cur>=first+nentries) {
4558 if (cur+elem->GetNum()-1<first) {
4560 cur+=elem->GetNum();
4566 elem->SetNum(elem->GetNum()-(first-cur));
4567 elem->SetFirst(elem->GetFirst()+first-cur);
4571 if (nentries==-1 || cur+elem->GetNum()<=first+
nentries) {
4572 cur+=elem->GetNum();
4575 elem->SetNum(first+nentries-cur);
4581 Error(
"Process",
"data requires mass storage domain '%s'"
4582 " which is not accessible in this proof session",
4587 if (elements) elements->
Add(elem);
4593 while (
TPair *
msd = dynamic_cast<TPair*>(nextmsd())) {
4598 Int_t nmasters = submasters ? submasters->
GetSize() : -1;
4599 Int_t nelements = setelements ? setelements->
GetSize() : -1;
4600 for (
Int_t i=0; i<nmasters; i++) {
4603 TDSet set(dset->GetType(), dset->GetObjName(),
4604 dset->GetDirectory());
4605 for (
Int_t j = (i*nelements)/nmasters;
4606 j < ((i+1)*nelements)/nmasters;
4616 Warning(
"Process",
"not a TDSetElement object");
4620 if (set.GetListOfElements()->GetSize()>0) {
4628 PDB(kGlobal,1)
Info(
"Process",
4629 "Sending TDSet with %d elements to submaster %s",
4630 set.GetListOfElements()->GetSize(),
4633 usedmasters.
Add(sl);
4636 fSlaves.AddLast(sl);
4637 fSlaveProgress.Set(fSlaveProgress.GetSize()+1);
4638 fSlaveProgress[fSlaveProgress.GetSize()-1] = 0;
4639 fSlaveTotals.Set(fSlaveTotals.GetSize()+1);
4640 fSlaveTotals[fSlaveTotals.GetSize()-1] = nent;
4641 fSlaveBytesRead.Set(fSlaveBytesRead.GetSize()+1);
4642 fSlaveBytesRead[fSlaveBytesRead.GetSize()-1] = 0;
4643 fSlaveInitTime.Set(fSlaveInitTime.GetSize()+1);
4644 fSlaveInitTime[fSlaveInitTime.GetSize()-1] = -1.;
4645 fSlaveProcTime.Set(fSlaveProcTime.GetSize()+1);
4646 fSlaveProcTime[fSlaveProcTime.GetSize()-1] = -1.;
4647 fSlaveEvtRti.Set(fSlaveEvtRti.GetSize()+1);
4648 fSlaveEvtRti[fSlaveEvtRti.GetSize()-1] = -1.;
4649 fSlaveMBRti.Set(fSlaveMBRti.GetSize()+1);
4650 fSlaveMBRti[fSlaveMBRti.GetSize()-1] = -1.;
4651 fSlaveActW.Set(fSlaveActW.GetSize()+1);
4652 fSlaveActW[fSlaveActW.GetSize()-1] = 0;
4653 fSlaveTotS.Set(fSlaveTotS.GetSize()+1);
4654 fSlaveTotS[fSlaveTotS.GetSize()-1] = 0;
4655 fSlaveEffS.Set(fSlaveEffS.GetSize()+1);
4656 fSlaveEffS[fSlaveEffS.GetSize()-1] = 0.;
4658 Warning(
"Process",
"not a TSlave object");
4664 if ( !IsClient() ) HandleTimer(0);
4665 PDB(kGlobal,1)
Info(
"Process",
"Calling Collect");
4673 PDB(kGlobal,1)
Info(
"Process",
"Calling Merge Output");
4689 Warning(
"Progress",
"total events has changed for slave %s", sl->
GetName());
4694 for (i = 0; i < fSlaveTotals.GetSize(); i++) tot += fSlaveTotals[i];
4710 Info(
"Progress",
"%s: %lld %lld %f %f %f %f", sl->
GetName(),
4711 processed, bytesread, initTime, procTime, evtrti, mbrti);
4715 Warning(
"Progress",
"total events has changed for slave %s", sl->
GetName());
4734 for (i = 0; i < fSlaveTotals.GetSize(); i++) {
4735 tot += fSlaveTotals[i];
4757 srti = (nsrti > 0) ? srti / nerti : 0.;
4759 Progress(tot, proc, bytes, init, ptime, erti, srti);
4769 Info(
"Progress",
"%s: %lld %lld %lld %f %f %f %f %d %f", wrk->
GetOrdinal(),
4776 Warning(
"Progress",
"total events has changed for worker %s", wrk->
GetName());
4792 for (i = 0; i < fSlaveTotals.GetSize(); i++) {
4793 pisum.
fTotal += fSlaveTotals[i];
4834 if (fFeedbackTimer == 0)
return kFALSE;
4869 erti = (nerti > 0) ? erti / nerti : 0.;
4870 srti = (nsrti > 0) ? srti / nerti : 0.;
4881 m << tot << proc << bytes << init << ptime << erti << srti;
4902 if (fFeedbackTimer) {
4911 fFeedbackPeriod = 2000;
4913 fFeedbackTimer =
new TTimer;
4915 fFeedbackTimer->Start(fFeedbackPeriod, kTRUE);
const char * GetHost() const
const char * GetName() const
Returns name of object.
const char * GetSessionDir() const
Bool_t IsRetrieve() const
virtual const char * BaseName(const char *pathname)
Base name of a file name. Base name of /user/root is root.
virtual Int_t GetEntries() const
Long64_t Process(const char *selector, Long64_t nentries=-1, Option_t *option="")
Process the specified TSelector file 'nentries' times.
virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0)
Write this object to the current directory.
virtual const char * GetTitle() const
Returns title of object.
void AddFeedback(const char *name)
Add object to feedback list.
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
TNtuple * GetProgressPerf(Bool_t steal=kFALSE)
static FILE * SetErrorHandlerFile(FILE *ferr)
Set the file stream where to log (default stderr).
Ssiz_t Last(char c) const
Find last occurrence of a character c.
void Progress(Long64_t total, Long64_t processed)
Get query progress information.
ErrorHandlerFunc_t SetErrorHandler(ErrorHandlerFunc_t newhandler)
Set an errorhandler function. Returns the old handler.
virtual Int_t Fill(Double_t x)
Increment bin with abscissa X by 1.
const char * GetOutputFileName() const
virtual TString SplitAclicMode(const char *filename, TString &mode, TString &args, TString &io) const
This method split a filename of the form: ~~~ {.cpp} [path/]macro.C[+|++[k|f|g|O|c|s|d|v|-]][(args)]...
void SetMerging(Bool_t on=kTRUE)
Switch on/off merge timer.
const char * GetOrdinal() const
TProofProgressStatus * fProgressStatus
TFileInfo * GetFileInfo(const char *type="TTree")
Return the content of this element in the form of a TFileInfo.
virtual void Delete(Option_t *option="")
Remove all objects from the list AND delete all heap based objects.
UInt_t Convert(Bool_t toGMT=kFALSE) const
Convert fDatime from TDatime format to the standard time_t format.
void ValidateDSet(TDSet *dset)
Validate a TDSet.
Double_t RealTime()
Stop the stopwatch (if it is running) and return the realtime (in seconds) passed between the start a...
void SetWorkerOrdinal(const char *ordinal)
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
EExitStatus fExitStatus
status of query in progress
void Activate(TList *slaves=0)
Activate slave server list.
TSocket * GetSocket() const
virtual TDSetElement * Next(Long64_t totalEntries=-1)
Returns next TDSetElement.
Int_t AssertSelector(const char *selector_file)
Make sure that a valid selector object Return -1 in case of problems, 0 otherwise.
R__EXTERN Int_t gErrorIgnoreLevel
void StoreOutput(TList *out)
Store output list (may not be used in this class).
virtual const char * WorkingDirectory()
Return working directory.
virtual const char * GetName() const
Return name of this collection.
Int_t GetLearnEntries()
Return the number of entries in the learning phase.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
static TMD5 * FileChecksum(const char *file)
Returns checksum of specified file.
Long64_t GetEventsProcessed() const
Bool_t IsFinalized() const
virtual Bool_t SendProcessingProgress(Double_t, Double_t, Bool_t=kFALSE)
void SetMemValues(Long_t vmem=-1, Long_t rmem=-1, Bool_t master=kFALSE)
Set max memory values.
ClassImp(TSeqCollection) Int_t TSeqCollection TIter next(this)
Return index of object in collection.
const char Int_t const char TProof Int_t const char const char * msd
void Print(Option_t *option="") const
Dump the class content.
Collectable string class.
virtual void SetDirectory(TDirectory *dir)
By default when an histogram is created, it is added to the list of histogram objects in the current ...
void SetDir(const char *dir, Bool_t raw=kFALSE)
TProofLockPath * GetCacheLock()
const char * GetObjName() const
TObject * FindObject(const char *name) const
Find object using its name.
void SetValue(TObject *val)
virtual Int_t Send(const TMessage &mess)
Send a TMessage object.
This class represents a WWW compatible URL.
TString & ReplaceAll(const TString &s1, const TString &s2)
const char * GetDataDir() const
void SetWriteV3(Bool_t on=kTRUE)
Set/Reset the 'OldStreamer' bit in this instance and its elements.
virtual Int_t GetDimension() const
static void FilterLocalroot(TString &path, const char *url="root://dum/")
If 'path' is local and 'dsrv' is Xrootd, apply 'path.Localroot' settings, if any. ...
TMacro * GetSelecHdr() const
TQueryResult * GetQueryResult(const char *ref)
Get query result instances referenced 'ref' 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.
virtual Long64_t Finalize(Bool_t force=kFALSE, Bool_t sync=kFALSE)
Finalize query (may not be used in this class).
Bool_t fSaveResultsPerPacket
virtual void SetName(const char *name)
Change (i.e.
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
void StopProcess(Bool_t abort, Int_t timeout=-1)
Stop process after this event.
void MayNotUse(const char *method) const
Use this method to signal that a method (defined in a base class) may not be called in a derived clas...
const char * GetProtocol() const
void SetParameter(const char *par, const char *value)
Set input list parameter.
void Add(const char *mesg)
Add an error message.
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
Long64_t GetBytesRead() const
virtual Bool_t Merge(Bool_t=kTRUE)
Merge the files.
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...
TString fSelectorFileName
void SetupFeedback()
Setup reporting of feedback objects.
ERunStatus GetRunStatus() const
static Long_t GetVirtMemMax()
VirtMemMax getter.
const char * GetOptions() const
virtual int MakeDirectory(const char *name)
Make a directory.
virtual void MergeOutput(Bool_t savememvalues=kFALSE)
Merge objects in output the lists.
void SetLastUpdate(Double_t updtTime=0)
Update time stamp either with the passed value (if > 0) or with the current time. ...
virtual TObject * Get(const char *namecycle)
Return pointer to object identified by namecycle.
virtual Bool_t ChangeDirectory(const char *path)
Change directory.
void RemoveQueryResult(const char *ref)
Remove all query result instances referenced 'ref' from the list of results.
Bool_t HandleTimer(TTimer *timer)
Send progress and feedback to client.
Int_t AdoptFile(TFile *f)
Adopt a file already open.
TDSetElement * GetNextPacket(TSlave *slave, TMessage *r)
Get next packet for specified slave.
const char * GetFileName() const
UInt_t GetTypeOpt() const
virtual int Load(const char *module, const char *entry="", Bool_t system=kFALSE)
Load a shared library.
virtual const char * TempDirectory() const
Return a user configured or systemwide directory to create temporary files in.
void SetReadCalls(Long64_t readCalls)
virtual const char * DirName(const char *pathname)
Return the directory name in pathname.
virtual TDirectory * mkdir(const char *name, const char *title="")
Create a sub-directory and return a pointer to the created directory.
void RemoveFeedback(const char *name)
Remove object from feedback list.
void ResetFileCollection()
virtual TObject * FindObject(const char *name) const
Find an object in this list using its name.
Int_t Broadcast(const TMessage &mess, TList *slaves)
Broadcast a message to all slaves in the specified list.
virtual char * Which(const char *search, const char *file, EAccessMode mode=kFileExists)
Find location of file in a search path.
Bool_t HistoSameAxis(TH1 *h0, TH1 *h1)
Return kTRUE is the histograms 'h0' and 'h1' have the same binning and ranges on the axis (i...
virtual Int_t GetNbinsX() const
void SetOption(Option_t *option)
TMacro * GetSelecImp() const
const char * GetTopSessionTag() const
virtual Double_t GetEntries() const
return the current number of entries
virtual void SetInitTime()
Set the initialization time.
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
void SetDispatchTimer(Bool_t on=kTRUE)
Enable/disable the timer to dispatch pening events while processing.
TString & Insert(Ssiz_t pos, const char *s)
virtual TObject * At(Int_t idx) const
Returns the object at position idx. Returns 0 if idx is out of range.
static Float_t GetMemHWM()
MemHWM getter.
virtual int GetProcInfo(ProcInfo_t *info) const
Returns cpu and memory used by this process into the ProcInfo_t structure.
void MapOutputListToDataMembers() const
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
static TOutputListSelectorDataMap * FindInList(TCollection *coll)
Find a TOutputListSelectorDataMap in a collection.
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.
TString & Replace(Ssiz_t pos, Ssiz_t n, const char *s)
static const char * GetMacroPath()
Get macro search path. Static utility function.
Double_t GetProcTime() const
virtual void SetValue(const char *name, const char *value, EEnvLevel level=kEnvChange, const char *type=0)
Set the value of a resource or create a new resource.
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=1, Int_t netopt=0)
Create / open a file.
const char * GetObjName() const
TMessage * fProcessMessage
Histogram with packets being processed (owned by TPerfStats)
This class defines a UUID (Universally Unique IDentifier), also known as GUIDs (Globally Unique IDent...
virtual Int_t GetN() const
virtual void StopProcess(Bool_t abort, Bool_t stoptimer=kFALSE)
Stop process.
const char * Data() const
void SetStopTimer(Bool_t on=kTRUE, Bool_t abort=kFALSE, Int_t timeout=0)
Enable/disable the timer to stop/abort processing.
virtual TObject * ReadObject(const TClass *cl)
Read object from I/O buffer.
static void SetLastEntry(Long64_t lastentry)
Set the last entry before exception.
const char * GetDirectory() const
static struct mg_connection * fc(struct mg_context *ctx)
virtual int Unlink(const char *name)
Unlink, i.e. remove, a file.
virtual TObject * Clone(const char *newname="") const
Make a clone of an object using the Streamer facility.
Double_t dot(const TVector2 &v1, const TVector2 &v2)
void Stop()
Stop the stopwatch.
virtual void SetAutoFlush(Long64_t autof=-30000000)
This function may be called at the start of a program to change the default value for fAutoFlush...
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString...
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
TEventIter * fEvIter
period (ms) for sending intermediate results
Float_t GetEffSessions() const
This code implements the MD5 message-digest algorithm.
const char * GetMsd() const
The TNamed class is the base class for all named ROOT classes.
EQueryMode GetQueryMode(Option_t *mode=0) const
Find out the query mode based on the current setting and 'mode'.
virtual Bool_t IsEmpty() const
void IncEntries(Long64_t entries=1)
Long64_t GetBytesRead() const
static Long64_t GetFileBytesRead()
Static function returning the total number of bytes read from all files.
void StopFeedback()
Stop reporting of feedback objects.
Int_t GetQuerySeqNum() const
static EFileType GetType(const char *name, Option_t *option="", TString *prefix=0)
Resolve the file type as a function of the protocol field in 'name'.
void AddQueryResult(TQueryResult *q)
Add query result to the list, making sure that there are no duplicates.
virtual TObject * FindObject(const char *name) const
search object named name in the list of functions
R__EXTERN TVirtualMonitoringWriter * gMonitoringWriter
virtual Bool_t HandleTimer(TTimer *timer)
Execute action in response of a timer timing out.
virtual const char * Getenv(const char *env)
Get environment variable.
void DeleteDrawFeedback(TDrawFeedback *f)
Delete draw feedback object.
Int_t Collect(const TSlave *sl, Long_t timeout=-1, Int_t endtype=-1, Bool_t deactonfail=kFALSE)
Collect responses from slave sl.
TList * GetListOfElements() const
if(pyself &&pyself!=Py_None)
void SetDrawFeedbackOption(TDrawFeedback *f, Option_t *opt)
Set draw feedback option.
void ResetMergePrg()
Reset the merge progress notificator.
A sorted doubly linked list.
void Info(const char *location, const char *msgfmt,...)
TList * MergeFeedback()
Merge feedback lists.
Long64_t fProcessedRun
Read calls in this run.
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.
TProofProgressStatus * GetProgressStatus() const
TObject * GetValue(const char *keyname) const
Returns a pointer to the value associated with keyname as name of the key.
void Validate()
Validate the TDSet by opening files.
Int_t Atoi() const
Return integer value of string.
Bool_t IsParallel() const
void SetOutputFileName(const char *name)
Set the name of the output file; in the form of an Url.
static void GetMemValues(Long_t &vmax, Long_t &rmax)
Get memory usage.
virtual void SetupFeedback()
Set up feedback (may not be used in this class).
Long64_t GetMsgSizeHWM() const
static Long_t GetResMemMax()
ResMemMax getter.
void SetBytesRead(Long64_t bytesRead)
TList * GetOutputList() const
Get output list.
Method or function calling interface.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
void SetCurrentQuery(TQueryResult *q)
Set current query and save previous value.
const Bool_t kSortDescending
A container class for query results.
TDSetElement * Current() const
virtual Bool_t OutputFile(const char *url, Bool_t force)
Open merger output file.
void Error(const char *location, const char *msgfmt,...)
static void SetLimitsFinder(THLimitsFinder *finder)
This static function can be used to specify a finder derived from THLimitsFinder. ...
virtual Int_t SendAsynMessage(const char *msg, Bool_t lf=kTRUE)
Send an asychronous message to the master / client .
static void Start(TList *input, TList *output)
Initialize PROOF statistics run.
void SetInitTime()
Set init time.
TObject * GetParameter(const char *par) const
Get specified parameter.
Long64_t GetFirst() const
void SetFileName(const char *name)
void Feedback(TList *objs)
Feedback signal.
Int_t GetBufferSize() const
TFileMerger * GetFileMerger(Bool_t local=kFALSE)
Get instance of the file merger to be used in 'merge' mode.
virtual Bool_t Notify()
Notify when timer times out.
TObject * GetEntryList() const
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".
static Float_t GetMemStop()
MemStop getter.
static void Setup(TList *input)
Setup the PROOF input list with requested statistics and tracing options.
virtual Bool_t AddFile(TFile *source, Bool_t own, Bool_t cpProgress)
Add the TFile to this file merger and give ownership of the TFile to this object (unless kFALSE is re...
void HandleGetTreeHeader(TMessage *mess)
Handle tree header request.
const char * GetName() const
Returns name of object.
TSocket * GetSocket() const
void Clear(Option_t *option="")
Remove all objects from the list.
TDSetElement * GetNextPacket(TSlave *slave, TMessage *r)
Get next packet (may not be used in this class).
const char * GetFileName() const
const char * GetPrefix() const
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Return true if string ends with the specified string.
Class to manage histogram axis.
Float_t GetProcTime() const
R__EXTERN TSystem * gSystem
static void GetLocalServer(TString &dsrv)
Extract LOCALDATASERVER info in 'dsrv'.
const char * GetLibList() const
1-D histogram with a int per channel (see TH1 documentation)}
static Bool_t IsStandardDraw(const char *selec)
Find out if this is a standard selection used for Draw actions (either TSelectorDraw, TProofDraw or deriving from them).
TDirectory * GetDirectory() const
This class provides file copy and merging services.
virtual Int_t GetValue(const char *name, Int_t dflt)
Returns the integer value for a resource.
virtual const char * ClassName() const
Returns name of class to which the object belongs.
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.
virtual TObject * Remove(TObject *obj)
Remove object from the list.
Long64_t GetTotalEntries() const
virtual TEnvRec * Lookup(const char *n)
Loop over all resource records and return the one with name.
void AddOutput(TList *out)
Incorporate the content of the received output list 'out' into the final output list fOutput...
void SetMerged(Bool_t merged=kTRUE)
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
virtual Bool_t JoinProcess(TList *workers)
Prepares the given list of new workers to join a progressing process.
Bool_t TestBit(UInt_t f) const
Bool_t SetDataMembers(TSelector *sel) const
Given an output list, set the data members of a TSelector.
char * Form(const char *fmt,...)
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 Bool_t SendProcessingStatus(const char *, Bool_t=kFALSE)
const char * AsString() const
Return UUID as string. Copy string immediately since it will be reused.
void SaveSource(FILE *fp)
Save macro source in file pointer fp.
virtual Int_t GetNbinsZ() const
A TEventList object is a list of selected events (entries) in a TTree.
Handles synchronous and a-synchronous timer events.
TArrayL64 fSlaveBytesRead
virtual const char * GetName() const
Returns name of object.
void SetLastMergingMsg(TObject *obj)
Set the message to be notified in case of exception.
Int_t GetProtocol() const
The ROOT global object gROOT contains a list of all defined classes.
virtual Bool_t HandleTimer(TTimer *timer)
Send feedback objects to client.
Int_t ReinitSelector(TQueryResult *qr)
Reinitialize fSelector using the selector files in the query result.
static Int_t GetFileReadCalls()
Static function returning the total number of read calls from all files.
const char * GetCacheDir() const
void SetName(const char *name)
void Reset(Detail::TBranchProxy *x)
void HandleRecvHisto(TMessage *mess)
Receive histo from slave.
Int_t SendFile(const char *file, Int_t opt=(kBinary|kForward|kCp|kCpBin), const char *rfile=0, TSlave *sl=0)
Send a file to master or slave servers.
void Warning(const char *location, const char *msgfmt,...)
Long64_t GetEntries() const
TList * GetFailedPackets()
Long64_t Finalize(Bool_t force=kFALSE, Bool_t sync=kFALSE)
Finalize query (may not be used in this class).
void FeedBackCanvas(const char *name, Bool_t create)
Create/destroy a named canvas for feedback.
const Double_t * GetBuffer() const
void DeleteValues()
Remove all (key,value) pairs from the map AND delete the values when they are allocated on the heap...
Bool_t Matches(const char *ref)
Return TRUE if reference ref matches.
Int_t AddOutputObject(TObject *obj)
Incorporate the received object 'obj' into the output list fOutput.
TDatime GetStartTime() const
void InitWithPrototype(TClass *cl, const char *method, const char *proto, Bool_t objectIsConst=kFALSE, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch)
Initialize the method invocation environment.
const char * GetUrl(Bool_t withDeflt=kFALSE) const
Return full URL.
Long64_t Merge(TCollection *list)
Merge objects from the list into this object.
static TEventIter * Create(TDSet *dset, TSelector *sel, Long64_t first, Long64_t num)
Create and instance of the appropriate iterator.
virtual Int_t FindBin(Double_t x)
Find bin number corresponding to abscissa x.
void UpdateProgressInfo()
Update fProgressStatus.
static TSelector * GetSelector(const char *filename)
The code in filename is loaded (interpreted or compiled, see below), filename must contain a valid cl...
static unsigned int total
virtual Int_t RedirectOutput(const char *name, const char *mode="a", RedirectHandle_t *h=0)
Redirect standard output (stdout, stderr) to the specified file.
void SetHost(const char *host)
TString & Remove(Ssiz_t pos)
TList * GetInputList()
Get input list.
Bool_t IsClient() const
Is the player running on the client?
Class used by TMap to store (key,value) pairs.
Int_t GetBufferLength() const
TList * GetListOfActiveSlaves() const
virtual const char * GetIncludePath()
Get the list of include path.
virtual Int_t GetSize() const
virtual void SetDirectory(TDirectory *dir)
Change the tree's directory.
virtual void MergeOutput(Bool_t savememvalues=kFALSE)
Merge output (may not be used in this class).
void RestorePreviousQuery()
void ResetParam()
Reset parameter list. To be used before the first call the SetParam().
TList * GetMergeList() const
virtual Func_t DynFindSymbol(const char *module, const char *entry)
Find specific entry point in specified library.
virtual const char * GetName() const
Returns name of object.
virtual const char * HostName()
Return the system's host name.
void RedirectOutput(Bool_t on=kTRUE)
Control output redirection to TProof::fLogFileW.
char * DynamicPathName(const char *lib, Bool_t quiet=kFALSE)
Find a dynamic library called lib using the system search paths.
Int_t Lock()
Locks the directory.
Describe directory structure in memory.
void Feedback(TList *objs)
Get list of feedback objects.
TMap implements an associative array of (key,value) pairs using a THashTable for efficient retrieval ...
ClassImp(TMCParticle) void TMCParticle printf(": p=(%7.3f,%7.3f,%9.3f) ;", fPx, fPy, fPz)
void HandleGetTreeHeader(TMessage *mess)
Handle tree header request.
const char * GetOrdinal() const
virtual void SendInputDataFile()
Send the input data objects to the master; the objects are taken from the dedicated list and / or the...
EExitStatus GetExitStatus() const
ErrorHandlerFunc_t fErrorHandler
tdset for current processing
virtual TMD5 * Checksum()
Returns checksum of the current content.
virtual TDSetElement * GetNextPacket(TSlave *sl, TMessage *r)
Get next packet.
#define R__LOCKGUARD(mutex)
virtual void Reset()
Reset or initialize access to the elements.
Bool_t MergeOutputFiles()
Merge output in files.
virtual void DispatchOneEvent(Bool_t pendingOnly=kFALSE)
Dispatch a single event.
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...
Int_t Unlock()
Unlock the directory.
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
virtual void Clear(Option_t *option="")
Remove all objects from the list.
void SetFailedPackets(TList *list)
Bool_t IsRegister() const
void SetSelectorDataMembersFromOutputList()
Set the selector's data members: find the mapping of data members to otuput list entries in the outpu...
Long64_t Finalize(Int_t query=-1, Bool_t force=kFALSE)
Finalize the qry-th query in fQueries.
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 Bool_t Add(TF1 *h1, Double_t c1=1, Option_t *option="")
Performs the operation: this = this + c1*f1 if errors are defined (see TH1::Sumw2), errors are also recalculated.
virtual void Add(const TEventList *list)
Merge contents of alist with this list.
void Throw(int code)
If an exception context has been set (using the TRY and RETRY macros) jump back to where it was set...
virtual Int_t DrawCanvas(TObject *obj)
Draw the object if it is a canvas.
Mother of all ROOT objects.
void Lookup(Bool_t removeMissing=kFALSE, TList **missingFiles=0)
Resolve the end-point URL for the current elements of this data set If the removeMissing option is se...
const char Int_t const char TProof * proof
virtual TObject * First() const
Return the first object in the list. Returns 0 when list is empty.
void StopFeedback()
Stop feedback.
virtual Int_t GetNbinsY() const
virtual Long64_t * GetList() const
typedef void((*Func_t)())
TObject * HandleHistogram(TObject *obj, Bool_t &merged)
Low statistic histograms need a special treatment when using autobin.
TUrl * GetCurrentUrl() const
Return the current url.
Int_t Collect(ESlaves list=kActive, Long_t timeout=-1, Int_t endtype=-1, Bool_t deactonfail=kFALSE)
Collect responses from the slave servers.
void Progress(Long64_t total, Long64_t processed)
Report progress (may not be used in this class).
static void SetMacroPath(const char *newpath)
Set or extend the macro search path.
virtual Bool_t cd(const char *path=0)
Change current directory to "this" directory.
R__EXTERN TProofServ * gProofServ
Int_t AddOutputObject(TObject *obj)
Incorporate output object (may not be used in this class).
virtual void Add(TObject *obj)
Int_t Incorporate(TObject *obj, TList *out, Bool_t &merged)
Incorporate object 'newobj' in the list 'outlist'.
Class that contains a list of TFileInfo's and accumulated meta data information about its entries...
void Execute(const char *, const char *, int *=0)
Execute method on this object with the given parameter string, e.g.
void SetObject(TObject *object)
Set the object to be notified at time out.
void Progress(Long64_t total, Long64_t processed)
Progress signal.
TFileCollection * GetFileCollection()
Get instance of the file collection to be used in 'dataset' mode.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
void SetParam(Long_t l)
Add a long method parameter.
Bool_t IsTopMaster() const
const char * GetDir(Bool_t raw=kFALSE) const
ClassImp(TSlaveInfo) Int_t TSlaveInfo const TSlaveInfo * si
Used to sort slaveinfos by ordinal.
void StopProcess(Bool_t abort, Int_t timeout=-1)
Stop the process after this event.
TVirtualPacketizer * fPacketizer
virtual TIterator * MakeIterator(Bool_t dir=kIterForward) const
Return a list iterator.
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.
const char * GetType() const
TObject * GetOutput(const char *name) const
Get output object by name.
Int_t GetTotSessions() const
Float_t GetMaxProcTime() const
void SetExitStatus(Int_t est)
static void Stop()
Terminate the PROOF statistics run.
virtual Long64_t GetEntries() const
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.
A TTree object has a header with a name and a title.
static void SetLastMsg(const char *lastmsg)
Set the message to be sent back in case of exceptions.
Class describing a generic file including meta information.
Bool_t fCreateSelObj
the latest selector
virtual Bool_t ExpandPathName(TString &path)
Expand a pathname getting rid of special shell characters like ~.
TList * GetConfigParams(Bool_t steal=kFALSE)
virtual void PrintFiles(Option_t *options)
Print list of files being merged.
virtual Int_t IndexOf(const TObject *obj) const
TClass * GetClass() const
Bool_t IsParallel() const
True if in parallel mode.
Float_t GetInitTime() const
static void output(int code)
A TSelector object is used by the TTree::Draw, TTree::Scan, TTree::Process to navigate in a TTree and...
static void ErrorHandler(Int_t level, Bool_t abort, const char *location, const char *msg)
The PROOF error handler function.
virtual void Reset()
Reset merger file list.
virtual void SetTitle(const char *title="")
Change (i.e. set) the title of the TNamed.
virtual TObject * FindObject(const char *name) const
Must be redefined in derived classes.
A List of entry numbers in a TTree or TChain.
static void AutoBinFunc(TString &key, Double_t &xmin, Double_t &xmax, Double_t &ymin, Double_t &ymax, Double_t &zmin, Double_t &zmax)
Int_t GetParallel() const
Returns number of slaves active in parallel mode.
static void SetMemValues()
Record memory usage.
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()).
virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0)
Write all objects in this collection.
void NotifyMemory(TObject *obj)
Printout the memory record after merging object 'obj' This record is used by the memory monitor...
Bool_t IsValid() const
Return true if the method call has been properly initialized and is usable.
void StoreOutput(TList *out)
Store received output list.
const char * GetFile() const
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...
void SetProcessing(Bool_t on=kTRUE)
Set processing bit according to 'on'.
void Progress(Long64_t total, Long64_t processed)
Progress signal.
virtual ~TProofPlayer()
Destructor.
virtual Long64_t Merge(TCollection *list)
Add all histograms in the collection to this histogram.
virtual void SetIncludePath(const char *includePath)
IncludePath should contain the list of compiler flags to indicate where to find user defined header f...
ClassImp(TProofPlayerLocal) Long64_t TProofPlayerLocal
Process the specified TSelector object 'nentries' times.
const char * GetDirectory() const
Return directory where to look for object.
static Int_t SendInputData(TQueryResult *qr, TProof *p, TString &emsg)
Send the input data file to the workers.
void Feedback(TList *objs)
Set feedback list (may not be used in this class).
TDrawFeedback * CreateDrawFeedback(TProof *p)
Draw feedback creation proxy.
Bool_t fSavePartialResults
Int_t Remove(TDSetElement *elem, Bool_t deleteElem=kTRUE)
Remove TDSetElement 'elem' from the list.
const char * GetDataDirOpts() const
virtual Int_t AddWorkers(TList *workers)
Adds new workers.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.