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();
 
  210   if (
p && 
p->IsValid()) {
 
  222      p->SetName(
d->GetName());
 
  226      Error(
"AttachSession", 
"attaching to PROOF session");
 
  240      Warning(
"DetachSession",
"invalid TXProofMgr - do nothing");
 
  255   } 
else if (
id == 0) {
 
  284      Warning(
"DetachSession",
"invalid TXProofMgr - do nothing");
 
  312      Warning(
"MatchUrl",
"invalid TXProofMgr - do nothing");
 
  347      Warning(
"ShowWorkers",
"invalid TXProofMgr - do nothing");
 
  375         Error(
"GetMssUrl", 
"invalid TXProofMgr - do nothing");
 
  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))
 
  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);
 
  537            p->InterruptCurrentMonitor();
 
  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");
 
  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");
 
  893      Error(
"Grep", 
"functionality not supported by server");
 
  914      Error(
"Find",
"invalid TXProofMgr - do nothing");
 
  919      Error(
"Find", 
"functionality not supported by server (XrdProofd version: %d)",
 
  941      Error(
"Ls",
"invalid TXProofMgr - do nothing");
 
  946      Error(
"Ls", 
"functionality not supported by server");
 
  967      Error(
"More",
"invalid TXProofMgr - do nothing");
 
  972      Error(
"More", 
"functionality not supported by server");
 
  995      Error(
"Rm",
"invalid TXProofMgr - do nothing");
 
 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");
 
 1062      Error(
"Tail", 
"functionality not supported by server");
 
 1083      Error(
"Md5sum",
"invalid TXProofMgr - do nothing");
 
 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");
 
 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");
 
 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=") {
 
 1287      Error(
"GetFile", 
"invalid TXProofMgr - do nothing");
 
 1292      Error(
"GetFile", 
"functionality not supported by server");
 
 1299      Error(
"GetFile", 
"remote file path undefined");
 
 1321   UInt_t openflags =  O_WRONLY;
 
 1332         if (!fileloc.
EndsWith(
"/")) fileloc += 
"/";
 
 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;
 
 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");
 
 1526      Error(
"PutFile", 
"functionality not supported by server");
 
 1533      Error(
"PutFile", 
"local file path undefined");
 
 1548   } 
else if (filerem.
EndsWith(
"/")) {
 
 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);
 
 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");
 
 1761      Error(
"Cp", 
"functionality not supported by server");
 
 1768      Error(
"Cp", 
"source file path undefined");
 
 1775   } 
