47 const char *workdir,
const char *msd,
Int_t nwk)
50 proof, stype, workdir, msd, nwk)));
68void TXSlave::DoError(
int level,
const char *location,
const char *fmt, va_list va)
const
80 TXSlaveInterruptHandler(
TXSocket *s = 0)
88Bool_t TXSlaveInterruptHandler::Notify()
90 Info(
"Notify",
"Processing interrupt signal ...");
94 fSocket->SetInterrupt();
104 const char *workdir,
const char *msd,
Int_t nwk) :
TSlave()
146 Info(
"Init",
"service 'proofd' not found by GetServiceByName"
147 ": using default IANA assigned tcp port 1093");
151 Info(
"Init",
"port from GetServiceByName: %d", port);
189 iam =
"Local Client";
190 mode = (attach) ?
'A' :
'M';
192 Error(
"Init",
"Impossible PROOF <-> SlaveType Configuration Requested");
213 for (
TObject *o = next(); o != 0; o = next()) {
224 Info(
"Init",
"** NOT ** sending user envs - RemoteProtocol : %d",
230 alias +=
Form(
"|envs:%s", envlist.
Data());
237 Error(
"Init",
"while opening the connection to %s - exit", url.
GetUrl(
kTRUE));
245 Error(
"Init",
"some severe error occurred while opening "
261 Info(
"Init",
"user envs setting sent but unsupported remotely - RemoteProtocol : %d",
310 TString dpu = (ilog !=
kNPOS) ? buffer(0, ilog) : buffer;
315 buffer.
Remove(0, ilog +
sizeof(
"|log:") - 1);
321 Warning(
"ParseBuffer",
"expected log path not found in received startup buffer!");
340 Error(
"SetupServ",
"failed to receive slave startup message");
355 Error(
"SetupServ",
"incompatible PROOF versions (remote version "
434 Info(
"Interrupt",
"%p: deactivating from monitor %p",
this, mon);
439 Warning(
"Interrupt",
"%p: reference to PROOF missing",
this);
449 Info(
"Interrupt",
"Interrupt of type %d sent",
type);
462 Info(
"StopProcess",
"Request of type %d sent over", abort);
474 Int_t len =
sizeof(cproto);
475 memcpy((
char *)&cproto,
479 ::Error(
"TXSlave::GetProofdProtocol",
480 "sending %d bytes to proofd server [%s:%d]",
490 ::Error(
"TXSlave::GetProofdProtocol",
491 "reading %d bytes from proofd server [%s:%d]",
501 len =
sizeof(rproto);
504 ::Error(
"TXSlave::GetProofdProtocol",
505 "reading %d bytes from proofd server [%s:%d]",
513 ::Info(
"TXSlave::GetProofdProtocol",
514 "remote proofd: buf1: %d, buf2: %d rproto: %d",
574 Printf(
"Proof: connection to master at %s:%d re-established",
577 Printf(
"Proof: connection to node '%s' at %s:%d re-established",
586 Info(
"HandleError",
"%p:%s:%s got called ... fProof: %p, fSocket: %p (valid: %d)",
600 Info(
"HandleError",
"%p: proof: %p",
this,
fProof);
614 TString msg(
Form(
"Worker '%s-%s' has been removed from the active list",
621 Warning(
"HandleError",
"%p: global reference to TProofServ missing",
this);
624 Warning(
"HandleError",
"%p: reference to PROOF missing",
this);
627 Printf(
"TXSlave::HandleError: %p: DONE ... ",
this);
644 Info(
"HandleInput",
"%p: %s: proof: %p, mon: %p",
650 Info(
"HandleInput",
"%p: %s: posting monitor %p",
this,
GetOrdinal(), mon);
656 Info(
"HandleInput",
"%p: %s: not active in current monitor"
657 " - calling TProof::CollectInputFrom",
660 Info(
"HandleInput",
"%p: %s: calling TProof::CollectInputFrom",
669 Warning(
"HandleInput",
"%p: %s: reference to PROOF missing",
this,
GetOrdinal());
683 Info(
"SetInterruptHandler",
"enter: %d", on);
UShort_t net2host(UShort_t x)
void ErrorHandler(int level, const char *location, const char *fmt, std::va_list va)
General error handler function. It calls the user set error handler.
void Info(const char *location, const char *msgfmt,...)
Use this function for informational messages.
R__EXTERN TProofServ * gProofServ
const Int_t kPROOF_Protocol
R__EXTERN TVirtualMutex * gROOTMutex
char * Form(const char *fmt,...)
void Printf(const char *fmt,...)
R__EXTERN TSystem * gSystem
#define R__LOCKGUARD(mutex)
TSlave * GetTXSlave(const char *url, const char *ord, Int_t perf, const char *image, TProof *proof, Int_t stype, const char *workdir, const char *msd, Int_t nwk)
static XSlaveInit xslave_init
virtual TObject * FindObject(const char *name) const
Find an object in this list using its name.
void SetReady(TSocket *sock)
Called by TSocketHandler::Notify() to signal which socket is ready to be read or written.
virtual void DeActivate(TSocket *sock)
De-activate a socket.
TList * GetListOfActives() const
Returns a list with all active sockets.
Bool_t IsActive(TSocket *s) const
Check if socket 's' is in the active list.
The TNamed class is the base class for all named ROOT classes.
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
virtual const char * GetTitle() const
Returns title of object.
virtual const char * GetName() const
Returns name of object.
Collectable string class.
Mother of all ROOT objects.
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.
virtual Int_t GetRemoteProtocol() const
TSocket * GetSocket() const
This class controls a Parallel ROOT Facility, PROOF, cluster.
TMonitor * fCurrentMonitor
void SetDataPoolUrl(const char *url)
static void AddEnvVar(const char *name, const char *value)
Add an variable to the list of environment variables passed to proofserv on the master and slaves.
TSignalHandler * fIntHandler
Int_t GetLogLevel() const
TProofMgr::EServType fServType
static const TList * GetEnvVars()
Get environemnt variables.
static void DelEnvVar(const char *name)
Remove an variable from the list of environment variables passed to proofserv on the master and slave...
Int_t CollectInputFrom(TSocket *s, Int_t endtype=-1, Bool_t deactonfail=kFALSE)
Collect and analyze available input from socket s.
virtual void Add()
Add signal handler to system signal handler list.
virtual Bool_t Notify()
Notify when signal occurs.
virtual void Remove()
Remove signal handler from system signal handler list.
Class describing a PROOF worker server.
static void SetTXSlaveHook(TSlave_t xslavehook)
Set hook to TXSlave ctor.
const char * GetName() const
Returns name of object.
virtual Bool_t IsValid() const
const char * GetOrdinal() const
virtual Int_t SetOption(ESockOptions opt, Int_t val)
Set socket options.
virtual Int_t Recv(TMessage *&mess)
Receive a TMessage object.
static Int_t GetClientProtocol()
Static method returning supported client protocol.
Int_t GetRemoteProtocol() const
virtual void Close(Option_t *opt="")
Close the socket.
TInetAddress GetInetAddress() const
virtual Int_t RecvRaw(void *buffer, Int_t length, ESendRecvOptions opt=kDefault)
Receive a raw buffer of specified length bytes.
virtual Int_t SendRaw(const void *buffer, Int_t length, ESendRecvOptions opt=kDefault)
Send a raw buffer of specified length.
virtual Bool_t IsValid() const
virtual Int_t Send(const TMessage &mess)
Send a TMessage object.
Int_t Atoi() const
Return integer value of string.
const char * Data() const
Bool_t IsDigit() const
Returns true if all characters in string are digits (0-9) or white spaces, i.e.
Ssiz_t Last(char c) const
Find last occurrence of a character c.
TString & Remove(Ssiz_t pos)
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
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.
virtual const char * Getenv(const char *env)
Get environment variable.
This class represents a WWW compatible URL.
const char * GetUrl(Bool_t withDeflt=kFALSE) const
Return full URL.
void SetProtocol(const char *proto, Bool_t setDefaultPort=kFALSE)
Set protocol and, optionally, change the port accordingly.
const char * GetPasswd() const
const char * GetHostFQDN() const
Return fully qualified domain name of url host.
const char * GetOptions() const
const char * GetProtocol() const
This is the version of TSlave for workers servers based on XProofD.
void StopProcess(Bool_t abort, Int_t timeout)
Sent stop/abort request to PROOF server.
void Touch()
Touch the client admin file to proof we are alive.
void SetAlias(const char *alias)
Set an alias for this session.
void Interrupt(Int_t type)
Send interrupt to master or slave servers.
Int_t SetupServ(Int_t stype, const char *conffile)
Init a PROOF slave object.
Bool_t HandleError(const void *in=0)
Handle error on the input socket.
void SetInterruptHandler(Bool_t on=kTRUE)
Set/Unset the interrupt handler.
virtual ~TXSlave()
Destroy slave.
static Int_t GetProofdProtocol(TSocket *s)
Find out the remote proofd protocol version.
Int_t Ping()
Ping the remote master or slave servers.
void Close(Option_t *opt="")
Close slave socket.
Bool_t HandleInput(const void *in=0)
Handle asynchronous input on the socket.
TSignalHandler * fIntHandler
TObjString * SendCoordinator(Int_t kind, const char *msg=0, Int_t int2=0)
Send message to intermediate coordinator.
void ParseBuffer()
Parse fBuffer after a connection attempt.
void DoError(int level, const char *location, const char *fmt, va_list va) const
Interface to ErrorHandler (protected).
void Init(const char *host, Int_t stype)
Init a PROOF slave object.
void FlushSocket()
Clean any input on the socket.
Int_t SendGroupPriority(const char *grp, Int_t priority)
Communicate to the coordinator the priprity of the group to which the user belongs Return 0 on succes...
Int_t Flush(TSocket *s)
Remove any reference to socket 's' from the global pipe and ready-socket queue.
Input handler for XProofD sockets.
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.
static void SetLocation(const char *loc="")
Set location string.