99 "Config files",
"*.conf",
105 "Package files",
"*.par",
111 "C files",
"*.[C|c]*",
122 "PROOF_ProcTimeHist",
283 fSync->SetToolTipText(
"Default Process Mode");
288 fBtnAdd->SetToolTipText(
"Add server to the list");
289 fBtnAdd->Connect(
"Clicked()",
"TSessionServerFrame",
this,
290 "OnBtnAddClicked()");
293 fBtnConnect->Connect(
"Clicked()",
"TSessionServerFrame",
this,
294 "OnBtnConnectClicked()");
295 fBtnConnect->SetToolTipText(
"Connect to the selected server");
297 fTxtConfig->Connect(
"DoubleClicked()",
"TSessionServerFrame",
this,
298 "OnConfigFileClicked()");
300 fTxtName->Connect(
"TextChanged(char*)",
"TSessionServerFrame",
this,
301 "SettingsChanged()");
302 fTxtAddress->Connect(
"TextChanged(char*)",
"TSessionServerFrame",
this,
303 "SettingsChanged()");
304 fTxtConfig->Connect(
"TextChanged(char*)",
"TSessionServerFrame",
this,
305 "SettingsChanged()");
306 fTxtUsrName->Connect(
"TextChanged(char*)",
"TSessionServerFrame",
this,
307 "SettingsChanged()");
308 fSync->Connect(
"Clicked()",
"TSessionServerFrame",
this,
309 "SettingsChanged()");
310 fLogLevel->Connect(
"ValueChanged(Long_t)",
"TSessionServerFrame",
this,
311 "SettingsChanged()");
312 fLogLevel->Connect(
"ValueSet(Long_t)",
"TSessionServerFrame",
this,
313 "SettingsChanged()");
314 fNumPort->Connect(
"ValueChanged(Long_t)",
"TSessionServerFrame",
this,
315 "SettingsChanged()");
316 fNumPort->Connect(
"ValueSet(Long_t)",
"TSessionServerFrame",
this,
317 "SettingsChanged()");
328 if ((
fViewer->GetActDesc()->fLocal) ||
335 (
fViewer->GetActDesc()->fSync != issync)) {
389 "Deleting Local Sessions is not allowed !",
395 m.Form(
"Are you sure to delete the server \"%s\"",
410 fViewer->GetSessionHierarchy()->DeleteItem(item);
413 item =
fViewer->GetSessionHierarchy()->FindChildByData(
414 fViewer->GetSessionItem(), (
void *)obj);
416 fViewer->GetSessionHierarchy()->ClearHighlighted();
417 fViewer->GetSessionHierarchy()->OpenItem(item);
418 fViewer->GetSessionHierarchy()->HighlightItem(item);
419 fViewer->GetSessionHierarchy()->SetSelected(item);
420 fViewer->GetSessionHierarchy()->ClearViewPort();
422 fViewer->OnListTreeClicked(item, 1, 0, 0);
447 fViewer->GetActDesc()->fConfigFile =
"";
466 fViewer->GetStatusBar()->GetBarPart(0)->ShowFrame(
fViewer->GetConnectProg());
469 "TSessionViewer",
fViewer,
"StartupMessage(char *,Bool_t,Int_t,Int_t)");
473 if (address ==
"lite://") {
479 url +=
"@"; url += address.
Data();
488 if (!
fViewer->GetActDesc()->fProofMgr ||
489 !
fViewer->GetActDesc()->fProofMgr->IsValid()) {
491 fViewer->GetStatusBar()->GetBarPart(0)->HideFrame(
fViewer->GetConnectProg());
503 fViewer->UpdateListOfSessions();
505 TList *sessions =
fViewer->GetActDesc()->fProofMgr->QuerySessions(
"");
507 TIter nextp(sessions);
512 fViewer->GetActDesc()->fProof =
515 fViewer->GetActDesc()->fProof->SetAlias(
fViewer->GetActDesc()->fName);
523 if (
fViewer->GetCascadeMenu()->IsEntryChecked(41+
i)) {
525 fViewer->GetActDesc()->fNbHistos++;
530 fViewer->GetActDesc()->fProof->Connect(
"Feedback(TList *objs)",
531 "TSessionQueryFrame",
fViewer->GetQueryFrame(),
532 "Feedback(TList *objs)");
537 fViewer->GetActDesc()->fProof->ClearFeedback();
544 if (
fViewer->GetActDesc()->fProof == 0) {
545 if (
fViewer->GetActDesc()->fProofMgr->IsValid()) {
546 fViewer->GetActDesc()->fProof =
fViewer->GetActDesc()->fProofMgr->CreateSession(
547 fViewer->GetActDesc()->fConfigFile);
549 sessions =
fViewer->GetActDesc()->fProofMgr->QuerySessions(
"");
553 fViewer->GetActDesc()->fProof->SetAlias(
fViewer->GetActDesc()->fName);
560 if (
fViewer->GetActDesc()->fProof) {
561 fViewer->GetActDesc()->fConfigFile =
fViewer->GetActDesc()->fProof->GetConfFile();
562 fViewer->GetActDesc()->fUserName =
fViewer->GetActDesc()->fProof->GetUser();
563 fViewer->GetActDesc()->fPort =
fViewer->GetActDesc()->fProof->GetPort();
564 fViewer->GetActDesc()->fLogLevel =
fViewer->GetActDesc()->fProof->GetLogLevel();
565 if (
fViewer->GetActDesc()->fLogLevel < 0)
566 fViewer->GetActDesc()->fLogLevel = 0;
567 if (
fViewer->GetActDesc()->fProof->IsLite())
568 fViewer->GetActDesc()->fAddress =
"lite://";
570 fViewer->GetActDesc()->fAddress =
fViewer->GetActDesc()->fProof->GetMaster();
574 fViewer->UpdateListOfSessions();
577 if (
fViewer->GetActDesc()->fProof &&
578 fViewer->GetActDesc()->fProof->IsValid()) {
580 fViewer->GetActDesc()->fProof->SetLogLevel(
fViewer->GetActDesc()->fLogLevel);
582 fViewer->GetActDesc()->fProof->SetQueryMode(
fViewer->GetActDesc()->fSync ?
592 fViewer->OnListTreeClicked(item, 1, 0, 0);
593 fViewer->GetSessionHierarchy()->ClearViewPort();
597 fViewer->GetActDesc()->fProof->Connect(
"Progress(Long64_t,Long64_t)",
598 "TSessionQueryFrame",
fViewer->GetQueryFrame(),
599 "Progress(Long64_t,Long64_t)");
600 fViewer->GetActDesc()->fProof->Connect(
"Progress(Long64_t,Long64_t,Long64_t,Float_t,Float_t,Float_t,Float_t)",
601 "TSessionQueryFrame",
fViewer->GetQueryFrame(),
602 "Progress(Long64_t,Long64_t,Long64_t,Float_t,Float_t,Float_t,Float_t)");
603 fViewer->GetActDesc()->fProof->Connect(
"Progress(Long64_t,Long64_t,Long64_t,Float_t,Float_t,Float_t,Float_t,Int_t,Int_t,Float_t)",
604 "TSessionQueryFrame",
fViewer->GetQueryFrame(),
605 "Progress(Long64_t,Long64_t,Long64_t,Float_t,Float_t,Float_t,Float_t,Int_t,Int_t,Float_t)");
606 fViewer->GetActDesc()->fProof->Connect(
"StopProcess(Bool_t)",
607 "TSessionQueryFrame",
fViewer->GetQueryFrame(),
608 "IndicateStop(Bool_t)");
609 fViewer->GetActDesc()->fProof->Connect(
610 "ResetProgressDialog(const char*,Int_t,Long64_t,Long64_t)",
611 "TSessionQueryFrame",
fViewer->GetQueryFrame(),
612 "ResetProgressDialog(const char*,Int_t,Long64_t,Long64_t)");
616 fViewer->ChangeRightLogo(
"monitor01.xpm");
620 fViewer->GetActDesc()->fProof->Connect(
"QueryResultReady(char *)",
621 "TSessionViewer",
fViewer,
"QueryResultReady(char *)");
624 msg.
Form(
"PROOF Cluster %s ready",
fViewer->GetActDesc()->fName.Data());
626 fViewer->GetSessionFrame()->ProofInfos();
627 fViewer->UpdateListOfPackages();
628 fViewer->GetSessionFrame()->UpdateListOfDataSets();
630 if (
fViewer->GetActDesc()->fAutoEnable) {
635 if (
fViewer->GetActDesc()->fProof->EnablePackage(package->
fName) != 0)
636 Error(
"Submit",
"Enable package failed");
639 fViewer->GetSessionFrame()->UpdatePackages();
646 fViewer->GetStatusBar()->GetBarPart(0)->HideFrame(
fViewer->GetConnectProg());
666 fViewer->GetSessionHierarchy()->ClearHighlighted();
667 fViewer->GetSessionHierarchy()->OpenItem(
fViewer->GetSessionItem());
668 fViewer->GetSessionHierarchy()->HighlightItem(
fViewer->GetSessionItem());
669 fViewer->GetSessionHierarchy()->SetSelected(
fViewer->GetSessionItem());
671 fViewer->GetSessionHierarchy()->ClearViewPort();
693 if ((!
fTxtName->GetBuffer()->GetTextLength()) ||
697 "At least one required field is empty !",
739 fViewer->GetSessionItem(), desc->fName.Data(),
741 fViewer->GetSessionHierarchy()->SetToolTipItem(item,
"Proof Session");
743 fViewer->GetSessionHierarchy()->ClearHighlighted();
744 fViewer->GetSessionHierarchy()->OpenItem(
fViewer->GetSessionItem());
745 fViewer->GetSessionHierarchy()->OpenItem(item);
746 fViewer->GetSessionHierarchy()->HighlightItem(item);
747 fViewer->GetSessionHierarchy()->SetSelected(item);
748 fViewer->GetSessionHierarchy()->ClearViewPort();
750 fViewer->OnListTreeClicked(item, 1, 0, 0);
763 fViewer->OnListTreeClicked(
fViewer->GetSessionHierarchy()->GetSelected(),
818 fNumPort->GetNumberEntry()->SelectAll();
819 fNumPort->GetNumberEntry()->SetFocus();
826 fLogLevel->GetNumberEntry()->SelectAll();
910 for (
i=0;
i<17;
i+=2) {
930 fBtnGetQueries->SetToolTipText(
"Get List of Queries from the server");
932 fBtnShowLog->SetToolTipText(
"Show Session log (opens log window)");
939 tf =
fTab->AddTab(
"Commands");
955 fCommandTxt->Connect(
"ReturnPressed()",
"TSessionFrame",
this,
972 tf =
fTab->AddTab(
"Packages");
990 fChkMulti->SetToolTipText(
"Enable multiple selection in the package list");
994 fBtnAdd->SetToolTipText(
"Add a package to the list");
998 fBtnRemove->SetToolTipText(
"Remove package from the list");
1002 fBtnUp->SetToolTipText(
"Move package one step upward in the list");
1006 fBtnDown->SetToolTipText(
"Move package one step downward in the list");
1044 fBtnUpload->SetToolTipText(
"Upload selected package(s) to the server");
1048 fBtnEnable->SetToolTipText(
"Enable selected package(s) on the server");
1052 fBtnDisable->SetToolTipText(
"Disable selected package(s) on the server");
1056 fBtnClear->SetToolTipText(
"Clear all packages on the server");
1064 fBtnShow->SetToolTipText(
"Show (list) available packages on the server");
1068 fBtnShowEnabled->SetToolTipText(
"Show (list) enabled packages on the server");
1074 fChkEnable->SetToolTipText(
"Enable packages on the server at startup time");
1078 tf =
fTab->AddTab(
"DataSets");
1097 fBtnUploadDSet->SetToolTipText(
"Upload a dataset to the cluster");
1101 fBtnRemoveDSet->SetToolTipText(
"Remove dataset from the cluster");
1109 fBtnRefresh->SetToolTipText(
"Refresh List of DataSet/Files present on the cluster");
1120 tf =
fTab->AddTab(
"Options");
1131 fApplyLogLevel->SetToolTipText(
"Apply currently selected log level");
1146 fApplyParallel->SetToolTipText(
"Apply currently selected parallel nodes");
1158 fBtnShowLog->Connect(
"Clicked()",
"TSessionFrame",
this,
1159 "OnBtnShowLogClicked()");
1160 fBtnNewQuery->Connect(
"Clicked()",
"TSessionFrame",
this,
1161 "OnBtnNewQueryClicked()");
1163 "OnBtnGetQueriesClicked()");
1165 fChkEnable->Connect(
"Toggled(Bool_t)",
"TSessionFrame",
this,
1166 "OnStartupEnable(Bool_t)");
1167 fChkMulti->Connect(
"Toggled(Bool_t)",
"TSessionFrame",
this,
1168 "OnMultipleSelection(Bool_t)");
1169 fBtnAdd->Connect(
"Clicked()",
"TSessionFrame",
this,
1170 "OnBtnAddClicked()");
1171 fBtnRemove->Connect(
"Clicked()",
"TSessionFrame",
this,
1172 "OnBtnRemoveClicked()");
1173 fBtnUp->Connect(
"Clicked()",
"TSessionFrame",
this,
1174 "OnBtnUpClicked()");
1175 fBtnDown->Connect(
"Clicked()",
"TSessionFrame",
this,
1176 "OnBtnDownClicked()");
1178 "OnApplyLogLevel()");
1180 "OnApplyParallel()");
1181 fBtnUpload->Connect(
"Clicked()",
"TSessionFrame",
this,
1182 "OnUploadPackages()");
1183 fBtnEnable->Connect(
"Clicked()",
"TSessionFrame",
this,
1184 "OnEnablePackages()");
1185 fBtnDisable->Connect(
"Clicked()",
"TSessionFrame",
this,
1186 "OnDisablePackages()");
1187 fBtnClear->Connect(
"Clicked()",
"TSessionFrame",
this,
1188 "OnClearPackages()");
1190 "ShowEnabledPackages()");
1195 "OnBtnUploadDSet()");
1197 "OnBtnRemoveDSet()");
1199 "OnBtnVerifyDSet()");
1200 fBtnRefresh->Connect(
"Clicked()",
"TSessionFrame",
this,
1201 "UpdateListOfDataSets()");
1212 if (
fViewer->GetActDesc()->fLocal) {
1213 buf.
Form(
"*** Local Session on %s ***",
gSystem->HostName());
1219 fInfoLine[3]->SetText(
"Working directory :");
1236 if (userGroup)
delete userGroup;
1242 if (!
fViewer->GetActDesc()->fConnected ||
1243 !
fViewer->GetActDesc()->fAttached ||
1244 !
fViewer->GetActDesc()->fProof ||
1245 !
fViewer->GetActDesc()->fProof->IsValid())
1248 if (!
fViewer->GetActDesc()->fProof->IsMaster()) {
1249 if (
fViewer->GetActDesc()->fProof->IsParallel())
1250 buf.
Form(
"*** Connected to %s (parallel mode, %d workers) ***",
1251 fViewer->GetActDesc()->fProof->GetMaster(),
1252 fViewer->GetActDesc()->fProof->GetParallel());
1254 buf.
Form(
"*** Connected to %s (sequential mode) ***",
1255 fViewer->GetActDesc()->fProof->GetMaster());
1257 fInfoLine[1]->SetText(
"Port number : ");
1258 buf.
Form(
"%d",
fViewer->GetActDesc()->fProof->GetPort());
1261 buf.
Form(
"%s",
fViewer->GetActDesc()->fProof->GetUser());
1263 fInfoLine[5]->SetText(
"Client protocol version : ");
1264 buf.
Form(
"%d",
fViewer->GetActDesc()->fProof->GetClientProtocol());
1266 fInfoLine[7]->SetText(
"Remote protocol version : ");
1267 buf.
Form(
"%d",
fViewer->GetActDesc()->fProof->GetRemoteProtocol());
1270 buf.
Form(
"%d",
fViewer->GetActDesc()->fProof->GetLogLevel());
1272 fInfoLine[11]->SetText(
"Session unique tag : ");
1273 buf.
Form(
"%s",
fViewer->GetActDesc()->fProof->IsValid() ?
1274 fViewer->GetActDesc()->fProof->GetSessionTag() :
" ");
1276 fInfoLine[13]->SetText(
"Total MB's processed :");
1277 buf.
Form(
"%.2f",
float(
fViewer->GetActDesc()->fProof->GetBytesRead())/(1024*1024));
1279 fInfoLine[15]->SetText(
"Total real time used (s) :");
1280 buf.
Form(
"%.3f",
fViewer->GetActDesc()->fProof->GetRealTime());
1282 fInfoLine[17]->SetText(
"Total CPU time used (s) :");
1283 buf.
Form(
"%.3f",
fViewer->GetActDesc()->fProof->GetCpuTime());
1287 if (
fViewer->GetActDesc()->fProof->IsParallel())
1288 buf.
Form(
"*** Master server %s (parallel mode, %d workers) ***",
1289 fViewer->GetActDesc()->fProof->GetMaster(),
1290 fViewer->GetActDesc()->fProof->GetParallel());
1292 buf.
Form(
"*** Master server %s (sequential mode) ***",
1293 fViewer->GetActDesc()->fProof->GetMaster());
1295 fInfoLine[1]->SetText(
"Port number : ");
1296 buf.
Form(
"%d",
fViewer->GetActDesc()->fProof->GetPort());
1299 buf.
Form(
"%s",
fViewer->GetActDesc()->fProof->GetUser());
1301 fInfoLine[5]->SetText(
"Protocol version : ");
1302 buf.
Form(
"%d",
fViewer->GetActDesc()->fProof->GetClientProtocol());
1305 buf.
Form(
"%s",
fViewer->GetActDesc()->fProof->GetImage());
1307 fInfoLine[9]->SetText(
"Config directory : ");
1308 buf.
Form(
"%s",
fViewer->GetActDesc()->fProof->GetConfDir());
1310 fInfoLine[11]->SetText(
"Config file : ");
1311 buf.
Form(
"%s",
fViewer->GetActDesc()->fProof->GetConfFile());
1313 fInfoLine[13]->SetText(
"Total MB's processed :");
1314 buf.
Form(
"%.2f",
float(
fViewer->GetActDesc()->fProof->GetBytesRead())/(1024*1024));
1316 fInfoLine[15]->SetText(
"Total real time used (s) :");
1317 buf.
Form(
"%.3f",
fViewer->GetActDesc()->fProof->GetRealTime());
1319 fInfoLine[17]->SetText(
"Total CPU time used (s) :");
1320 buf.
Form(
"%.3f",
fViewer->GetActDesc()->fProof->GetCpuTime());
1334 if (
fViewer->GetActDesc()->fLocal)
return;
1347 if (
fViewer->GetActDesc()->fConnected &&
fViewer->GetActDesc()->fAttached &&
1348 fViewer->GetActDesc()->fProof &&
fViewer->GetActDesc()->fProof->IsValid() &&
1349 fViewer->GetActDesc()->fProof->IsParallel()) {
1355 TList *dsetlist = 0;
1360 TIter nextdset(dsetlist);
1361 while ((dsetname = (
TObjString *)nextdset())) {
1365 dsetname->
GetName(), dsetname);
1367 TList *dsetfilelist =
fViewer->GetActDesc()->fProof->GetDataSet(
1368 dsetname->
GetName())->GetList();
1370 TIter nextdsetfile(dsetfilelist);
1371 while ((dsetfilename = (
TFileInfo *)nextdsetfile())) {
1372 if (!
fDataSetTree->FindItemByObj(dsetitem, dsetfilename)) {
1376 dsetfilename, dseticon, dseticon);
1397 if (
fViewer->GetActDesc()->fLocal)
return;
1412 if (obj &&
fViewer->GetActDesc()->fProof &&
1413 fViewer->GetActDesc()->fProof->IsValid()) {
1426 if (
fViewer->GetActDesc()->fLocal)
return;
1441 if (obj &&
fViewer->GetActDesc()->fProof &&
1442 fViewer->GetActDesc()->fProof->IsValid()) {
1453 if (
fViewer->GetActDesc()->fLocal)
return;
1455 if (
fViewer->GetActDesc()->fProof &&
1456 fViewer->GetActDesc()->fProof->IsValid()) {
1458 fViewer->GetActDesc()->fProof->SetLogLevel(
fViewer->GetActDesc()->fLogLevel);
1460 fViewer->GetSessionFrame()->ProofInfos();
1469 if (
fViewer->GetActDesc()->fLocal)
return;
1471 if (
fViewer->GetActDesc()->fProof &&
1472 fViewer->GetActDesc()->fProof->IsValid()) {
1474 fViewer->GetActDesc()->fProof->SetParallel(nodes);
1476 fViewer->GetSessionFrame()->ProofInfos();
1493 fViewer->GetActDesc()->fAutoEnable =
on;
1526 if (
fViewer->GetActDesc()->fLocal)
return;
1528 if (
fViewer->GetActDesc()->fProof &&
1529 fViewer->GetActDesc()->fProof->IsValid()) {
1533 TIter next(&selected);
1534 while ((obj = next())) {
1536 if (
fViewer->GetActDesc()->fProof->UploadPackage(
name.Data()) != 0)
1537 Error(
"Submit",
"Upload package failed");
1542 dynamic_cast<TPackageDescription *>(o);
1544 package->fUploaded =
kTRUE;
1546 fClient->GetPicture(
"package_delete.xpm"));
1562 if (
fViewer->GetActDesc()->fLocal)
return;
1564 if (
fViewer->GetActDesc()->fProof &&
1565 fViewer->GetActDesc()->fProof->IsValid()) {
1570 TIter next(&selected);
1571 while ((obj = next())) {
1576 dynamic_cast<TPackageDescription *>(o);
1578 if (!package->fUploaded) {
1579 if (
fViewer->GetActDesc()->fProof->UploadPackage(
name.Data()) != 0)
1580 Error(
"Submit",
"Upload package failed");
1582 package->fUploaded =
kTRUE;
1584 fClient->GetPicture(
"package_delete.xpm"));
1588 if (
fViewer->GetActDesc()->fProof->EnablePackage(
name) != 0)
1589 Error(
"Submit",
"Enable package failed");
1591 package->fEnabled =
kTRUE;
1608 if (
fViewer->GetActDesc()->fLocal)
return;
1610 if (
fViewer->GetActDesc()->fProof &&
1611 fViewer->GetActDesc()->fProof->IsValid()) {
1615 TIter next(&selected);
1616 while ((obj = next())) {
1618 if (
fViewer->GetActDesc()->fProof->ClearPackage(
name) != 0)
1619 Error(
"Submit",
"Clear package failed");
1624 dynamic_cast<TPackageDescription *>(o);
1626 package->fEnabled =
kFALSE;
1627 package->fUploaded =
kFALSE;
1645 if (
fViewer->GetActDesc()->fLocal)
return;
1647 if (
fViewer->GetActDesc()->fProof &&
1648 fViewer->GetActDesc()->fProof->IsValid()) {
1649 if (
fViewer->GetActDesc()->fProof->ClearPackages() != 0)
1650 Error(
"Submit",
"Clear packages failed");
1678 package = new TPackageDescription;
1681 package->
fId =
fViewer->GetActDesc()->fPackages->GetEntries();
1686 package->fId, package->fPathName,
1687 fClient->GetPicture(
"package.xpm"));
1692 package = new TPackageDescription;
1695 package->
fId =
fViewer->GetActDesc()->fPackages->GetEntries();
1700 package->fId, package->fPathName,
1701 fClient->GetPicture(
"package.xpm"));
1717 fViewer->GetActDesc()->fPackages->Remove(
1718 fViewer->GetActDesc()->fPackages->At(pos));
1746 if (pos <= 0)
return;
1748 package = (TPackageDescription *)fViewer->GetActDesc()->fPackages->At(pos);
1749 fViewer->GetActDesc()->fPackages->Remove(
1750 fViewer->GetActDesc()->fPackages->At(pos));
1752 fViewer->GetActDesc()->fPackages->AddAt(package, package->
fId);
1781 if (pos == -1 || pos ==
fViewer->GetActDesc()->fPackages->GetEntries()-1)
1784 package = (TPackageDescription *)fViewer->GetActDesc()->fPackages->At(pos);
1785 fViewer->GetActDesc()->fPackages->Remove(
1786 fViewer->GetActDesc()->fPackages->At(pos));
1788 fViewer->GetActDesc()->fPackages->AddAt(package, package->
fId);
1815 if (
fViewer->GetActDesc()->fLocal)
return;
1817 if (
fViewer->GetActDesc()->fAttached &&
1818 fViewer->GetActDesc()->fProof &&
1819 fViewer->GetActDesc()->fProof->IsValid()) {
1820 fViewer->GetActDesc()->fProof->Detach();
1824 fViewer->GetActDesc()->fProof = 0;
1832 fViewer->GetProofDisconPict());
1835 fViewer->OnListTreeClicked(
fViewer->GetSessionHierarchy()->GetSelected(),
1837 fViewer->GetSessionHierarchy()->ClearViewPort();
1839 fViewer->GetStatusBar()->SetText(
"", 1);
1864 TList *lqueries = 0;
1867 if (
fViewer->GetActDesc()->fProof &&
1868 fViewer->GetActDesc()->fProof->IsValid()) {
1869 lqueries =
fViewer->GetActDesc()->fProof->GetListOfQueries();
1872 TIter nextp(lqueries);
1881 fViewer->GetSessionHierarchy()->FindChildByData(
1884 if (
fViewer->GetSessionHierarchy()->FindChildByName(item,
1891 if (lquery->fReference.CompareTo(newquery->
fReference) == 0) {
1896 if (found)
continue;
1913 newquery->fQueryName,
fViewer->GetQueryConPict(),
1917 fViewer->GetSessionHierarchy()->AddItem(item2,
"InputList");
1919 fViewer->GetSessionHierarchy()->AddItem(item2,
"OutputList");
1923 fViewer->GetSessionHierarchy()->ClearViewPort();
1946 if (
fViewer->GetActDesc()->fProof &&
1947 fViewer->GetActDesc()->fProof->IsValid()) {
1949 if (
gSystem->RedirectOutput(pathtmp.
Data(), opt) != 0) {
1950 Error(
"ShowStatus",
"stdout/stderr redirection failed; skipping");
1954 fViewer->GetActDesc()->fProof->Exec(cmd);
1956 if (
gSystem->RedirectOutput(0) != 0) {
1957 Error(
"ShowStatus",
"stdout/stderr retore failed; skipping");
1973 if (
gSystem->RedirectOutput(pathtmp.
Data(), opt) != 0) {
1974 Error(
"ShowStatus",
"stdout/stderr redirection failed; skipping");
1979 if (
gSystem->RedirectOutput(0) != 0) {
1980 Error(
"ShowStatus",
"stdout/stderr retore failed; skipping");
2002 fTab->HideFrame(
fTab->GetTabTab(
"Options"));
2003 fTab->HideFrame(
fTab->GetTabTab(
"Packages"));
2004 fTab->HideFrame(
fTab->GetTabTab(
"DataSets"));
2009 fTab->ShowFrame(
fTab->GetTabTab(
"Options"));
2010 fTab->ShowFrame(
fTab->GetTabTab(
"Packages"));
2011 fTab->ShowFrame(
fTab->GetTabTab(
"DataSets"));
2024 if (
fViewer->GetActDesc()->fLocal) {
2027 "Shutting down Local Sessions is not allowed !",
2031 if (!
fViewer->GetActDesc()->fAttached ||
2032 !
fViewer->GetActDesc()->fProof ||
2033 !
fViewer->GetActDesc()->fProof->IsValid())
2037 m.Form(
"Are you sure to shutdown the session \"%s\"",
2038 fViewer->GetActDesc()->fName.Data());
2046 fViewer->GetActDesc()->fProof->Detach(
"S");
2049 fViewer->GetActDesc()->fProof = 0;
2057 fViewer->GetProofDisconPict());
2060 fViewer->OnListTreeClicked(
fViewer->GetSessionHierarchy()->GetSelected(),
2062 fViewer->GetSessionHierarchy()->ClearViewPort();
2064 fViewer->GetStatusBar()->SetText(
"", 1);
2114 fTxtChain->SetToolTipText(
"Specify TChain or TDSet from memory or file");
2119 btnTmp->
Connect(
"Clicked()",
"TEditQueryFrame",
this,
"OnBrowseChain()");
2130 btnTmp->
Connect(
"Clicked()",
"TEditQueryFrame",
this,
"OnBrowseSelector()");
2135 fBtnMore->Connect(
"Clicked()",
"TEditQueryFrame",
this,
"OnNewQueryMore()");
2180 btnTmp->
Connect(
"Clicked()",
"TEditQueryFrame",
this,
"OnBrowseEventList()");
2190 fTxtQueryName->Connect(
"TextChanged(char*)",
"TEditQueryFrame",
this,
2191 "SettingsChanged()");
2192 fTxtChain->Connect(
"TextChanged(char*)",
"TEditQueryFrame",
this,
2193 "SettingsChanged()");
2194 fTxtSelector->Connect(
"TextChanged(char*)",
"TEditQueryFrame",
this,
2195 "SettingsChanged()");
2196 fTxtOptions->Connect(
"TextChanged(char*)",
"TEditQueryFrame",
this,
2197 "SettingsChanged()");
2198 fNumEntries->Connect(
"ValueChanged(Long_t)",
"TEditQueryFrame",
this,
2199 "SettingsChanged()");
2200 fNumFirstEntry->Connect(
"ValueChanged(Long_t)",
"TEditQueryFrame",
this,
2201 "SettingsChanged()");
2202 fTxtEventList->Connect(
"TextChanged(char*)",
"TEditQueryFrame",
this,
2203 "SettingsChanged()");
2227 dlg->
Connect(
"OnElementSelected(TObject *)",
"TEditQueryFrame",
2228 this,
"OnElementSelected(TObject *)");
2305 fViewer->GetSessionHierarchy()->ClearViewPort();
2309 fViewer->WriteConfiguration();
2311 if (
fViewer->GetActDesc()->fLocal ||
2312 (
fViewer->GetActDesc()->fConnected &&
2313 fViewer->GetActDesc()->fAttached &&
2314 fViewer->GetActDesc()->fProof &&
2315 fViewer->GetActDesc()->fProof->IsValid())) {
2316 fViewer->GetQueryFrame()->GetTab()->SetTab(
"Status");
2317 fViewer->GetQueryFrame()->OnBtnSubmit();
2421 fBtnSubmit->SetToolTipText(
"Submit (process) selected query");
2425 fBtnStop->SetToolTipText(
"Stop processing query");
2429 fBtnAbort->SetToolTipText(
"Abort processing query");
2454 frmProg->SetBarColor(
"green");
2458 " Estimated time left : 0 sec (--- events of --- processed) "),
2462 " Processing Rate : -- events/sec "),
2466 tf =
fTab->AddTab(
"Results");
2479 fBtnRetrieve->SetToolTipText(
"Retrieve query results");
2487 fBtnShowLog->SetToolTipText(
"Show query log (open log window)");
2493 tf =
fTab->AddTab(
"Edit Query");
2498 if (
fViewer->GetActDesc()->fLocal ||
2499 (
fViewer->GetActDesc()->fProof &&
2500 fViewer->GetActDesc()->fProof->IsValid())) {
2501 btntxt =
" Submit ";
2504 btntxt =
" Apply changes ";
2510 fBtnSave->Connect(
"Clicked()",
"TEditQueryFrame",
fFD,
2512 fBtnSubmit->Connect(
"Clicked()",
"TSessionQueryFrame",
this,
2514 fBtnFinalize->Connect(
"Clicked()",
"TSessionQueryFrame",
this,
2516 fBtnStop->Connect(
"Clicked()",
"TSessionQueryFrame",
this,
2518 fBtnAbort->Connect(
"Clicked()",
"TSessionQueryFrame",
this,
2520 fBtnShowLog->Connect(
"Clicked()",
"TSessionQueryFrame",
this,
2522 fBtnRetrieve->Connect(
"Clicked()",
"TSessionQueryFrame",
this,
2540 if (
fViewer->GetActDesc()->fLocal ||
2541 (
fViewer->GetActDesc()->fProof &&
2542 fViewer->GetActDesc()->fProof->IsValid()))
2553 if (!
fViewer->GetActDesc()->fAttached)
2555 if (!
fViewer->GetActDesc()->fProof)
2557 if ((
fViewer->GetActDesc()->fActQuery) &&
2558 (
fViewer->GetActDesc()->fActQuery->fStatus !=
2560 (
fViewer->GetActDesc()->fActQuery->fStatus !=
2565 if (sender && (sender ==
fViewer->GetActDesc()->fProof))
2580 if (
fViewer->GetCascadeMenu()->IsEntryChecked(41+
i)) {
2584 if (
TH1 *
h =
dynamic_cast<TH1*
>(o)) {
2586 h->SetBarWidth(0.75);
2587 h->SetBarOffset(0.125);
2592 else if (
TH2 *h2 =
dynamic_cast<TH2*
>(o)) {
2621 if (!
fViewer->GetActDesc()->fProof)
2625 if (!sender || (sender !=
fViewer->GetActDesc()->fProof))
2628 if ((
fViewer->GetActDesc()->fActQuery) &&
2629 (
fViewer->GetActDesc()->fActQuery->fStatus !=
2631 (
fViewer->GetActDesc()->fActQuery->fStatus !=
2633 fTotal->SetText(
" Estimated time left : 0 sec (0 events of 0 processed) ");
2634 fRate->SetText(
" Processing Rate : 0.0f events/sec ");
2652 buf.
Form(
"PROOF cluster : \"%s\" - %d worker nodes",
2653 fViewer->GetActDesc()->fProof->GetMaster(),
2654 fViewer->GetActDesc()->fProof->GetParallel());
2658 buf.
Form(
" %d files, %lld events, starting event %lld",
2669 fViewer->ChangeRightLogo(
"monitor01.xpm");
2673 if ((
fViewer->GetActDesc()->fActQuery->fStatus ==
2675 (
fViewer->GetActDesc()->fActQuery->fStatus ==
2678 TTime tdiff =
fViewer->GetActDesc()->fActQuery->fEndTime -
2679 fViewer->GetActDesc()->fActQuery->fStartTime;
2692 stm.
Form(
"%d h %d min %d sec", hh, mm, ss);
2694 stm.
Form(
"%d min %d sec", mm, ss);
2696 stm.
Form(
"%d sec", ss);
2697 if (processed ==
total) {
2706 stm.
Form(
"%d h %d min %d sec", hh, mm, ss);
2708 stm.
Form(
"%d min %d sec", mm, ss);
2710 stm.
Form(
"%d sec", ss);
2711 buf.
Form(
" Processed : %lld events in %s",
total, stm.
Data());
2715 buf.
Form(
" Estimated time left : %s (%lld events of %lld processed) ",
2719 if (processed > 0 && (
Long64_t)tdiff > 0) {
2720 buf.
Form(
" Processing Rate : %.1f events/sec ",
2722 fRate->SetText(buf);
2753 switch (
fViewer->GetActDesc()->fActQuery->fStatus) {
2756 cproc =
" - ABORTED";
2760 cproc =
" - STOPPED";
2776 if (processed < 0) processed = 0;
2778 frmProg->SetBarColor(
"green");
2782 frmProg->SetBarColor(
"yellow");
2783 else if (status == -1 ) {
2784 fTotal->SetText(
" Estimated time left : 0 sec (0 events of 0 processed) ");
2785 fRate->SetText(
" Processing Rate : 0.0f events/sec ");
2804 buf.
Form(
" %d files, %lld events, starting event %lld",
2811 if (processed > 0 &&
total > 0)
2817 fViewer->ChangeRightLogo(
"monitor01.xpm");
2823 TTime tdiff =
fViewer->GetActDesc()->fActQuery->fEndTime -
2824 fViewer->GetActDesc()->fActQuery->fStartTime;
2844 buf.
Form(
" Estimated time left : %s (%lld events of %lld processed) ",
2860 buf.
Form(
" Processed : %ld events in %s",
2865 if (processed > 0 && (
Long64_t)tdiff > 0) {
2866 buf.
Form(
" Processing Rate : %.1f events/sec ",
2880 if (aborted ==
kTRUE) {
2886 frmProg->SetBarColor(
"yellow");
2889 if (
fViewer->GetActDesc()->fProof &&
2890 fViewer->GetActDesc()->fProof->IsValid()) {
2891 fViewer->GetActDesc()->fProof->Disconnect(
"Progress(Long64_t,Long64_t)",
2892 this,
"Progress(Long64_t,Long64_t)");
2893 fViewer->GetActDesc()->fProof->Disconnect(
"Progress(Long64_t,Long64_t,Long64_t,Float_t,Float_t,Float_t,Float_t)",
2894 this,
"Progress(Long64_t,Long64_t,Long64_t,Float_t,Float_t,Float_t,Float_t)");
2895 fViewer->GetActDesc()->fProof->Disconnect(
"Progress(Long64_t,Long64_t,Long64_t,Float_t,Float_t,Float_t,Float_t,Int_t,Int_t,Float_t)",
2896 this,
"Progress(Long64_t,Long64_t,Long64_t,Float_t,Float_t,Float_t,Float_t,Int_t,Int_t,Float_t)");
2897 fViewer->GetActDesc()->fProof->Disconnect(
"StopProcess(Bool_t)",
this,
2898 "IndicateStop(Bool_t)");
2909 fFiles = files > 0 ? files : 0;
2915 if (!
fViewer->GetActDesc()->fLocal) {
2916 frmProg->SetBarColor(
"green");
2920 buf.
Form(
"%0d files, %0lld events, starting event %0lld",
2925 if (
fViewer->GetActDesc()->fProof &&
2926 fViewer->GetActDesc()->fProof->IsValid()) {
2927 fViewer->GetActDesc()->fProof->Connect(
"Progress(Long64_t,Long64_t)",
2928 "TSessionQueryFrame",
this,
"Progress(Long64_t,Long64_t)");
2929 fViewer->GetActDesc()->fProof->Connect(
"Progress(Long64_t,Long64_t,Long64_t,Float_t,Float_t,Float_t,Float_t)",
2930 "TSessionQueryFrame",
this,
2931 "Progress(Long64_t,Long64_t,Long64_t,Float_t,Float_t,Float_t,Float_t)");
2932 fViewer->GetActDesc()->fProof->Connect(
"StopProcess(Bool_t)",
2933 "TSessionQueryFrame",
this,
"IndicateStop(Bool_t)");
2934 buf.
Form(
"PROOF cluster : \"%s\" - %d worker nodes",
2935 fViewer->GetActDesc()->fProof->GetMaster(),
2936 fViewer->GetActDesc()->fProof->GetParallel());
2939 else if (
fViewer->GetActDesc()->fLocal) {
2957 if (
fViewer->GetActDesc()->fProof &&
2958 fViewer->GetActDesc()->fProof->IsValid()) {
2973 if (
fViewer->GetActDesc()->fLocal) {
2987 if (
fViewer->GetActDesc()->fProof &&
2988 fViewer->GetActDesc()->fProof->IsValid()) {
2991 if (
fViewer->GetActDesc()->fLocal) {
2992 gROOT->SetInterrupt();
2993 fViewer->GetActDesc()->fActQuery->fStatus =
2997 fViewer->ChangeRightLogo(
"monitor01.xpm");
3021 if (
fViewer->GetActDesc()->fAttached &&
3022 fViewer->GetActDesc()->fProof &&
3023 fViewer->GetActDesc()->fProof->IsValid()) {
3038 if (
fViewer->GetActDesc()->fLocal) {
3040 item =
fViewer->GetSessionHierarchy()->FindItemByObj(
fViewer->GetSessionItem(),
3043 item2 =
fViewer->GetSessionHierarchy()->FindItemByObj(item,
3044 fViewer->GetActDesc()->fActQuery);
3054 if (!
fViewer->GetSessionHierarchy()->FindChildByName(item2,
"OutputList"))
3055 fViewer->GetSessionHierarchy()->AddItem(item2,
"OutputList");
3060 fViewer->GetSessionHierarchy()->ClearViewPort();
3073 if (
fViewer->GetActDesc()->fProof &&
3074 fViewer->GetActDesc()->fProof->IsValid()) {
3077 if (
fViewer->GetActDesc()->fLocal) {
3078 gROOT->SetInterrupt();
3079 fViewer->GetActDesc()->fActQuery->fStatus =
3083 fViewer->ChangeRightLogo(
"monitor01.xpm");
3106 fViewer->GetActDesc()->fNbHistos = 0;
3108 if (
fViewer->GetActDesc()->fProof &&
3109 fViewer->GetActDesc()->fProof->IsValid()) {
3118 if (
fViewer->GetCascadeMenu()->IsEntryChecked(41+
i)) {
3120 fViewer->GetActDesc()->fNbHistos++;
3125 fViewer->GetActDesc()->fProof->Connect(
"Feedback(TList *objs)",
3126 "TSessionQueryFrame",
fViewer->GetQueryFrame(),
3127 "Feedback(TList *objs)");
3132 fViewer->GetActDesc()->fProof->ClearFeedback();
3135 fViewer->GetActDesc()->fProof->cd();
3138 if (
fViewer->GetActDesc()->fProof->IsLite()) {
3143 fViewer->GetActDesc()->fProof->GetSessionTag(),
3144 fViewer->GetActDesc()->fProof->GetSeqNum()+1);
3164 Error(
"Submit",
"No TChain defined; skipping");
3170 fViewer->GetActDesc()->fProof->GetSessionTag(),
id);
3174 else if (
fViewer->GetActDesc()->fLocal) {
3180 if (
fViewer->GetCascadeMenu()->IsEntryChecked(41+
i)) {
3181 fViewer->GetActDesc()->fNbHistos++;
3210 "Only TChains are allowed in Local Session (no TDSet) !",
3215 Error(
"Submit",
"No TChain defined; skipping");
3238 if (desc != query)
return;
3241 if ((
fViewer->GetActDesc()->fProof &&
3242 fViewer->GetActDesc()->fProof->IsValid()) ||
3243 fViewer->GetActDesc()->fLocal)
3262 !(
fViewer->GetActDesc()->fLocal))
3327 if (
fViewer->GetActDesc()->fLocal &&
3328 !(
fViewer->GetActDesc()->fActQuery->fChain)) {
3340 const char *qst[] = {
"aborted ",
"submitted",
"running ",
3341 "stopped ",
"completed"};
3343 if (
fViewer->GetActDesc()->fActQuery)
3344 fFD->UpdateFields(
fViewer->GetActDesc()->fActQuery);
3346 if (
fViewer->GetActDesc()->fLocal ||
3347 (
fViewer->GetActDesc()->fConnected &&
3348 fViewer->GetActDesc()->fAttached &&
3349 fViewer->GetActDesc()->fProof &&
3350 fViewer->GetActDesc()->fProof->IsValid())) {
3354 fBtnSave->SetText(
" Apply changes ");
3358 if (!
fViewer->GetActDesc()->fActQuery ||
3359 !
fViewer->GetActDesc()->fActQuery->fResult) {
3361 if (
fViewer->GetActDesc()->fLocal) {
3362 if (
fViewer->GetActDesc()->fActQuery) {
3375 fTotal->SetText(
" Estimated time left : 0 sec (0 events of 0 processed) ");
3376 fRate->SetText(
" Processing Rate : 0.0f events/sec ");
3390 buffer =
TString::Format(
"------------------------------------------------------\n");
3393 const char *fin =
result->IsFinalized() ?
"finalized" : qst[st];
3394 const char *arc =
result->IsArchived() ?
"(A)" :
"";
3399 result->GetSelecImp()->GetTitle());
3401 buffer +=
TString::Format(
"------------------------------------------------------\n");
3407 result->GetSelecImp()->GetTitle());
3408 buffer +=
TString::Format(
"------------------------------------------------------\n");
3413 result->GetStartTime().Convert());
3415 result->GetStartTime().AsString());
3416 buffer +=
TString::Format(
" Real time : %d sec (CPU time: %.1f sec)\n",
3417 elapsed,
result->GetUsedCPU());
3421 if (
result->GetEntries() > -1 && elapsed > 0)
3424 buffer +=
TString::Format(
" Processed : %lld events (size: %.3f MBs)\n",
3429 if (strlen(
result->GetParList()) > 1) {
3435 if (!
result->IsArchived()) {
3439 res.
Insert(0,
"<PROOF_SandBox>/");
3443 "not available" :
"sent to client";
3447 buffer +=
TString::Format(
"------------------------------------------------------\n");
3451 if (
result->GetOutputList() &&
result->GetOutputList()->GetSize() > 0) {
3453 result->GetOutputList()->GetSize());
3454 buffer +=
TString::Format(
"------------------------------------------------------\n");
3462 frmProg->SetBarColor(
"yellow");
3464 frmProg->SetBarColor(
"green");
3471 buffer =
TString::Format(
" Processing Rate : %.1f events/sec ", rate);
3514 frmListView->
Connect(
"Clicked(TGLVEntry*, Int_t, Int_t, Int_t)",
3515 "TSessionOutputFrame",
this,
3516 "OnElementClicked(TGLVEntry* ,Int_t, Int_t, Int_t)");
3517 frmListView->
Connect(
"DoubleClicked(TGLVEntry*, Int_t, Int_t, Int_t)",
3518 "TSessionOutputFrame",
this,
3519 "OnElementDblClicked(TGLVEntry* ,Int_t, Int_t, Int_t)");
3529 if ((obj) && (btn ==3)) {
3549 if (act[0] ==
'!') {
3686 gEnv->SetValue(
"Proof.StatsHist", 1);
3690 gEnv->SetValue(
"Proof.StatsHist", 0);
3725 localdesc->
fTag =
"";
3726 localdesc->
fName =
"Local";
3728 localdesc->
fPort = 0;
3757 litedesc->
fTag =
"";
3758 litedesc->
fName =
"PROOF Lite";
3760 litedesc->
fPort = 0;
3781 while ((er = (
TEnvRec*) next())) {
3783 if ((s = strstr(er->
GetName(),
"SessionDescription."))) {
3784 const char *val =
fViewerEnv->GetValue(s, (
const char*)0);
3791 if (
name.IsNull())
break;
3792 TString sessiontag = strtok(0,
";");
3793 TString address = strtok(0,
";");
3794 if (address.
IsNull())
break;
3795 TString port = strtok(0,
";");
3796 if (port.
IsNull())
break;
3797 TString loglevel = strtok(0,
";");
3798 if (loglevel.
IsNull())
break;
3799 TString configfile = strtok(0,
";");
3800 TString user = strtok(0,
";");
3801 if (user.
IsNull())
break;
3802 TString sync = strtok(0,
";");
3803 TString autoen = strtok(0,
";");
3807 proofDesc->
fTag = sessiontag.
Length() > 2 ? sessiontag.
Data() :
"";
3810 proofDesc->
fPort = atoi(port);
3836 if ((s = strstr(er->
GetName(),
"QueryDescription."))) {
3837 const char *val =
fViewerEnv->GetValue(s, (
const char*)0);
3844 TString status = strtok(!cnt ?
v : 0,
";");
3845 if (status.
IsNull())
break;
3847 TString reference = strtok(0,
";");
3848 if (reference.
IsNull())
break;
3849 TString queryname = strtok(0,
";");
3850 if (queryname.
IsNull())
break;
3851 TString selector = strtok(0,
";");
3852 if (selector.
IsNull())
break;
3853 TString dset = strtok(0,
";");
3854 TString options = strtok(0,
";");
3855 TString eventlist = strtok(0,
";");
3856 TString nbfiles = strtok(0,
";");
3857 TString nbentries = strtok(0,
";");
3858 TString firstentry = strtok(0,
";");
3869 newquery->
fNbFiles = atoi(nbfiles);
3915 if (o &&
dynamic_cast<TProofMgr *
>(o)) {
3926 if ((desc->
fTag ==
d->GetName()) ||
3927 (desc->
fName ==
d->GetTitle())) {
3938 if (p && ((exists && ((desc->
fTag ==
d->GetName()) ||
3939 (desc->
fName ==
d->GetTitle()))) ||
3945 desc->
fTag =
d->GetName();
3951 fActDesc->fProof->Connect(
"Progress(Long64_t,Long64_t)",
3953 "Progress(Long64_t,Long64_t)");
3954 fActDesc->fProof->Connect(
"Progress(Long64_t,Long64_t,Long64_t,Float_t,Float_t,Float_t,Float_t)",
3956 "Progress(Long64_t,Long64_t,Long64_t,Float_t,Float_t,Float_t,Float_t)");
3957 fActDesc->fProof->Connect(
"StopProcess(Bool_t)",
3959 "IndicateStop(Bool_t)");
3961 "ResetProgressDialog(const char*, Int_t,Long64_t,Long64_t)",
3963 "ResetProgressDialog(const char*,Int_t,Long64_t,Long64_t)");
3971 fActDesc->fProof->Connect(
"QueryResultReady(char *)",
3972 "TSessionViewer",
this,
"QueryResultReady(char *)");
3975 msg.
Form(
"PROOF Cluster %s ready",
fActDesc->fName.Data());
4005 if (found)
continue;
4008 newdesc->
fTag =
d->GetName();
4009 newdesc->
fName =
d->GetTitle();
4029 "Progress(Long64_t,Long64_t)");
4030 newdesc->
fProof->
Connect(
"Progress(Long64_t,Long64_t,Long64_t,Float_t,Float_t,Float_t,Float_t)",
4032 "Progress(Long64_t,Long64_t,Long64_t,Float_t,Float_t,Float_t,Float_t)");
4035 "IndicateStop(Bool_t)");
4037 "ResetProgressDialog(const char*, Int_t,Long64_t,Long64_t)",
4039 "ResetProgressDialog(const char*,Int_t,Long64_t,Long64_t)");
4048 "TSessionViewer",
this,
"QueryResultReady(char *)");
4074 TIter nextp(proofs);
4077 while ((proof = (
TProof *)nextp())) {
4082 if (desc->
fProof == proof) {
4089 if (found)
continue;
4134 TIter nextp(sessions);
4152 if (found)
continue;
4209 Int_t scnt = 0, qcnt = 1;
4245 sessionstring += session->
fName;
4246 sessionstring +=
";";
4248 sessionstring +=
";";
4249 sessionstring += session->
fAddress;
4250 sessionstring +=
";";
4252 sessionstring +=
";";
4254 sessionstring +=
";";
4256 sessionstring +=
";";
4258 sessionstring +=
";";
4260 sessionstring +=
";";
4263 fViewerEnv->SetValue(
Form(
"SessionDescription.%d",scnt), sessionstring);
4288 fViewerEnv->SetValue(
Form(
"QueryDescription.%d",qcnt), querystring);
4457 fPopupSrv->Connect(
"Activated(Int_t)",
"TSessionViewer",
this,
4458 "MyHandleMenu(Int_t)");
4467 fPopupQry->Connect(
"Activated(Int_t)",
"TSessionViewer",
this,
4468 "MyHandleMenu(Int_t)");
4500 "TSessionViewer",
this,
4501 "OnListTreeClicked(TGListTreeItem*, Int_t, Int_t, Int_t)");
4503 "TSessionViewer",
this,
4504 "OnListTreeDoubleClicked(TGListTreeItem*, Int_t)");
4505 fV1->Resize(
fTreeView->GetDefaultWidth()+100,
fV1->GetDefaultHeight());
4570 int parts[] = { 36, 49, 15 };
4574 for (
int p = 0; p < 3; ++p)
4616 fQueryFrame->GetQueryEditFrame()->OnNewQueryMore();
4673 msg.
Form(
"PROOF Cluster %s ready",
fActDesc->fName.Data());
4676 msg.
Form(
"PROOF Cluster %s not connected",
fActDesc->fName.Data());
4774 if (
fActDesc->fActQuery->fResult) {
4775 objlist =
fActDesc->fActQuery->fResult->GetOutputList();
4777 TIter nexto(objlist);
4778 while ((obj = (
TObject *) nexto())) {
4782 objlist =
fActDesc->fActQuery->fResult->GetInputList();
4784 TIter nexti(objlist);
4785 while ((obj = (
TObject *) nexti())) {
4795 TIter nexto(objlist);
4796 while ((obj = (
TObject *) nexto())) {
4808 if (strstr(entry->
GetText(),
"Output")) {
4815 else if (strstr(entry->
GetText(),
"Input")) {
4923 if (!
gSystem->AccessPathName(pathtmp)) {
4927 if (!
gSystem->AccessPathName(pathtmp)) {
4951 if (!
gSystem->AccessPathName(pathtmp)) {
4955 if (!
gSystem->AccessPathName(pathtmp)) {
5014 struct tm *connected;
5023 connected = gmtime( &elapsed_time );
5025 buf.
Form(
" %02d:%02d:%02d", connected->tm_hour,
5026 connected->tm_min, connected->tm_sec);
5070 strtmp.
Form(
"Query Result Ready for %s", query);
5134 m.Form(
"Are you sure to cleanup the session \"%s::%s\"",
5167 m.Form(
"Do you really want to reset the session \"%s::%s\"",
5220 m.Form(
"Do you want to delete query \"%s\" from server too ?",
5226 m.Form(
"Dou you really want to delete query \"%s\" ?",
5276 if (!query->
fChain)
return;
5298 if (
gSystem->RedirectOutput(pathtmp.
Data(),
"w") != 0) {
5299 Error(
"ShowStatus",
"stdout/stderr redirection failed; skipping");
5304 if (
gSystem->RedirectOutput(0) != 0) {
5305 Error(
"ShowStatus",
"stdout/stderr retore failed; skipping");
5316 0, 0, ax, ay, wdummy);
5332 TList *packlist =
fActDesc->fProof->GetListOfEnabledPackages();
5334 TIter nextenabled(packlist);
5335 while ((packname = (
TObjString *)nextenabled())) {
5336 package = new TPackageDescription;
5338 package->
fName +=
".par";
5348 packlist =
fActDesc->fProof->GetListOfPackages();
5350 TIter nextpack(packlist);
5351 while ((packname = (
TObjString *)nextpack())) {
5352 package = new TPackageDescription;
5354 package->
fName +=
".par";
5383 if (
gSystem->RedirectOutput(pathtmp.
Data(),
"w") != 0) {
5384 Error(
"ShowStatus",
"stdout/stderr redirection failed; skipping");
5389 if (
gSystem->RedirectOutput(0) != 0) {
5390 Error(
"ShowStatus",
"stdout/stderr retore failed; skipping");
5401 0, 0, ax, ay, wdummy);
5423 fActDesc->fProof->Connect(
"LogMessage(const char*,Bool_t)",
5424 "TSessionViewer",
this,
"LogMessage(const char*,Bool_t)");
5428 fActDesc->fProof->ShowLog(queryref);
5431 fActDesc->fProof->SendLogToWindow(logonly);
5434 fClient->GetDefaultRoot()->GetId(), 0, 0, ax, ay, wdummy);
5464 if (
gSystem->RedirectOutput(pathtmp.
Data(),
"w") != 0) {
5465 Error(
"ShowStatus",
"stdout/stderr redirection failed; skipping");
5470 if (
gSystem->RedirectOutput(0) != 0) {
5471 Error(
"ShowStatus",
"stdout/stderr retore failed; skipping");
5482 0, 0, ax, ay, wdummy);
5611 fActDesc->fActQuery->fResult->GetOutputList()) {
5753 gEnv->SetValue(
"Proof.StatsHist", 0);
5757 gEnv->SetValue(
"Proof.StatsHist", 1);
5764 gEnv->SetValue(
"Proof.StatsTrace", 0);
5768 gEnv->SetValue(
"Proof.StatsTrace", 1);
5775 gEnv->SetValue(
"Proof.SlaveStatsTrace", 0);
5779 gEnv->SetValue(
"Proof.SlaveStatsTrace", 1);
5827 sprintf(str,
"About ROOT %s...",
gROOT->GetVersion());
const Mask_t kButtonPressMask
Handle_t Window_t
Window handle.
const Mask_t kAnyModifier
const Mask_t kKeyPressMask
const Mask_t kPointerMotionMask
const Mask_t kLeaveWindowMask
const Mask_t kButtonReleaseMask
const Mask_t kEnterWindowMask
R__EXTERN const char gHelpAbout[]
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
R__EXTERN TApplication * gApplication
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
static unsigned int total
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 winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void w
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 winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t pict
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
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize id
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void on
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t SetWMSizeHints
R__EXTERN void * gTQSender
R__EXTERN TRandom * gRandom
const char * xpm_toolbar[]
const char *const kSession_RedirectFile
@ kOptionsSlaveStatsTrace
const char *const kSession_RedirectCmd
const char * kFeedbackHistos[]
const char * macrotypes[]
R__EXTERN TSessionViewer * gSessionViewer
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
char * StrDup(const char *str)
Duplicate the string str.
R__EXTERN TSystem * gSystem
Using a TBrowser one can browse all ROOT objects.
A chain is a collection of files containing TTree objects.
Long64_t GetReadEntry() const override
See TTree::GetReadEntry().
Long64_t GetEntries() const override
Return the total number of entries in the chain.
This class implements a data set to be used for PROOF processing.
void UpdateFields(TQueryDescription *desc)
Update entry fields with query description values.
TGTextEntry * fTxtParFile
TGNumberEntry * fNumEntries
TGTextEntry * fTxtQueryName
void OnNewQueryMore()
Show/hide options frame and update button text accordingly.
TGNumberEntry * fNumFirstEntry
void SettingsChanged()
Settings have changed, update GUI accordingly.
TQueryDescription * fQuery
void OnBrowseEventList()
Browse event list.
TGTextEntry * fTxtEventList
void Build(TSessionViewer *gui)
Build the "new query" dialog.
TEditQueryFrame(TGWindow *p, Int_t w, Int_t h)
Create a new Query dialog, used by the Session Viewer, to Edit a Query if the editmode flag is set,...
~TEditQueryFrame() override
Delete query dialog.
void OnElementSelected(TObject *obj)
Handle OnElementSelected signal coming from new chain dialog.
TGCompositeFrame * fFrmMore
TGTextEntry * fTxtSelector
void OnBrowseSelector()
Open file browser to choose selector macro.
void OnBtnSave()
Save current settings in main session viewer.
void OnBrowseChain()
Call new chain dialog.
TGTextEntry * fTxtOptions
const char * GetName() const override
Returns name of object.
The TEnv class reads config files, by default named .rootrc.
Class describing a generic file including meta information.
TUrl * GetFirstUrl() const
A frame containing two scrollbars (a horizontal and a vertical) and a viewport.
TGDimension GetDefaultSize() const override
std::cout << fWidth << "x" << fHeight << std::endl;
virtual void SetLayoutManager(TGLayoutManager *l)
Set the layout manager for the composite frame.
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=nullptr)
Add frame to the composite frame using the specified layout hints.
virtual void Cleanup()
Cleanup and delete all objects contained in this composite frame.
void MapSubwindows() override
Map all sub windows that are part of the composite frame.
TGCompositeFrame(const TGCompositeFrame &)=delete
void Layout() override
Layout the elements of the composite frame.
virtual void ShowFrame(TGFrame *f)
Show sub frame.
void SetCleanup(Int_t mode=kLocalCleanup) override
Turn on automatic cleanup of child frames in dtor.
virtual void HideFrame(TGFrame *f)
Hide sub frame.
Bool_t IsVisible(TGFrame *f) const
Get state of sub frame.
This class creates a file selection dialog.
TList * fFileNamesList
list of selected file names
char * fFilename
selected file name
const char ** fFileTypes
file types used to filter selectable files
void SetFilename(const char *fname)
Set file name.
Bool_t fMultipleSelection
if true, allow multiple file selection
void SetIniDir(const char *inidir)
Set directory name.
void Resize(UInt_t w=0, UInt_t h=0) override
Resize the frame.
static Pixel_t GetWhitePixel()
Get white pixel value.
void MapWindow() override
map window
void Move(Int_t x, Int_t y) override
Move frame.
virtual void DeleteWindow()
Delete window.
A composite frame with a border and a title.
A horizontal 3D line is a line that typically separates a toolbar from the menubar.
A composite frame that layout their children in horizontal way.
Icon + text listbox entry.
This class handles GUI icons.
void * GetUserData() const
void SetUserData(void *userData)
This class handles GUI labels.
This class describes layout hints used by the layout classes.
A listbox is a box, possibly with scrollbar, containing entries.
virtual const char * GetText() const =0
TGListTreeItem * GetParent() const
virtual void SetPictures(const TGPicture *, const TGPicture *)
virtual void * GetUserData() const =0
virtual void SetUserData(void *, Bool_t=kFALSE)
A list tree is a widget that can contain a number of items arranged in a tree structure.
A list view is a widget that can contain a number of items arranged in a grid or list.
TGMainFrame(const TGMainFrame &)=delete
void SetWindowName(const char *name=nullptr) override
Set window name. This is typically done via the window manager.
This layout managers does not make use of TGLayoutHints.
TGNumberEntry is a number entry input widget with up/down buttons.
TGClient * fClient
Connection to display server.
The TGPicture class implements pictures and icons used in the different GUI elements and widgets.
Provides a StatusBar widget.
A tab widget contains a set of composite frames each with a little tab with a name (like a set of fol...
This class describes layout hints used by the TGTableLayout class.
A layout manager, which places child frames in a table arranged in rows and columns,...
A text buffer is used in several widgets, like TGTextEntry, TGFileDialog, etc.
Yield an action as soon as it is clicked.
A TGTextEntry is a one line text input widget.
virtual void SetFocus()
Set focus to this text entry.
A TGTextView is a text viewer widget.
void SetFrame(TGFrame *frame, Bool_t left) override
Set frame to be resized.
A vertical 3D line is a line that can be used to separate groups of widgets.
A composite frame that layout their children in vertical way.
const char * GetName() const override
Return unique name, used in SavePrimitive methods.
TH1 is the base class of all histogram classes in ROOT.
Service class for 2-D histogram classes.
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
TObject * Last() const override
Return the last object in the list. Returns 0 when list is empty.
const char * GetName() const override
Returns name of object.
const char * GetTitle() const override
Returns title of object.
void Popup()
Display dialog and set focus to query name text entry.
Collectable string class.
const TString & GetString() const
const char * GetName() const override
Returns name of object.
Mother of all ROOT objects.
virtual const char * GetName() const
Returns name of object.
virtual const char * GetTitle() const
Returns title of object.
virtual TClass * IsA() const
TProof * GetProof() const
The PROOF manager interacts with the PROOF server coordinator to create or destroy a PROOF session,...
virtual Int_t Reset(Bool_t hard=kFALSE, const char *usr=0)
Send a cleanup request for the sessions associated with the current user.
virtual TList * QuerySessions(Option_t *opt="S")
Get list of sessions accessible to this manager.
static TProofMgr * Create(const char *url, Int_t loglevel=-1, const char *alias=0, Bool_t xpd=kTRUE)
Static method returning the appropriate TProofMgr object using the plugin manager.
virtual Bool_t IsValid() const
This class controls a Parallel ROOT Facility, PROOF, cluster.
static TProofMgr * Mgr(const char *url)
Get instance of the effective manager for 'url' Return 0 on failure.
TQueryResult * GetQueryResult(const char *ref=0)
Return pointer to the full TQueryResult instance owned by the player and referenced by 'ref'.
const char * GetConfFile() const
void Detach(Option_t *opt="")
Detach this instance to its proofserv.
Int_t GetLogLevel() const
const char * GetUser() const
const char * GetMaster() const
TQObject(const TQObject &)=delete
Bool_t Connect(const char *signal, const char *receiver_class, void *receiver, const char *slot)
Non-static method is used to connect from the signal of this object to the receiver slot.
ESessionQueryStatus fStatus
A container class for query results.
Long64_t GetEntries() const
TMacro * GetSelecImp() const
TObject * GetInputObject(const char *classname) const
Return first instance of class 'classname' in the input list.
EQueryStatus GetStatus() const
const char * GetOptions() const
Long64_t GetFirst() const
static const TString & GetBinDir()
Get the binary directory in the installation. Static utility function.
This class creates a TGCanvas in which a TCanvas is created.
A TRootHelpDialog is used to display help text (or any text in a dialog window).
void SetText(const char *helpText)
Set help text from helpText buffer in TGTextView.
void Popup()
Show help dialog.
A TSelector object is used by the TTree::Draw, TTree::Scan, TTree::Process to navigate in a TTree and...
virtual TList * GetOutputList() const
Sequenceable collection abstract base class.
virtual TObject * First() const =0
TQueryDescription * fActQuery
TGTextButton * fBtnShowLog
TGTextButton * fBtnUploadDSet
TGCheckButton * fChkEnable
TGTextButton * fBtnEnable
TGNumberEntry * fLogLevel
void OnBtnShowLogClicked()
Show session log.
void OnBtnDisconnectClicked()
Disconnect from current Proof session.
void OnBtnRemoveClicked()
Remove selected package from the list.
void UpdatePackages()
Update list of packages.
TGTextButton * fBtnDisable
TGTextButton * fBtnShowEnabled
void OnUploadPackages()
Upload selected package(s) to the current session.
TGTextButton * fBtnUpload
TGTextButton * fBtnRefresh
void OnBtnAddClicked()
Open file dialog and add selected package file to the list.
TGTextEntry * fCommandTxt
TGTextButton * fBtnRemoveDSet
~TSessionFrame() override
Destructor.
void OnBtnRemoveDSet()
Remove dataset from the list and from the cluster.
void OnCommandLine()
Command line handling.
void OnDisablePackages()
Disable selected package(s) in the current session.
void OnBtnNewQueryClicked()
Call "New Query" Dialog.
void OnApplyLogLevel()
Apply selected log level on current session.
TGCheckButton * fClearCheck
void Build(TSessionViewer *gui)
Build session frame.
TGTextButton * fBtnNewQuery
TGTextButton * fApplyLogLevel
void OnBtnVerifyDSet()
Verify that the files in the selected dataset are present on the cluster.
void OnBtnUploadDSet()
Open Upload Dataset dialog.
TGTextBuffer * fCommandBuf
void OnBtnDownClicked()
Move selected package entry one position down in the list.
void OnBtnUpClicked()
Move selected package entry one position up in the list.
TSessionFrame(TGWindow *parent, Int_t w, Int_t h)
Constructor.
void OnStartupEnable(Bool_t on)
Handle multiple selection check button.
void OnBtnGetQueriesClicked()
Get list of queries from current Proof server and populate the list tree.
TGTextView * fInfoTextView
TGCheckButton * fChkMulti
void OnMultipleSelection(Bool_t on)
Handle multiple selection check button.
void UpdateListOfDataSets()
Update list of dataset present on the cluster.
TGTextEntry * fTxtParallel
TGTextButton * fBtnRemove
void OnClearPackages()
Clear (disable) all packages in the current session.
void ShutdownSession()
Shutdown current session.
TGTextButton * fBtnVerifyDSet
TGListTree * fDataSetTree
void ProofInfos()
Display information on current session.
TGTextButton * fBtnGetQueries
void SetLocal(Bool_t local=kTRUE)
Switch widgets status/visibility for local/remote sessions.
void OnApplyParallel()
Apply selected number of workers on current Proof session.
TGTextButton * fApplyParallel
void OnEnablePackages()
Enable selected package(s) in the current session.
Dialog used to display session logs from the session viewer.
~TSessionOutputFrame() override
Destructor.
TGLVContainer * fLVContainer
void Build(TSessionViewer *gui)
Build query output information frame.
void OnElementDblClicked(TGLVEntry *entry, Int_t btn, Int_t x, Int_t y)
Handle double-clicks on list view items.
void OnElementClicked(TGLVEntry *entry, Int_t btn, Int_t x, Int_t y)
Handle mouse clicks on list view items.
void AddObject(TObject *obj)
Add object to output list view.
TSessionOutputFrame(TGWindow *parent, Int_t w, Int_t h)
Constructor.
void UpdateInfos()
Update query information (header) text view.
TGTextButton * fBtnShowLog
void Build(TSessionViewer *gui)
Build query information frame.
TRootEmbeddedCanvas * fECanvas
void UpdateHistos(TList *objs)
Update feedback histograms.
void Progress(Long64_t total, Long64_t processed)
Update progress bar and status labels.
void Feedback(TList *objs)
Feedback function connected to Feedback signal.
void OnBtnSubmit()
Submit query.
void ProgressLocal(Long64_t total, Long64_t processed)
Update progress bar and status labels.
TGTextButton * fBtnSubmit
void OnBtnFinalize()
Finalize query.
void OnBtnStop()
Stop processing query.
void Modified(Bool_t mod=kTRUE)
Notify changes in query editor settings.
void IndicateStop(Bool_t aborted)
Indicate that Cancel or Stop was clicked.
~TSessionQueryFrame() override
Destructor.
TGTextButton * fBtnRetrieve
void ResetProgressDialog(const char *selec, Int_t files, Long64_t first, Long64_t entries)
Reset progress frame information fields.
TQueryDescription * fDesc
TGTextView * fInfoTextView
void UpdateButtons(TQueryDescription *desc)
Update buttons state for the current query status.
void OnBtnShowLog()
Show query log.
void OnBtnAbort()
Abort processing query.
TSessionQueryFrame(TGWindow *parent, Int_t w, Int_t h)
Constructor.
TGTextButton * fBtnFinalize
void OnBtnRetrieve()
Retrieve query.
TSessionServerFrame(TGWindow *parent, Int_t w, Int_t h)
Constructor.
TGTextButton * fBtnConnect
Bool_t ProcessMessage(Longptr_t msg, Longptr_t parm1, Longptr_t parm2) override
Process messages for session server frame.
void OnBtnAddClicked()
Add newly created session configuration in the list of sessions.
void OnBtnDeleteClicked()
Delete selected session configuration (remove it from the list).
~TSessionServerFrame() override
Destructor.
TGNumberEntry * fLogLevel
void OnBtnNewServerClicked()
Reset server configuration fields.
TGTextEntry * fTxtAddress
void OnConfigFileClicked()
Browse configuration files.
TGCompositeFrame * fFrmNewServer
void Build(TSessionViewer *gui)
Build server configuration frame.
void SettingsChanged()
Settings have changed, update GUI accordingly.
void OnBtnConnectClicked()
Connect to selected server.
TGTextEntry * fTxtUsrName
Bool_t HandleExpose(Event_t *event) override
Handle expose event in server frame.
void Update(TSessionDescription *desc)
Update fields with values from session description desc.
Widget used to manage PROOF or local sessions, PROOF connections, queries construction and results ha...
void EditQuery()
Edit currently selected query.
void ShowPackages()
Query the list of uploaded packages from proof and display it into a new text window.
TSessionOutputFrame * fOutputFrame
const TGPicture * fQueryDiscon
TGPopupMenu * fCascadeMenu
void StartViewer()
Start TreeViewer from selected TChain.
TGHProgressBar * fConnectProg
void LogMessage(const char *msg, Bool_t all)
Load/append a log msg in the log frame.
void UpdateListOfProofs()
Update list of existing Proof sessions.
const TGPicture * fQueryCon
TGListTreeItem * fSessionItem
void UpdateListOfPackages()
Update the list of packages.
void OnListTreeClicked(TGListTreeItem *entry, Int_t btn, Int_t x, Int_t y)
Handle mouse clicks in list tree.
virtual void Build()
Build main session viewer frame and subframes.
void MyHandleMenu(Int_t)
Handle session viewer custom popup menus.
TSessionDescription * fActDesc
Bool_t HandleTimer(TTimer *) override
Handle animation timer.
void ReadConfiguration(const char *filename=nullptr)
Read configuration file and populate list of sessions list of queries and list of packages.
void ShowInfo(const char *txt)
Display text in status bar.
const TGPicture * fBaseIcon
void ShowEnabledPackages()
Query list of enabled packages from proof and display it into a new text window.
TSessionViewer(const char *title="ROOT Session Viewer", UInt_t w=550, UInt_t h=320)
Main Session viewer constructor.
void QueryResultReady(char *query)
Handle signal "query result ready" coming from Proof session.
void OnListTreeDoubleClicked(TGListTreeItem *entry, Int_t btn)
Handle mouse double clicks in list tree (connect to server).
const TGPicture * fProofCon
TSessionFrame * fSessionFrame
TGPopupMenu * fSessionMenu
TSessionInputFrame * fInputFrame
void CloseWindow() override
Close main Session Viewer window.
void CleanupSession()
Clean-up Proof session.
void EnableTimer()
Enable animation timer.
void WriteConfiguration(const char *filename=nullptr)
Save actual configuration in config file "filename".
TGListTree * fSessionHierarchy
void UpdateListOfSessions()
Update list of existing Proof sessions.
TSessionLogView * fLogWindow
TContextMenu * fContextMenu
void SetChangePic(Bool_t change)
TGPopupMenu * fOptionsMenu
void ShowLog(const char *queryref)
Display the content of the temporary log file for queryref into a new text window.
TSessionServerFrame * fServerFrame
~TSessionViewer() override
Destructor.
void OnCascadeMenu()
Handle feedback histograms configuration menu.
const TGPicture * fProofDiscon
void DisableTimer()
Disable animation timer.
void DeleteQuery()
Delete query from list tree and ask user if they want to delete it also from server.
void Terminate()
Terminate Session : save configuration, clean temporary files and close Proof connections.
TSessionQueryFrame * fQueryFrame
void ShowStatus()
Retrieve and display Proof status.
void ChangeRightLogo(const char *name)
Change the right logo (used for animation).
void StartupMessage(char *msg, Bool_t stat, Int_t curr, Int_t total)
Handle startup message (connection progress) coming from Proof session.
Bool_t ProcessMessage(Longptr_t msg, Longptr_t parm1, Longptr_t) override
Handle messages send to the TSessionViewer object.
void ResetSession()
Reset Proof session.
TGPicture * fRightIconPicture
TString & Insert(Ssiz_t pos, const char *s)
const char * Data() const
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
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
Basic time type with millisecond precision.
Handles synchronous and a-synchronous timer events.
TVirtualTreePlayer * GetPlayer()
Load the TTreePlayer (if not already done).
const char * GetUrl(Bool_t withDeflt=kFALSE) const
Return full URL.
TVirtualPad is an abstract base class for the Pad and Canvas classes.
virtual TVirtualPad * cd(Int_t subpadnumber=0)=0
virtual TSelector * GetSelectorFromFile() const =0