else if (filedst.
EndsWith(
"/")) {
 
 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
 
winID h TVirtualViewer3D TVirtualGLPainter p
 
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
 
R__EXTERN TVirtualMutex * 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
 
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
 
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
 
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
 
void Add(TObject *obj) override
 
TObject * Remove(TObject *obj) override
Remove object from the list.
 
void Delete(Option_t *option="") override
Remove all objects from the list AND delete all heap based objects.
 
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.
 
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.
 
void Print(Option_t *opt="") const
Dump the content to the screen.
 
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,...
 
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 Add() override
Add signal handler to system signal handler list.
 
void Remove() override
Remove signal handler from system signal handler list.
 
Int_t GetRemoteProtocol() const
 
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.
 
virtual int GetServiceByName(const char *service)
Get port # of internet service.
 
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 ~.
 
static Int_t GetErrno()
Static function returning system error number.
 
virtual TFileHandler * RemoveFileHandler(TFileHandler *fh)
Remove a file handler from the list of file handlers.
 
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 Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
 
virtual const char * BaseName(const char *pathname)
Base name of a file name. Base name of /user/root is root.
 
virtual Int_t GetUid(const char *user=nullptr)
Returns the user's id. If user = 0, returns current user's id.
 
virtual Bool_t ProcessEvents()
Process pending events (GUI, timers, sockets).
 
virtual UserGroup_t * GetUserInfo(Int_t uid)
Returns all user info in the UserGroup_t structure.
 
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 * GetHost() 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.
 
Int_t Md5sum(const char *what, TString &sum, const char *where=0)
Run 'md5sum' on one of the nodes.
 
void Ls(const char *what="~/", const char *how=0, const char *where=0)
Run 'ls' on the nodes.
 
void Tail(const char *what, const char *how=0, const char *where=0)
Run 'tail' on the nodes.
 
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,...
 
Bool_t HandleError(const void *in=0)
Handle error on the input socket.
 
void CpProgress(const char *pfx, Long64_t bytes, Long64_t size, TStopwatch *watch, Bool_t cr=kFALSE)
Print file copy progress.
 
virtual ~TXProofMgr()
Destructor: close the connection.
 
void More(const char *what, const char *how=0, const char *where=0)
Run 'more' on the nodes.
 
Bool_t MatchUrl(const char *url)
Checks if 'url' refers to the same user@host:port entity as the URL in memory.
 
Int_t Stat(const char *what, FileStat_t &st, const char *where=0)
Run 'stat' on one of the nodes.
 
TObjString * ReadBuffer(const char *file, Long64_t ofs, Int_t len)
Read, via the coordinator, 'len' bytes from offset 'ofs' of 'file'.
 
void Find(const char *what="~/", const char *how="-type f", const char *where=0)
Run 'find' on the nodes.
 
TXProofMgr(const char *url, Int_t loglevel=-1, const char *alias="")
Create a PROOF manager for the standard (old) environment.
 
Int_t Cp(const char *src, const char *dst=0, const char *opts=0)
Copy files in/out of the sandbox.
 
const char * GetMssUrl(Bool_t=kFALSE)
Gets the URL to be prepended to paths when accessing the MSS associated with the connected cluster,...
 
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.
 
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),...
 
Int_t Rm(const char *what, const char *how=0, const char *where=0)
Run 'rm' on the nodes.
 
void ShowROOTVersions()
Display what ROOT versions are available on the cluster.
 
void ShowWorkers()
Show available workers.
 
Int_t SetROOTVersion(const char *tag)
Set the default ROOT version to be used.
 
void DetachSession(Int_t, Option_t *="")
Detach session with 'id' from its proofserv.
 
Int_t SendMsgToUsers(const char *msg, const char *usr=0)
Send a message to connected users.
 
TList * QuerySessions(Option_t *opt="S")
Get list of sessions accessible to this manager.
 
Int_t GetFile(const char *remote, const char *local, const char *opt=0)
Get file 'remote' into 'local' from the master.
 
void SetInvalid()
Invalidate this manager by closing the connection.
 
Bool_t HandleInput(const void *)
Handle asynchronous input on the socket.
 
TProof * AttachSession(Int_t id, Bool_t gui=kFALSE)
Dummy version provided for completeness.
 
void Grep(const char *what, const char *how=0, const char *where=0)
Run 'grep' on the nodes.
 
Int_t Reset(Bool_t hard=kFALSE, const char *usr=0)
Send a cleanup request for the sessions associated with the current user.
 
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.
 
Int_t GetOpenError() const
Getter for last error.
 
Int_t RecvRaw(void *buf, Int_t len, ESendRecvOptions opt=kDefault)
Receive a raw buffer of specified length bytes.
 
virtual void Close(Option_t *opt="")
Close connection.
 
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 Int_t Reconnect()
Try reconnection after failure.
 
Int_t Recv(TMessage *&mess)
Receive a TMessage object.
 
void DisconnectSession(Int_t id, Option_t *opt="")
Disconnect a session.
 
Int_t GetXrdProofdVersion() const
 
void CtrlC()
Interrupt the remote protocol instance.
 
Bool_t IsServProofd()
Return kTRUE if the remote server is a 'proofd'.
 
Bool_t IsValid() const
Getter for validity status.
 
void RemoteTouch()
Remote touch functionality: contact the server to proof our vitality.
 
virtual int WriteRaw(const void *buf, int len, XrdClientPhyConnection *p=0)
Low level write call.
 
static uint64_t sum(uint64_t i)