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");
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");
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") {
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*(size?(bytes/size):1), 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 :
""));
const char * GetHost() const
const char * GetName() const
Returns name of object.
virtual const char * BaseName(const char *pathname)
Base name of a file name. Base name of /user/root is root.
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.
double read(const std::string &file_name)
reading
XYZVector ans(TestRotation const &t, XYZVector const &v_in)
TObjString * ReadBuffer(const char *file, Long64_t ofs, Int_t len)
Read, via the coordinator, 'len' bytes from offset 'ofs' of 'file'.
Bool_t IsValid() const
Getter for validity status.
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.
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.
Int_t GetRemoteProtocol() const
Int_t GetXrdProofdVersion() const
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.
double write(int n, const std::string &file_name, const std::string &vector_type, int compress=0)
writing
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.
Int_t GetRemoteId() const
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.
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.
const char * GetProtocol() const
The PROOF manager interacts with the PROOF server coordinator to create or destroy a PROOF session...
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
virtual void Add()
Add signal handler to system signal handler list.
void SetInvalid()
Invalidate this manager by closing the connection.
void Print(Option_t *opt="") const
Dump the content to the screen.
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.
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
virtual TObject * FindObject(const char *name) const
Find an object in this list using its name.
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.
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
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.
Bool_t R_ISREG(Int_t mode)
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)
Bool_t MatchUrl(const char *url)
Checks if 'url' refers to the same 'user:port' entity as the URL in memory.
const char * Data() const
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.
const char * AsString() const
Return message digest as string.
This code implements the MD5 message-digest algorithm.
virtual Bool_t Notify()
This method must be overridden to handle object notification.
void Ls(const char *what="~/", const char *how=0, const char *where=0)
Run 'ls' on the nodes.
virtual ~TXProofMgr()
Destructor: close the connection.
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'.
Int_t Atoi() const
Return integer value of string.
void Continue()
Resume a stopped stopwatch.
Bool_t IsServProofd()
Return kTRUE if the remote server is a 'proofd'.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
void SetManager(TProofMgr *mgr)
Set manager and schedule its destruction after this for clean operations.
void ShowROOTVersions()
Display what ROOT versions are available on the cluster.
TString GetString() const
TSignalHandler * fIntHandler
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Return true if string ends with the specified string.
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.
const char * GetHostFQDN() const
Return fully qualified domain name of url host.
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
char * Form(const char *fmt,...)
const char * GetFileAndOptions() const
Return the file and its options (the string specified behind the ?).
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 * GetName() const
Returns name of object.
TSubString Strip(EStripType s=kTrailing, char c= ' ') const
Return a substring of self stripped at beginning and/or end.
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.
TObjArray * Tokenize(const TString &delim) const
This function is used to isolate sequential tokens in a TString.
virtual Int_t Reconnect()
Try reconnection after failure.
#define R__LOCKGUARD2(mutex)
const char * GetUrl(Bool_t withDeflt=kFALSE) const
Return full URL.
void DisconnectSession(Int_t id, Option_t *opt="")
Disconnect a session.
TString & Remove(Ssiz_t pos)
virtual void SysError(const char *method, const char *msgfmt,...) const
Issue system error message.
TProof * AttachSession(Int_t id, Bool_t gui=kFALSE)
Dummy version provided for completeness.
void Close(Option_t *option="")
Close all open slave servers.
virtual Int_t GetSize() const
const Int_t kXPROOF_Protocol
Long64_t Atoll() const
Return long long value of string.
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.
TApplication & operator=(const TApplication &)
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.
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 IsDigit() const
Returns true if all characters in string are digits (0-9) or white spaces, i.e.
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.
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.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
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.
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.
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
Int_t GetOpenError() const
Getter for last error.
const char * GetUser() const
Implementation of the PROOF session log handler.
TProof * GetProof() 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'.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.