51 proof, stype, workdir, msd, nwk)));
69 void TXSlave::DoError(
int level,
const char *location,
const char *fmt, va_list va)
const
81 TXSlaveInterruptHandler(
TXSocket *s = 0)
91 Info(
"Notify",
"Processing interrupt signal ...");
95 fSocket->SetInterrupt();
147 Info(
"Init",
"service 'proofd' not found by GetServiceByName"
148 ": using default IANA assigned tcp port 1093");
152 Info(
"Init",
"port from GetServiceByName: %d", port);
190 iam =
"Local Client";
191 mode = (attach) ?
'A' :
'M';
193 Error(
"Init",
"Impossible PROOF <-> SlaveType Configuration Requested");
225 Info(
"Init",
"** NOT ** sending user envs - RemoteProtocol : %d",
231 alias +=
Form(
"|envs:%s", envlist.
Data());
238 Error(
"Init",
"while opening the connection to %s - exit", url.
GetUrl(
kTRUE));
246 Error(
"Init",
"some severe error occurred while opening "
262 Info(
"Init",
"user envs setting sent but unsupported remotely - RemoteProtocol : %d",
311 TString dpu = (ilog !=
kNPOS) ? buffer(0, ilog) : buffer;
316 buffer.
Remove(0, ilog +
sizeof(
"|log:") - 1);
322 Warning(
"ParseBuffer",
"expected log path not found in received startup buffer!");
341 Error(
"SetupServ",
"failed to receive slave startup message");
356 Error(
"SetupServ",
"incompatible PROOF versions (remote version "
434 Info(
"Interrupt",
"%p: deactivating from monitor %p",
this, mon);
438 Warning(
"Interrupt",
"%p: reference to PROOF missing",
this);
452 Info(
"Interrupt",
"Interrupt of type %d sent", type);
465 Info(
"StopProcess",
"Request of type %d sent over", abort);
477 Int_t len =
sizeof(cproto);
478 memcpy((
char *)&cproto,
482 ::Error(
"TXSlave::GetProofdProtocol",
483 "sending %d bytes to proofd server [%s:%d]",
493 ::Error(
"TXSlave::GetProofdProtocol",
494 "reading %d bytes from proofd server [%s:%d]",
504 len =
sizeof(rproto);
507 ::Error(
"TXSlave::GetProofdProtocol",
508 "reading %d bytes from proofd server [%s:%d]",
516 ::Info(
"TXSlave::GetProofdProtocol",
517 "remote proofd: buf1: %d, buf2: %d rproto: %d",
577 Printf(
"Proof: connection to master at %s:%d re-established",
580 Printf(
"Proof: connection to node '%s' at %s:%d re-established",
589 Info(
"HandleError",
"%p:%s:%s got called ... fProof: %p, fSocket: %p (valid: %d)",
591 (fSocket ? (
Int_t)fSocket->IsValid() : -1));
603 Info(
"HandleError",
"%p: proof: %p",
this,
fProof);
607 ((
TXSocket *)fSocket)->SetSessionID(-1);
609 ((
TXSocket *)fSocket)->SetInterrupt();
617 TString msg(
Form(
"Worker '%s-%s' has been removed from the active list",
624 Warning(
"HandleError",
"%p: global reference to TProofServ missing",
this);
627 Warning(
"HandleError",
"%p: reference to PROOF missing",
this);
630 Printf(
"TXSlave::HandleError: %p: DONE ... ",
this);
647 Info(
"HandleInput",
"%p: %s: proof: %p, mon: %p",
653 Info(
"HandleInput",
"%p: %s: posting monitor %p",
this,
GetOrdinal(), mon);
659 Info(
"HandleInput",
"%p: %s: not active in current monitor"
660 " - calling TProof::CollectInputFrom",
663 Info(
"HandleInput",
"%p: %s: calling TProof::CollectInputFrom",
672 Warning(
"HandleInput",
"%p: %s: reference to PROOF missing",
this,
GetOrdinal());
686 Info(
"SetInterruptHandler",
"enter: %d", on);
virtual const char * GetTitle() const
Returns title of object.
Ssiz_t Last(char c) const
Find last occurrence of a character c.
static void SetLocation(const char *loc="")
Set location string.
const char * GetOrdinal() const
void StopProcess(Bool_t abort, Int_t timeout)
Sent stop/abort request to PROOF server.
static Int_t GetProofdProtocol(TSocket *s)
Find out the remote proofd protocol version.
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 GetRemoteProtocol() const
void SetProtocol(const char *proto, Bool_t setDefaultPort=kFALSE)
Set protocol and, optionally, change the port accordingly.
ClassImp(TSeqCollection) Int_t TSeqCollection TIter next(this)
Return index of object in collection.
const char Int_t const char TProof Int_t const char const char * msd
Collectable string class.
virtual Bool_t IsValid() const
static XSlaveInit xslave_init
virtual Int_t Send(const TMessage &mess)
Send a TMessage object.
virtual Int_t SetOption(ESockOptions opt, Int_t val)
Set socket options.
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'...
virtual Int_t Recv(TMessage *&mess)
Receive a TMessage object.
Int_t TryWait()
If semaphore value is > 0 then decrement it and return 0.
const char * GetProtocol() const
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
static const TList * GetEnvVars()
Get environemnt variables.
virtual void Add()
Add signal handler to system signal handler list.
void ParseBuffer()
Parse fBuffer after a connection attempt.
TList * GetListOfActives() const
Returns a list with all active sockets.
Int_t Ping()
Ping the remote master or slave servers.
Bool_t HandleError(const void *in=0)
Handle error on the input socket.
R__EXTERN TVirtualMutex * gROOTMutex
virtual TObject * FindObject(const char *name) const
Find an object in this list using its name.
const char * GetOptions() const
ClassImp(TXSlave) TSlave *GetTXSlave(const char *url
void Init(const char *host, Int_t stype)
Init a PROOF slave object.
const char * Data() const
TSignalHandler * fIntHandler
virtual ~TXSlave()
Destroy slave.
virtual Int_t SendRaw(const void *buffer, Int_t length, ESendRecvOptions opt=kDefault)
Send a raw buffer of specified length.
virtual Bool_t Notify()
Notify when signal occurs.
UShort_t net2host(UShort_t x)
const char Int_t const char TProof Int_t stype
The TNamed class is the base class for all named ROOT classes.
virtual void DeActivate(TSocket *sock)
De-activate a socket.
UChar_t mod R__LOCKGUARD2(gSrvAuthenticateMutex)
const char * GetPasswd() const
static void SetTXSlaveHook(TSlave_t xslavehook)
Set hook to TXSlave ctor.
virtual const char * Getenv(const char *env)
Get environment variable.
void Info(const char *location, const char *msgfmt,...)
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Int_t SetupServ(Int_t stype, const char *conffile)
Init a PROOF slave object.
TSignalHandler * fIntHandler
void SetDataPoolUrl(const char *url)
const char Int_t const char TProof Int_t const char * workdir
const char * GetName() const
Returns name of object.
TSocket * GetSocket() const
virtual void Close(Option_t *opt="")
Close the socket.
void SetInterruptHandler(Bool_t on=kTRUE)
Set/Unset the interrupt handler.
R__EXTERN TSystem * gSystem
TMonitor * fCurrentMonitor
Int_t GetLogLevel() const
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.
void SetReady(TSocket *sock)
Called by TSocketHandler::Notify() to signal which socket is ready to be read or written.
char * Form(const char *fmt,...)
virtual const char * GetName() const
Returns name of object.
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...
Int_t Post()
If any threads are blocked in Wait(), wake one of them up and increment the value of the semaphore...
const Int_t kPROOF_Protocol
Int_t Flush(TSocket *s)
Remove any reference to socket 's' from the global pipe and ready-socket queue.
Bool_t HandleInput(const void *in=0)
Handle asynchronous input on the socket.
TObjString * SendCoordinator(Int_t kind, const char *msg=0, Int_t int2=0)
Send message to intermediate coordinator.
const char * GetUrl(Bool_t withDeflt=kFALSE) const
Return full URL.
void Close(Option_t *opt="")
Close slave socket.
TString & Remove(Ssiz_t pos)
void FlushSocket()
Clean any input on the socket.
TXSlave(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=1)
Create a PROOF slave object. Called via the TProof ctor.
virtual void Remove()
Remove signal handler from system signal handler list.
#define R__LOCKGUARD(mutex)
virtual Int_t GetRemoteProtocol() const
Mother of all ROOT objects.
void Interrupt(Int_t type)
Send interrupt to master or slave servers.
const char Int_t const char TProof * proof
Bool_t IsActive(TSocket *s) const
Check if socket 's' is in the active list.
R__EXTERN TProofServ * gProofServ
virtual int GetServiceByName(const char *service)
Get port # of internet service.
void ErrorHandler(int level, const char *location, const char *fmt, va_list va)
General error handler function. It calls the user set error handler.
void DoError(int level, const char *location, const char *fmt, va_list va) const
Interface to ErrorHandler (protected).
static Int_t GetClientProtocol()
Static method returning supported client protocol.
virtual void AddFileHandler(TFileHandler *fh)
Add a file handler to the list of system file handlers.
TProofMgr::EServType fServType
void SetAlias(const char *alias)
Set an alias for this session.
virtual Bool_t IsValid() const
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
virtual Int_t RecvRaw(void *buffer, Int_t length, ESendRecvOptions opt=kDefault)
Receive a raw buffer of specified length bytes.
TInetAddress GetInetAddress() const
virtual void SetTitle(const char *title="")
Change (i.e. set) the title of the TNamed.
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.
const char Int_t const char * image
void Touch()
Touch the client admin file to proof we are alive.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.