58 TProofMgrInterruptHandler(
const TProofMgrInterruptHandler&);
59 TProofMgrInterruptHandler&
operator=(
const TProofMgrInterruptHandler&);
69 Bool_t TProofMgrInterruptHandler::Notify()
72 if (isatty(0) != 0 && isatty(1) != 0) {
74 Printf(
"Opening new connection to %s", u.
Data());
77 if (s && s->IsValid()) {
91 class TXProofMgrInit {
108 if (
Init(dbg) != 0) {
134 Error(
"Init",
"while opening the connection to %s - exit (error: %d)",
175 gROOT->GetListOfSockets()->Remove(
this);
187 Warning(
"AttachSession",
"invalid TXProofMgr - do nothing");
191 Warning(
"AttachSession",
"invalid description object - do nothing");
225 Error(
"AttachSession",
"attaching to PROOF session");
239 Warning(
"DetachSession",
"invalid TXProofMgr - do nothing");
254 }
else if (
id == 0) {
283 Warning(
"DetachSession",
"invalid TXProofMgr - do nothing");
311 Warning(
"MatchUrl",
"invalid TXProofMgr - do nothing");
346 Warning(
"ShowWorkers",
"invalid TXProofMgr - do nothing");
374 Error(
"GetMssUrl",
"invalid TXProofMgr - do nothing");
379 Error(
"GetMssUrl",
"functionality not supported by server");
388 Error(
"GetMssUrl",
"problems retrieving the required information");
392 Warning(
"GetMssUrl",
"TXProofMgr is now invalid: information may not be valid");
405 if (opt && !strncasecmp(opt,
"L",1))
411 Warning(
"QuerySessions",
"invalid TXProofMgr - do nothing");
431 Printf(
"// +++ %s session(s) currently active +++", to->
GetName());
434 Int_t id = -1, st = -1;
437 while (to->
GetString()[from] ==
' ') { from++; }
469 if (opt && !strncasecmp(opt,
"S",1))
492 Info(
"HandleInput",
"%p: got message type: %d",
this, what);
498 Warning(
"HandleInput",
"%p: got unknown message type: %d",
this, what);
503 Warning(
"HandleInput",
"%p: got message but socket is invalid!",
this);
522 Printf(
"ProofMgr: connection to coordinator at %s re-established",
527 Printf(
"TXProofMgr::HandleError: %p: got called ...",
this);
540 Printf(
"TXProofMgr::HandleError: %p: DONE ... ",
this);
561 Warning(
"Reset",
"invalid TXProofMgr - do nothing");
593 const char *pattern,
Bool_t rescan)
597 Warning(
"GetSessionLogs",
"invalid TXProofMgr - do nothing");
604 isess = (isess > 0) ? -isess : isess;
609 if (sesstag ==
"NR") {
615 Int_t xrs = (rescan) ? 1 : 0;
625 if (!rs.Tokenize(tag, from,
"|")) {
626 Warning(
"GetSessionLogs",
"Session tag undefined: corruption?\n" 627 " (received string: %s)", os->
GetName());
632 if (!rs.Tokenize(purl, from,
"|")) {
633 Warning(
"GetSessionLogs",
"Pool URL undefined: corruption?\n" 634 " (received string: %s)", os->
GetName());
643 while (rs.Tokenize(to, from,
"|")) {
653 if (url.
Contains(
".valgrind")) ord +=
"-valgrind";
657 Info(
"GetSessionLogs",
"ord: %s, url: %s", ord.
Data(), url.
Data());
663 if (pl && retrieve) {
664 const char *pat = pattern ? pattern :
"-v \"| SvcMsg\"";
665 if (pat && strlen(pat) > 0)
684 Warning(
"ReadBuffer",
"invalid TXProofMgr - do nothing");
701 Warning(
"ReadBuffer",
"invalid TXProofMgr - do nothing");
707 if (*pattern ==
'|') {
717 Int_t plen = strlen(ptr);
718 Int_t lfi = strlen(fin);
719 char *buf =
new char[lfi + plen + 1];
720 memcpy(buf, fin, lfi);
721 memcpy(buf+lfi, ptr, plen);
735 Warning(
"ShowROOTVersions",
"invalid TXProofMgr - do nothing");
743 Printf(
"----------------------------------------------------------\n");
744 Printf(
"Available versions (tag ROOT-vers remote-path PROOF-version):\n");
746 Printf(
"----------------------------------------------------------");
761 Warning(
"SetROOTVersion",
"invalid TXProofMgr - do nothing");
785 if (!msg || strlen(msg) <= 0) {
786 Error(
"SendMsgToUsers",
"no message to send - do nothing");
791 const Int_t kMAXBUF = 32768;
792 char buf[kMAXBUF] = {0};
794 size_t space = kMAXBUF - 1;
798 if (usr && strlen(usr) > 0 && (strlen(usr) != 1 || usr[0] !=
'*')) {
799 lusr = (strlen(usr) + 3);
800 snprintf(buf, kMAXBUF,
"u:%s ", usr);
810 Error(
"SendMsgToUsers",
"request to read message from unreadable file '%s'", msg);
815 if (!(f = fopen(msg,
"r"))) {
816 Error(
"SendMsgToUsers",
"file '%s' cannot be open", msg);
821 off_t rcsk = lseek(fileno(f), (off_t) 0, SEEK_END);
822 if ((rcsk != (off_t)(-1))) {
823 left = (size_t) rcsk;
824 if ((lseek(fileno(f), (off_t) 0, SEEK_SET) == (off_t)(-1))) {
825 Error(
"SendMsgToUsers",
"cannot rewind open file (seek to 0)");
830 Error(
"SendMsgToUsers",
"cannot get size of open file (seek to END)");
835 size_t wanted = left;
836 if (wanted > space) {
839 "requested to send %lld bytes: max size is %lld bytes: truncating",
843 while ((len = read(fileno(f), p, wanted)) < 0 &&
847 SysError(
"SendMsgToUsers",
"error reading file");
852 left = (len >= (ssize_t)left) ? 0 : left - len;
854 wanted = (left > kMAXBUF-1) ? kMAXBUF-1 : left;
856 }
while (len > 0 && left > 0);
862 if (len > (ssize_t)space) {
864 "requested to send %lld bytes: max size is %lld bytes: truncating",
887 Error(
"Grep",
"invalid TXProofMgr - do nothing");
892 Error(
"Grep",
"functionality not supported by server");
913 Error(
"Find",
"invalid TXProofMgr - do nothing");
918 Error(
"Find",
"functionality not supported by server (XrdProofd version: %d)",
940 Error(
"Ls",
"invalid TXProofMgr - do nothing");
945 Error(
"Ls",
"functionality not supported by server");
966 Error(
"More",
"invalid TXProofMgr - do nothing");
971 Error(
"More",
"functionality not supported by server");
994 Error(
"Rm",
"invalid TXProofMgr - do nothing");
999 Error(
"Rm",
"functionality not supported by server");
1003 TString prompt, ans(
"Y"), opt(how);
1008 while (!force && opt.
Tokenize(t, from,
" ")) {
1009 if (t ==
"--force") {
1017 if (!force && isatty(0) != 0 && isatty(1) != 0) {
1019 prompt.
Form(
"Do you really want to remove '%s'? [N/y]", what);
1021 while (ans !=
"N" && ans !=
"Y") {
1022 ans = Getline(prompt.
Data());
1024 if (ans ==
"") ans =
"N";
1026 if (ans !=
"N" && ans !=
"Y")
1027 Printf(
"Please answer y, Y, n or N");
1056 Error(
"Tail",
"invalid TXProofMgr - do nothing");
1061 Error(
"Tail",
"functionality not supported by server");
1082 Error(
"Md5sum",
"invalid TXProofMgr - do nothing");
1087 Error(
"Md5sum",
"functionality not supported by server");
1091 if (where && !strcmp(where,
"all")) {
1092 Error(
"Md5sum",
"cannot run on all nodes at once: please specify one");
1119 Error(
"Stat",
"invalid TXProofMgr - do nothing");
1124 Error(
"Stat",
"functionality not supported by server");
1128 if (where && !strcmp(where,
"all")) {
1129 Error(
"Stat",
"cannot run on all nodes at once: please specify one");
1140 Int_t mode, uid, gid, islink;
1144 sscanf(os->
GetName(),
"%ld %ld %d %d %d %I64d %ld %d", &dev, &ino, &mode,
1145 &uid, &gid, &size, &mtime, &islink);
1147 sscanf(os->
GetName(),
"%ld %ld %d %d %d %lld %ld %d", &dev, &ino, &mode,
1148 &uid, &gid, &size, &mtime, &islink);
1165 if (st.
fDev == -1)
return -1;
1204 const char *what,
const char *how,
const char *where)
1208 Error(
"Exec",
"invalid TXProofMgr - do nothing");
1213 Error(
"Exec",
"functionality not supported by server");
1217 if (!what || strlen(what) <= 0) {
1218 Error(
"Exec",
"specifying a path is mandatory");
1228 while (opts.Tokenize(o, from,
" ")) {
1230 if (!o.
BeginsWith(
"-") && !isc && isn)
continue;
1241 }
else if (o ==
"-n") {
1243 }
else if (o ==
"--bytes=" || o ==
"--lines=") {
1286 Error(
"GetFile",
"invalid TXProofMgr - do nothing");
1291 Error(
"GetFile",
"functionality not supported by server");
1298 Error(
"GetFile",
"remote file path undefined");
1320 UInt_t openflags = O_WRONLY;
1331 if (!fileloc.
EndsWith(
"/")) fileloc +=
"/";
1340 Printf(
"[GetFile] local file '%s' exists and is not regular: cannot continue",
1346 Error(
"GetFile",
"cannot get user info for additional checks");
1357 Printf(
"[GetFile] file '%s' exists: no permission to delete or overwrite the file", fileloc.
Data());
1358 Printf(
"[GetFile] ownership: owner: %d, group: %d, other: %d", owner, group, other);
1364 openflags |= O_CREAT | O_TRUNC;
1367 openflags |= O_CREAT;
1371 openflags |= O_CREAT;
1376 if (
Md5sum(filerem, remsum) != 0) {
1378 Printf(
"[GetFile] remote file '%s' does not exists or cannot be read", filerem.
Data());
1384 if (rcloc == 0 && !force) {
1387 if (remsum == md5loc->
AsString()) {
1389 Printf(
"[GetFile] local file '%s' and remote file '%s' have the same MD5 check sum",
1391 Printf(
"[GetFile] use option 'force' to override");
1400 const char *
a = Getline(
"Local file exists already: would you like to overwrite it? [N/y]");
1401 if (a[0] ==
'n' || a[0] ==
'N' || a[0] ==
'\0')
return 0;
1408 Int_t fdout =
open(fileloc, openflags, openmode);
1410 Error(
"GetFile",
"could not open local file '%s' for writing: errno: %d", local, errno);
1430 if (!ssz.IsDigit()) {
1431 Error(
"GetFile",
"received non-digit size string: '%s' ('%s')", os->
GetName(), ssz.Data());
1437 Error(
"GetFile",
"received null or negative size: %lld", size);
1443 const Int_t kMAXBUF = 16384;
1449 while (rc == 0 && filesize < size) {
1450 left = size - filesize;
1451 if (left > kMAXBUF) left = kMAXBUF;
1453 filesize = (rec > 0) ? (filesize + rec) : filesize;
1462 SysError(
"GetFile",
"error writing to unit: %d", fdout);
1470 CpProgress(
"GetFile", filesize, size, &watch);
1471 }
else if (rec < 0) {
1473 Error(
"GetFile",
"error during receiving file");
1481 Error(
"GetFile",
"size not received");
1496 if (!(md5loc.get())) {
1497 Error(
"GetFile",
"cannot get MD5 checksum of the new local file '%s'", fileloc.
Data());
1499 }
else if (remsum != md5loc->
AsString()) {
1500 Error(
"GetFile",
"checksums for the local copy and the remote file differ: {rem:%s,loc:%s}",
1520 Error(
"PutFile",
"invalid TXProofMgr - do nothing");
1525 Error(
"PutFile",
"functionality not supported by server");
1532 Error(
"PutFile",
"local file path undefined");
1547 }
else if (filerem.
EndsWith(
"/")) {
1556 UInt_t openflags = O_RDONLY;
1564 const char *why = (rcloc == 0) ?
"is not regular" :
"does not exists";
1565 Printf(
"[PutFile] local file '%s' %s: cannot continue", fileloc.
Data(), why);
1571 Error(
"PutFile",
"cannot get user info for additional checks");
1581 Printf(
"[PutFile] file '%s': no permission to read the file", fileloc.
Data());
1582 Printf(
"[PutFile] ownership: owner: %d, group: %d, other: %d", owner, group, other);
1591 Error(
"PutFile",
"cannot calculate the check sum for '%s'", fileloc.
Data());
1602 if (
Stat(filerem, strem) == 0) {
1603 if (
Md5sum(filerem, remsum) != 0) {
1604 Printf(
"[PutFile] remote file exists but the check sum calculation failed");
1608 if (remsum == locsum) {
1610 Printf(
"[PutFile] local file '%s' and remote file '%s' have the same MD5 check sum",
1612 Printf(
"[PutFile] use option 'force' to override");
1619 const char *
a = Getline(
"Remote file exists already: would you like to overwrite it? [N/y]");
1620 if (a[0] ==
'n' || a[0] ==
'N' || a[0] ==
'\0')
return 0;
1629 int fd =
open(fileloc.
Data(), openflags);
1631 Error(
"PutFile",
"cannot open file '%s': %d", fileloc.
Data(), errno);
1638 if (force) cmd +=
" force";
1652 const Int_t kMAXBUF = 16384;
1656 lseek(fd, pos, SEEK_SET);
1659 while (rc == 0 && pos < stloc.
fSize) {
1661 if (left > kMAXBUF) left = kMAXBUF;
1665 if (siz < 0 || siz != left) {
1666 Error(
"PutFile",
"error reading from file: errno: %d", errno);
1685 Error(
"PutFile",
"command could not be executed");
1699 if (
Md5sum(filerem, remsum) != 0) {
1700 Printf(
"[PutFile] cannot get MD5 checksum of the new remote file '%s'", filerem.
Data());
1702 }
else if (remsum != locsum) {
1703 Printf(
"[PutFile] checksums for the local copy and the remote file differ: {rem:%s, loc:%s}",
1720 if (!pfx || size == 0 || !watch)
return;
1722 fprintf(stderr,
"[%s] Total %.02f MB\t|", pfx, (
Double_t)size/1048576);
1724 for (
int l = 0;
l < 20;
l++) {
1726 if (
l < 20*bytes/size)
1727 fprintf(stderr,
"=");
1728 else if (
l == 20*bytes/size)
1729 fprintf(stderr,
">");
1730 else if (
l > 20*bytes/size)
1731 fprintf(stderr,
".");
1733 fprintf(stderr,
"=");
1739 fprintf(stderr,
"| %.02f %% [%.01f MB/s]\r",
1740 100.0*bytes/size, bytes/copytime/1048576.);
1741 if (cr) fprintf(stderr,
"\n");
1755 Error(
"Cp",
"invalid TXProofMgr - do nothing");
1760 Error(
"Cp",
"functionality not supported by server");
1767 Error(
"Cp",
"source file path undefined");
1774 }
else if (filedst.
EndsWith(
"/")) {
1792 cmd.
Form(
"%s %s %s", filesrc.
Data(), filedst.
Data(), (fmt ? fmt :
""));
virtual const char * BaseName(const char *pathname)
Base name of a file name. Base name of /user/root is root.
virtual const char * GetName() const
Returns name of object.
virtual void SysError(const char *method, const char *msgfmt,...) const
Issue system error message.
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
void ShowWorkers()
Show available workers.
Int_t GetOpenError() const
Getter for last error.
TObjString * ReadBuffer(const char *file, Long64_t ofs, Int_t len)
Read, via the coordinator, 'len' bytes from offset 'ofs' of 'file'.
static long int sum(long int i)
virtual Bool_t ProcessEvents()
Process pending events (GUI, timers, sockets).
virtual void Delete(Option_t *option="")
Remove all objects from the list AND delete all heap based objects.
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
Double_t RealTime()
Stop the stopwatch (if it is running) and return the realtime (in seconds) passed between the start a...
void CpProgress(const char *pfx, Long64_t bytes, Long64_t size, TStopwatch *watch, Bool_t cr=kFALSE)
Print file copy progress.
void Start(Bool_t reset=kTRUE)
Start the stopwatch.
Int_t Stat(const char *what, FileStat_t &st, const char *where=0)
Run 'stat' on one of the nodes.
Int_t Md5sum(const char *what, TString &sum, const char *where=0)
Run 'md5sum' on one of the nodes.
void DetachSession(Int_t, Option_t *="")
Detach session with 'id' from its proofserv.
static TMD5 * FileChecksum(const char *file)
Returns checksum of specified file.
void SetProtocol(const char *proto, Bool_t setDefaultPort=kFALSE)
Set protocol and, optionally, change the port accordingly.
Bool_t HandleError(const void *in=0)
Handle error on the input socket.
Int_t Cp(const char *src, const char *dst=0, const char *opts=0)
Copy files in/out of the sandbox.
Collectable string class.
virtual void Close(Option_t *opt="")
Close connection.
void InterruptCurrentMonitor()
If in active in a monitor set ready state.
This class represents a WWW compatible URL.
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'...
TString & ReplaceAll(const TString &s1, const TString &s2)
int GetPathInfo(const char *path, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime)
Get info about a file: id, size, flags, modification time.
const char * GetProtocol() const
virtual void SetName(const char *name)
Set the name of the TNamed.
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
TProof * GetProof() const
The PROOF manager interacts with the PROOF server coordinator to create or destroy a PROOF session...
virtual void Add()
Add signal handler to system signal handler list.
void SetInvalid()
Invalidate this manager by closing the connection.
void ToUpper()
Change string to upper case.
void More(const char *what, const char *how=0, const char *where=0)
Run 'more' on the nodes.
const char * GetFileAndOptions() const
Return the file and its options (the string specified behind the ?).
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
const char * AsString() const
Return message digest as string.
void Grep(const char *what, const char *how=0, const char *where=0)
Run 'grep' on the nodes.
Int_t GetFile(const char *remote, const char *local, const char *opt=0)
Get file 'remote' into 'local' from the master.
R__EXTERN TVirtualMutex * gROOTMutex
const char * GetMssUrl(Bool_t=kFALSE)
Gets the URL to be prepended to paths when accessing the MSS associated with the connected cluster...
TList * QuerySessions(Option_t *opt="S")
Get list of sessions accessible to this manager.
static void retrieve(const gsl_integration_workspace *workspace, double *a, double *b, double *r, double *e)
TXProofMgr(const char *url, Int_t loglevel=-1, const char *alias="")
Create a PROOF manager for the standard (old) environment.
void RemoteTouch()
Remote touch functionality: contact the server to proof our vitality.
virtual TFileHandler * RemoveFileHandler(TFileHandler *fh)
Remove a file handler from the list of file handlers.
const char * GetHostFQDN() const
Return fully qualified domain name of url host.
Bool_t R_ISREG(Int_t mode)
const char * GetUrl(Bool_t withDeflt=kFALSE) const
Return full URL.
virtual TObject * FindObject(const char *name) const
Delete a TObjLink object.
static Int_t GetErrno()
Static function returning system error number.
Int_t SendMsgToUsers(const char *msg, const char *usr=0)
Send a message to connected users.
void SetRemoteId(Int_t id)
TProofLog * GetSessionLogs(Int_t ridx=0, const char *stag=0, const char *pattern="-v \ SvcMsg\, Bool_t rescan=kFALSE)
Get logs or log tails from last session associated with this manager instance.
Bool_t MatchUrl(const char *url)
Checks if 'url' refers to the same 'user:port' entity as the URL in memory.
const char * GetHost() const
virtual Bool_t Notify()
Notify when signal occurs.
static TXProofMgrInit gxproofmgr_init
Int_t Reset(Bool_t hard=kFALSE, const char *usr=0)
Send a cleanup request for the sessions associated with the current user.
TProofMgr * GetTXProofMgr(const char *url, Int_t l, const char *al)
virtual int WriteRaw(const void *buf, int len, XrdClientPhyConnection *p=0)
Low level write call.
void Stop()
Stop the stopwatch.
Int_t RecvRaw(void *buf, Int_t len, ESendRecvOptions opt=kDefault)
Receive a raw buffer of specified length bytes.
This code implements the MD5 message-digest algorithm.
void Ls(const char *what="~/", const char *how=0, const char *where=0)
Run 'ls' on the nodes.
virtual ~TXProofMgr()
Destructor: close the connection.
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Return true if string ends with the specified string.
virtual UserGroup_t * GetUserInfo(Int_t uid)
Returns all user info in the UserGroup_t structure.
virtual TProofDesc * GetProofDesc(Int_t id)
Get TProofDesc instance corresponding to 'id'.
TObject & operator=(const TObject &rhs)
TObject assignment operator.
void Continue()
Resume a stopped stopwatch.
Bool_t IsServProofd()
Return kTRUE if the remote server is a 'proofd'.
Long64_t Atoll() const
Return long long value of string.
Int_t GetRemoteProtocol() const
void SetManager(TProofMgr *mgr)
Set manager and schedule its destruction after this for clean operations.
const char * GetUser() const
const char * GetName() const
Returns name of object.
const TString & GetString() const
void ShowROOTVersions()
Display what ROOT versions are available on the cluster.
TSignalHandler * fIntHandler
R__EXTERN TSystem * gSystem
Handler of asynchronous events for XProofD sockets.
virtual TObject * Remove(TObject *obj)
Remove object from the list.
High level handler of connections to XProofD.
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
char * Form(const char *fmt,...)
TSubString Strip(EStripType s=kTrailing, char c=' ') const
Return a substring of self stripped at beginning and/or end.
Int_t PutFile(const char *local, const char *remote, const char *opt=0)
Put file 'local'to 'remote' to the master If opt is "force", the file, if it exists remotely...
virtual const char * GetUrl()
const Int_t kPROOF_Protocol
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), with options 'how', on 'what'.
Implementation of the functionality provided by TProofMgr in the case of a xproofd-based session...
Int_t Rm(const char *what, const char *how=0, const char *where=0)
Run 'rm' on the nodes.
void Print(Option_t *opt="") const
Dump the content to the screen.
virtual Int_t Reconnect()
Try reconnection after failure.
void DisconnectSession(Int_t id, Option_t *opt="")
Disconnect a session.
TString & Remove(Ssiz_t pos)
TProof * AttachSession(Int_t id, Bool_t gui=kFALSE)
Dummy version provided for completeness.
TObjArray * Tokenize(const TString &delim) const
This function is used to isolate sequential tokens in a TString.
void Close(Option_t *option="")
Close all open slave servers.
const Int_t kXPROOF_Protocol
virtual void Remove()
Remove signal handler from system signal handler list.
This class controls a Parallel ROOT Facility, PROOF, cluster.
Bool_t HandleInput(const void *)
Handle asynchronous input on the socket.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
static constexpr double s
#define R__LOCKGUARD(mutex)
Int_t Recv(TMessage *&mess)
Receive a TMessage object.
virtual Int_t GetUid(const char *user=0)
Returns the user's id. If user = 0, returns current user's id.
static void SetTXProofMgrHook(TProofMgr_t pmh)
Set hook to TXProofMgr ctor.
void Find(const char *what="~/", const char *how="-type f", const char *where=0)
Run 'find' on the nodes.
Bool_t R_ISDIR(Int_t mode)
Int_t SetROOTVersion(const char *tag)
Set the default ROOT version to be used.
TProofLogElem * Add(const char *ord, const char *url)
Add new entry to the list of elements.
Bool_t IsValid() const
Getter for validity status.
virtual int GetServiceByName(const char *service)
Get port # of internet service.
virtual void Add(TObject *obj)
Int_t Init(Int_t loglevel=-1)
Do real initialization: open the connection and set the relevant variables.
TObjString * SendCoordinator(Int_t kind, const char *msg=0, Int_t int2=0, Long64_t l64=0, Int_t int3=0, const char *opt=0)
Send message to intermediate coordinator.
Int_t Atoi() const
Return integer value of string.
Bool_t IsDigit() const
Returns true if all characters in string are digits (0-9) or white spaces, i.e.
virtual void AddFileHandler(TFileHandler *fh)
Add a file handler to the list of system file handlers.
static void ResetErrno()
Static function resetting system error number.
virtual Bool_t ExpandPathName(TString &path)
Expand a pathname getting rid of special shell characters like ~.
void Tail(const char *what, const char *how=0, const char *where=0)
Run 'tail' on the nodes.
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
Int_t GetRemoteId() const
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
Implementation of the PROOF session log handler.
Int_t GetXrdProofdVersion() const
const char * Data() const
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'.