73 if (isatty(0) != 0 && isatty(1) != 0) {
75 Printf(
"Opening new connection to %s", u.
Data());
109 if (
Init(dbg) != 0) {
135 Error(
"Init",
"while opening the connection to %s - exit (error: %d)",
176 gROOT->GetListOfSockets()->Remove(
this);
188 Warning(
"AttachSession",
"invalid TXProofMgr - do nothing");
192 Warning(
"AttachSession",
"invalid description object - do nothing");
198 return d->GetProof();
226 Error(
"AttachSession",
"attaching to PROOF session");
240 Warning(
"DetachSession",
"invalid TXProofMgr - do nothing");
249 fSocket->DisconnectSession(
d->GetRemoteId(), opt);
255 }
else if (
id == 0) {
260 fSocket->DisconnectSession(-1, o);
284 Warning(
"DetachSession",
"invalid TXProofMgr - do nothing");
293 fSocket->DisconnectSession(
d->GetRemoteId(), opt);
312 Warning(
"MatchUrl",
"invalid TXProofMgr - do nothing");
347 Warning(
"ShowWorkers",
"invalid TXProofMgr - do nothing");
375 Error(
"GetMssUrl",
"invalid TXProofMgr - do nothing");
379 if (
fSocket->GetXrdProofdVersion() < 1007) {
380 Error(
"GetMssUrl",
"functionality not supported by server");
389 Error(
"GetMssUrl",
"problems retrieving the required information");
393 Warning(
"GetMssUrl",
"TXProofMgr is now invalid: information may not be valid");
406 if (opt && !strncasecmp(opt,
"L",1))
412 Warning(
"QuerySessions",
"invalid TXProofMgr - do nothing");
432 Printf(
"// +++ %s session(s) currently active +++", to->
GetName());
435 Int_t id = -1, st = -1;
438 while (to->
GetString()[from] ==
' ') { from++; }
470 if (opt && !strncasecmp(opt,
"S",1))
490 if (
fSocket->Recv(mess) >= 0) {
493 Info(
"HandleInput",
"%p: got message type: %d",
this,
what);
499 Warning(
"HandleInput",
"%p: got unknown message type: %d",
this,
what);
504 Warning(
"HandleInput",
"%p: got message but socket is invalid!",
this);
523 Printf(
"ProofMgr: connection to coordinator at %s re-established",
528 Printf(
"TXProofMgr::HandleError: %p: got called ...",
this);
541 Printf(
"TXProofMgr::HandleError: %p: DONE ... ",
this);
562 Warning(
"Reset",
"invalid TXProofMgr - do nothing");
594 const char *pattern,
Bool_t rescan)
598 Warning(
"GetSessionLogs",
"invalid TXProofMgr - do nothing");
605 isess = (isess > 0) ? -isess : isess;
610 if (sesstag ==
"NR") {
616 Int_t xrs = (rescan) ? 1 : 0;
627 Warning(
"GetSessionLogs",
"Session tag undefined: corruption?\n"
628 " (received string: %s)", os->
GetName());
633 if (!rs.
Tokenize(purl, from,
"|")) {
634 Warning(
"GetSessionLogs",
"Pool URL undefined: corruption?\n"
635 " (received string: %s)", os->
GetName());
644 while (rs.
Tokenize(to, from,
"|")) {
654 if (url.
Contains(
".valgrind")) ord +=
"-valgrind";
658 Info(
"GetSessionLogs",
"ord: %s, url: %s", ord.
Data(), url.
Data());
665 const char *pat = pattern ? pattern :
"-v \"| SvcMsg\"";
666 if (pat && strlen(pat) > 0)
685 Warning(
"ReadBuffer",
"invalid TXProofMgr - do nothing");
702 Warning(
"ReadBuffer",
"invalid TXProofMgr - do nothing");
708 if (*pattern ==
'|') {
718 Int_t plen = strlen(ptr);
719 Int_t lfi = strlen(fin);
720 char *buf =
new char[lfi + plen + 1];
721 memcpy(buf, fin, lfi);
722 memcpy(buf+lfi, ptr, plen);
736 Warning(
"ShowROOTVersions",
"invalid TXProofMgr - do nothing");
744 Printf(
"----------------------------------------------------------\n");
745 Printf(
"Available versions (tag ROOT-vers remote-path PROOF-version):\n");
747 Printf(
"----------------------------------------------------------");
762 Warning(
"SetROOTVersion",
"invalid TXProofMgr - do nothing");
770 return (
fSocket->GetOpenError() != kXR_noErrorYet) ? -1 : 0;
786 if (!msg || strlen(msg) <= 0) {
787 Error(
"SendMsgToUsers",
"no message to send - do nothing");
792 const Int_t kMAXBUF = 32768;
793 char buf[kMAXBUF] = {0};
795 size_t space = kMAXBUF - 1;
799 if (usr && strlen(usr) > 0 && (strlen(usr) != 1 || usr[0] !=
'*')) {
800 lusr = (strlen(usr) + 3);
801 snprintf(buf, kMAXBUF,
"u:%s ", usr);
811 Error(
"SendMsgToUsers",
"request to read message from unreadable file '%s'", msg);
816 if (!(
f = fopen(msg,
"r"))) {
817 Error(
"SendMsgToUsers",
"file '%s' cannot be open", msg);
822 off_t rcsk = lseek(fileno(
f), (off_t) 0, SEEK_END);
823 if ((rcsk != (off_t)(-1))) {
824 left = (size_t) rcsk;
825 if ((lseek(fileno(
f), (off_t) 0, SEEK_SET) == (off_t)(-1))) {
826 Error(
"SendMsgToUsers",
"cannot rewind open file (seek to 0)");
831 Error(
"SendMsgToUsers",
"cannot get size of open file (seek to END)");
836 size_t wanted = left;
837 if (wanted > space) {
840 "requested to send %lld bytes: max size is %lld bytes: truncating",
844 while ((
len = read(fileno(
f), p, wanted)) < 0 &&
848 SysError(
"SendMsgToUsers",
"error reading file");
853 left = (
len >= (ssize_t)left) ? 0 : left -
len;
855 wanted = (left > kMAXBUF-1) ? kMAXBUF-1 : left;
857 }
while (
len > 0 && left > 0);
863 if (
len > (ssize_t)space) {
865 "requested to send %lld bytes: max size is %lld bytes: truncating",
888 Error(
"Grep",
"invalid TXProofMgr - do nothing");
892 if (
fSocket->GetXrdProofdVersion() < 1006) {
893 Error(
"Grep",
"functionality not supported by server");
914 Error(
"Find",
"invalid TXProofMgr - do nothing");
918 if (
fSocket->GetXrdProofdVersion() < 1006) {
919 Error(
"Find",
"functionality not supported by server (XrdProofd version: %d)",
920 fSocket->GetXrdProofdVersion());
941 Error(
"Ls",
"invalid TXProofMgr - do nothing");
945 if (
fSocket->GetXrdProofdVersion() < 1006) {
946 Error(
"Ls",
"functionality not supported by server");
967 Error(
"More",
"invalid TXProofMgr - do nothing");
971 if (
fSocket->GetXrdProofdVersion() < 1006) {
972 Error(
"More",
"functionality not supported by server");
995 Error(
"Rm",
"invalid TXProofMgr - do nothing");
999 if (
fSocket->GetXrdProofdVersion() < 1006) {
1000 Error(
"Rm",
"functionality not supported by server");
1004 TString prompt, ans(
"Y"), opt(how);
1009 while (!force && opt.
Tokenize(t, from,
" ")) {
1010 if (t ==
"--force") {
1018 if (!force && isatty(0) != 0 && isatty(1) != 0) {
1020 prompt.
Form(
"Do you really want to remove '%s'? [N/y]",
what);
1022 while (ans !=
"N" && ans !=
"Y") {
1023 ans = Getline(prompt.
Data());
1025 if (ans ==
"") ans =
"N";
1027 if (ans !=
"N" && ans !=
"Y")
1028 Printf(
"Please answer y, Y, n or N");
1057 Error(
"Tail",
"invalid TXProofMgr - do nothing");
1061 if (
fSocket->GetXrdProofdVersion() < 1006) {
1062 Error(
"Tail",
"functionality not supported by server");
1083 Error(
"Md5sum",
"invalid TXProofMgr - do nothing");
1087 if (
fSocket->GetXrdProofdVersion() < 1006) {
1088 Error(
"Md5sum",
"functionality not supported by server");
1092 if (where && !strcmp(where,
"all")) {
1093 Error(
"Md5sum",
"cannot run on all nodes at once: please specify one");
1120 Error(
"Stat",
"invalid TXProofMgr - do nothing");
1124 if (
fSocket->GetXrdProofdVersion() < 1006) {
1125 Error(
"Stat",
"functionality not supported by server");
1129 if (where && !strcmp(where,
"all")) {
1130 Error(
"Stat",
"cannot run on all nodes at once: please specify one");
1145 sscanf(os->
GetName(),
"%ld %ld %d %d %d %I64d %ld %d", &dev, &ino, &
mode,
1146 &uid, &gid, &
size, &mtime, &islink);
1148 sscanf(os->
GetName(),
"%ld %ld %d %d %d %lld %ld %d", &dev, &ino, &
mode,
1149 &uid, &gid, &
size, &mtime, &islink);
1166 if (st.
fDev == -1)
return -1;
1205 const char *
what,
const char *how,
const char *where)
1209 Error(
"Exec",
"invalid TXProofMgr - do nothing");
1213 if (
fSocket->GetXrdProofdVersion() < 1006) {
1214 Error(
"Exec",
"functionality not supported by server");
1219 Error(
"Exec",
"specifying a path is mandatory");
1229 while (opts.Tokenize(o, from,
" ")) {
1231 if (!o.
BeginsWith(
"-") && !isc && isn)
continue;
1242 }
else if (o ==
"-n") {
1244 }
else if (o ==
"--bytes=" || o ==
"--lines=") {
1255 if (cmd.IsNull()) cmd.Form(
"%s:%d",
fUrl.GetHost(),
fUrl.GetPort());
1287 Error(
"GetFile",
"invalid TXProofMgr - do nothing");
1291 if (
fSocket->GetXrdProofdVersion() < 1006) {
1292 Error(
"GetFile",
"functionality not supported by server");
1299 Error(
"GetFile",
"remote file path undefined");
1313 fileloc =
gSystem->BaseName(filerem);
1315 gSystem->ExpandPathName(fileloc);
1321 UInt_t openflags = O_WRONLY;
1329 if ((rcloc =
gSystem->GetPathInfo(fileloc, stloc)) == 0) {
1332 if (!fileloc.
EndsWith(
"/")) fileloc +=
"/";
1333 fileloc +=
gSystem->BaseName(filerem);
1335 rcloc =
gSystem->GetPathInfo(fileloc, stloc);
1341 Printf(
"[GetFile] local file '%s' exists and is not regular: cannot continue",
1347 Error(
"GetFile",
"cannot get user info for additional checks");
1358 Printf(
"[GetFile] file '%s' exists: no permission to delete or overwrite the file", fileloc.
Data());
1359 Printf(
"[GetFile] ownership: owner: %d, group: %d, other: %d", owner,
group, other);
1365 openflags |= O_CREAT | O_TRUNC;
1368 openflags |= O_CREAT;
1372 openflags |= O_CREAT;
1377 if (
Md5sum(filerem, remsum) != 0) {
1379 Printf(
"[GetFile] remote file '%s' does not exists or cannot be read", filerem.
Data());
1385 if (rcloc == 0 && !force) {
1388 if (remsum == md5loc->
AsString()) {
1390 Printf(
"[GetFile] local file '%s' and remote file '%s' have the same MD5 check sum",
1392 Printf(
"[GetFile] use option 'force' to override");
1401 const char *
a = Getline(
"Local file exists already: would you like to overwrite it? [N/y]");
1402 if (
a[0] ==
'n' ||
a[0] ==
'N' ||
a[0] ==
'\0')
return 0;
1409 Int_t fdout = open(fileloc, openflags, openmode);
1411 Error(
"GetFile",
"could not open local file '%s' for writing: errno: %d", local, errno);
1432 Error(
"GetFile",
"received non-digit size string: '%s' ('%s')", os->
GetName(), ssz.
Data());
1438 Error(
"GetFile",
"received null or negative size: %lld",
size);
1444 const Int_t kMAXBUF = 16384;
1450 while (rc == 0 && filesize <
size) {
1451 left =
size - filesize;
1452 if (left > kMAXBUF) left = kMAXBUF;
1453 rec =
fSocket->RecvRaw(&buf, left);
1454 filesize = (rec > 0) ? (filesize + rec) : filesize;
1463 SysError(
"GetFile",
"error writing to unit: %d", fdout);
1472 }
else if (rec < 0) {
1474 Error(
"GetFile",
"error during receiving file");
1482 Error(
"GetFile",
"size not received");
1497 if (!(md5loc.get())) {
1498 Error(
"GetFile",
"cannot get MD5 checksum of the new local file '%s'", fileloc.
Data());
1500 }
else if (remsum != md5loc->AsString()) {
1501 Error(
"GetFile",
"checksums for the local copy and the remote file differ: {rem:%s,loc:%s}",
1502 remsum.
Data(), md5loc->AsString());
1521 Error(
"PutFile",
"invalid TXProofMgr - do nothing");
1525 if (
fSocket->GetXrdProofdVersion() < 1006) {
1526 Error(
"PutFile",
"functionality not supported by server");
1533 Error(
"PutFile",
"local file path undefined");
1536 gSystem->ExpandPathName(fileloc);
1548 }
else if (filerem.
EndsWith(
"/")) {
1550 filerem +=
gSystem->BaseName(fileloc);
1557 UInt_t openflags = O_RDONLY;
1565 const char *why = (rcloc == 0) ?
"is not regular" :
"does not exists";
1566 Printf(
"[PutFile] local file '%s' %s: cannot continue", fileloc.
Data(), why);
1572 Error(
"PutFile",
"cannot get user info for additional checks");
1582 Printf(
"[PutFile] file '%s': no permission to read the file", fileloc.
Data());
1583 Printf(
"[PutFile] ownership: owner: %d, group: %d, other: %d", owner,
group, other);
1592 Error(
"PutFile",
"cannot calculate the check sum for '%s'", fileloc.
Data());
1603 if (
Stat(filerem, strem) == 0) {
1604 if (
Md5sum(filerem, remsum) != 0) {
1605 Printf(
"[PutFile] remote file exists but the check sum calculation failed");
1609 if (remsum == locsum) {
1611 Printf(
"[PutFile] local file '%s' and remote file '%s' have the same MD5 check sum",
1613 Printf(
"[PutFile] use option 'force' to override");
1620 const char *
a = Getline(
"Remote file exists already: would you like to overwrite it? [N/y]");
1621 if (
a[0] ==
'n' ||
a[0] ==
'N' ||
a[0] ==
'\0')
return 0;
1630 int fd = open(fileloc.
Data(), openflags);
1632 Error(
"PutFile",
"cannot open file '%s': %d", fileloc.
Data(), errno);
1639 if (force) cmd +=
" force";
1653 const Int_t kMAXBUF = 16384;
1657 lseek(fd, pos, SEEK_SET);
1660 while (rc == 0 && pos < stloc.
fSize) {
1662 if (left > kMAXBUF) left = kMAXBUF;
1666 if (siz < 0 || siz != left) {
1667 Error(
"PutFile",
"error reading from file: errno: %d", errno);
1672 if ((
src =
fSocket->fConn->WriteRaw((
void *)&buf[0], left)) != left) {
1686 Error(
"PutFile",
"command could not be executed");
1700 if (
Md5sum(filerem, remsum) != 0) {
1701 Printf(
"[PutFile] cannot get MD5 checksum of the new remote file '%s'", filerem.
Data());
1703 }
else if (remsum != locsum) {
1704 Printf(
"[PutFile] checksums for the local copy and the remote file differ: {rem:%s, loc:%s}",
1721 if (!pfx ||
size == 0 || !watch)
return;
1723 fprintf(stderr,
"[%s] Total %.02f MB\t|", pfx, (
Double_t)
size/1048576);
1725 for (
int l = 0;
l < 20;
l++) {
1728 fprintf(stderr,
"=");
1730 fprintf(stderr,
">");
1732 fprintf(stderr,
".");
1734 fprintf(stderr,
"=");
1740 fprintf(stderr,
"| %.02f %% [%.01f MB/s]\r",
1742 if (cr) fprintf(stderr,
"\n");
1756 Error(
"Cp",
"invalid TXProofMgr - do nothing");
1760 if (
fSocket->GetXrdProofdVersion() < 1006) {
1761 Error(
"Cp",
"functionality not supported by server");
1768 Error(
"Cp",
"source file path undefined");
1775 }
else if (filedst.
EndsWith(
"/")) {
1777 filedst +=
gSystem->BaseName(filesrc);
1793 cmd.
Form(
"%s %s %s", filesrc.
Data(), filedst.
Data(), (fmt ? fmt :
""));
static void retrieve(const gsl_integration_workspace *workspace, double *a, double *b, double *r, double *e)
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
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 r
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t 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 Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len
Option_t Option_t TPoint TPoint const char mode
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 Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t bytes
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t src
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 Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
const Int_t kPROOF_Protocol
externTVirtualMutex * gROOTMutex
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
void Printf(const char *fmt,...)
Formats a string in a circular formatting buffer and prints the string.
Bool_t R_ISREG(Int_t mode)
Bool_t R_ISDIR(Int_t mode)
R__EXTERN TSystem * gSystem
#define R__LOCKGUARD(mutex)
TProofMgr * GetTXProofMgr(const char *url, Int_t l, const char *al)
static TXProofMgrInit gxproofmgr_init
const Int_t kXPROOF_Protocol
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
void Add(TObject *obj) override
This code implements the MD5 message-digest algorithm.
const char * AsString() const
Return message digest as string.
static TMD5 * FileChecksum(const char *file)
Returns checksum of specified file.
virtual void SetName(const char *name)
Set the name of the TNamed.
Collectable string class.
const TString & GetString() const
const char * GetName() const override
Returns name of object.
virtual void SysError(const char *method, const char *msgfmt,...) const
Issue system error message.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
Implementation of the PROOF session log handler.
TProofLogElem * Add(const char *ord, const char *url)
Add new entry to the list of elements.
Int_t Retrieve(const char *ord="*", TProofLog::ERetrieveOpt opt=TProofLog::kTrailing, const char *fname=0, const char *pattern=0)
Retrieve the content of the log file associated with worker 'ord'.
TProofMgrInterruptHandler(const TProofMgrInterruptHandler &)
TProofMgrInterruptHandler & operator=(const TProofMgrInterruptHandler &)
TProofMgrInterruptHandler(TProofMgr *mgr)
Bool_t Notify()
TProofMgr interrupt handler.
The PROOF manager interacts with the PROOF server coordinator to create or destroy a PROOF session,...
TProofMgr(const TProofMgr &)
virtual const char * GetUrl()
TSignalHandler * fIntHandler
static void SetTXProofMgrHook(TProofMgr_t pmh)
Set hook to TXProofMgr ctor.
virtual TProofDesc * GetProofDesc(Int_t id)
Get TProofDesc instance corresponding to 'id'.
This class controls a Parallel ROOT Facility, PROOF, cluster.
void Close(Option_t *option="")
Close all open slave servers.
void InterruptCurrentMonitor()
If in active in a monitor set ready state.
void SetManager(TProofMgr *mgr)
Set manager and schedule its destruction after this for clean operations.
Double_t RealTime()
Stop the stopwatch (if it is running) and return the realtime (in seconds) passed between the start a...
void Start(Bool_t reset=kTRUE)
Start the stopwatch.
void Continue()
Resume a stopped stopwatch.
void Stop()
Stop the stopwatch.
Int_t Atoi() const
Return integer value of string.
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Return true if string ends with the specified string.
TSubString Strip(EStripType s=kTrailing, char c=' ') const
Return a substring of self stripped at beginning and/or end.
const char * Data() const
Bool_t IsDigit() const
Returns true if all characters in string are digits (0-9) or white spaces, i.e.
TString & ReplaceAll(const TString &s1, const TString &s2)
void ToUpper()
Change string to upper case.
TObjArray * Tokenize(const TString &delim) const
This function is used to isolate sequential tokens in a TString.
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
TString & Remove(Ssiz_t pos)
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
Long64_t Atoll() const
Return long long value of string.
static void ResetErrno()
Static function resetting system error number.
static Int_t GetErrno()
Static function returning system error number.
This class represents a WWW compatible URL.
const char * GetUrl(Bool_t withDeflt=kFALSE) const
Return full URL.
const char * GetFileAndOptions() const
Return the file and its options (the string specified behind the ?).
const char * GetFile() const
void SetProtocol(const char *proto, Bool_t setDefaultPort=kFALSE)
Set protocol and, optionally, change the port accordingly.
const char * GetUser() const
const char * GetHostFQDN() const
Return fully qualified domain name of url host.
const char * GetProtocol() const
Handler of asynchronous events for XProofD sockets.
Implementation of the functionality provided by TProofMgr in the case of a xproofd-based session.
void Ls(const char *what="~/", const char *how=0, const char *where=0) override
Run 'ls' on the nodes.
void Tail(const char *what, const char *how=0, const char *where=0) override
Run 'tail' on the nodes.
Int_t Reset(Bool_t hard=kFALSE, const char *usr=0) override
Send a cleanup request for the sessions associated with the current user.
~TXProofMgr() override
Destructor: close the connection.
void CpProgress(const char *pfx, Long64_t bytes, Long64_t size, TStopwatch *watch, Bool_t cr=kFALSE)
Print file copy progress.
Bool_t IsValid() const override
void ShowWorkers() override
Show available workers.
TList * QuerySessions(Option_t *opt="S") override
Get list of sessions accessible to this manager.
void SetInvalid() override
Invalidate this manager by closing the connection.
void ShowROOTVersions() override
Display what ROOT versions are available on the cluster.
Int_t Md5sum(const char *what, TString &sum, const char *where=0) override
Run 'md5sum' on one of the nodes.
void DetachSession(Int_t, Option_t *="") override
Detach session with 'id' from its proofserv.
Int_t SendMsgToUsers(const char *msg, const char *usr=0) override
Send a message to connected users.
Int_t GetFile(const char *remote, const char *local, const char *opt=0) override
Get file 'remote' into 'local' from the master.
TProof * AttachSession(Int_t id, Bool_t gui=kFALSE) override
Dummy version provided for completeness.
TXProofMgr(const char *url, Int_t loglevel=-1, const char *alias="")
Create a PROOF manager for the standard (old) environment.
void More(const char *what, const char *how=0, const char *where=0) override
Run 'more' on the nodes.
Int_t Cp(const char *src, const char *dst=0, const char *opts=0) override
Copy files in/out of the sandbox.
Int_t SetROOTVersion(const char *tag) override
Set the default ROOT version to be used.
Int_t Rm(const char *what, const char *how=0, const char *where=0) override
Run 'rm' on the nodes.
Int_t PutFile(const char *local, const char *remote, const char *opt=0) override
Put file 'local'to 'remote' to the master If opt is "force", the file, if it exists remotely,...
Int_t Stat(const char *what, FileStat_t &st, const char *where=0) override
Run 'stat' on one of the nodes.
Bool_t HandleError(const void *in=0) override
Handle error on the input socket.
Int_t Init(Int_t loglevel=-1)
Do real initialization: open the connection and set the relevant variables.
TObjString * Exec(Int_t action, const char *what, const char *how, const char *where)
Execute 'action' (see EAdminExecType in 'XProofProtocol.h') at 'where' (default master),...
Bool_t HandleInput(const void *) override
Handle asynchronous input on the socket.
const char * GetMssUrl(Bool_t=kFALSE) override
Gets the URL to be prepended to paths when accessing the MSS associated with the connected cluster,...
void Grep(const char *what, const char *how=0, const char *where=0) override
Run 'grep' on the nodes.
Bool_t MatchUrl(const char *url) override
Checks if 'url' refers to the same user@host:port entity as the URL in memory.
void Find(const char *what="~/", const char *how="-type f", const char *where=0) override
Run 'find' on the nodes.
TObjString * ReadBuffer(const char *file, Long64_t ofs, Int_t len) override
Read, via the coordinator, 'len' bytes from offset 'ofs' of 'file'.
TProofLog * GetSessionLogs(Int_t ridx=0, const char *stag=0, const char *pattern="-v \"| SvcMsg\"", Bool_t rescan=kFALSE) override
Get logs or log tails from last session associated with this manager instance.
static TXSocketHandler * GetSocketHandler(TFileHandler *h=0, TSocket *s=0)
Get an instance of the input socket handler with 'h' as handler, connected to socket 's'.
High level handler of connections to XProofD.
void CtrlC()
Interrupt the remote protocol instance.
Bool_t IsValid() const
Getter for validity status.
static uint64_t sum(uint64_t i)