ROOT logo
// @(#)root/proofx:$Id: TXSlave.h 25734 2008-10-07 22:40:37Z ganis $
// Author: G. Ganis Oct 2005

/*************************************************************************
 * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TXSlave
#define ROOT_TXSlave


//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TXSlave                                                              //
//                                                                      //
// This is the version of TSlave for slave servers based on XRD.        //
// See TSlave for details.                                              //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TSlave
#include "TSlave.h"
#endif
#ifndef ROOT_TXHandler
#include "TXHandler.h"
#endif

class TObjString;
class TSocket;
class TSignalHandler;

class TXSlave : public TSlave, public TXHandler {

friend class TProof;
friend class TXProofMgr;

private:
   Bool_t   fValid;
   TSignalHandler *fIntHandler;     //interrupt signal handler (ctrl-c)

   void  Init(const char *host, Int_t stype);

   // Static methods
   static Int_t GetProofdProtocol(TSocket *s);

protected:
   void     FlushSocket();
   void     Interrupt(Int_t type);
   Int_t    Ping();
   TObjString *SendCoordinator(Int_t kind, const char *msg = 0, Int_t int2 = 0);
   Int_t    SendGroupPriority(const char *grp, Int_t priority);
   void     SetAlias(const char *alias);
   void     StopProcess(Bool_t abort, Int_t timeout);

public:
   TXSlave(const char *url, const char *ord, Int_t perf,
           const char *image, TProof *proof, Int_t stype,
           const char *workdir, const char *msd);
   virtual ~TXSlave();

   void   Close(Option_t *opt = "");
   void   DoError(int level, const char *location, const char *fmt,
                  va_list va) const;

   Bool_t HandleError(const void *in = 0); // Error Handler
   Bool_t HandleInput(const void *in = 0); // Input handler

   void   SetInterruptHandler(Bool_t on = kTRUE);

   Int_t  SetupServ(Int_t stype, const char *conffile);

   void   Touch();

   ClassDef(TXSlave,0)  //Xrd PROOF slave server
};

#endif
 TXSlave.h:1
 TXSlave.h:2
 TXSlave.h:3
 TXSlave.h:4
 TXSlave.h:5
 TXSlave.h:6
 TXSlave.h:7
 TXSlave.h:8
 TXSlave.h:9
 TXSlave.h:10
 TXSlave.h:11
 TXSlave.h:12
 TXSlave.h:13
 TXSlave.h:14
 TXSlave.h:15
 TXSlave.h:16
 TXSlave.h:17
 TXSlave.h:18
 TXSlave.h:19
 TXSlave.h:20
 TXSlave.h:21
 TXSlave.h:22
 TXSlave.h:23
 TXSlave.h:24
 TXSlave.h:25
 TXSlave.h:26
 TXSlave.h:27
 TXSlave.h:28
 TXSlave.h:29
 TXSlave.h:30
 TXSlave.h:31
 TXSlave.h:32
 TXSlave.h:33
 TXSlave.h:34
 TXSlave.h:35
 TXSlave.h:36
 TXSlave.h:37
 TXSlave.h:38
 TXSlave.h:39
 TXSlave.h:40
 TXSlave.h:41
 TXSlave.h:42
 TXSlave.h:43
 TXSlave.h:44
 TXSlave.h:45
 TXSlave.h:46
 TXSlave.h:47
 TXSlave.h:48
 TXSlave.h:49
 TXSlave.h:50
 TXSlave.h:51
 TXSlave.h:52
 TXSlave.h:53
 TXSlave.h:54
 TXSlave.h:55
 TXSlave.h:56
 TXSlave.h:57
 TXSlave.h:58
 TXSlave.h:59
 TXSlave.h:60
 TXSlave.h:61
 TXSlave.h:62
 TXSlave.h:63
 TXSlave.h:64
 TXSlave.h:65
 TXSlave.h:66
 TXSlave.h:67
 TXSlave.h:68
 TXSlave.h:69
 TXSlave.h:70
 TXSlave.h:71
 TXSlave.h:72
 TXSlave.h:73
 TXSlave.h:74
 TXSlave.h:75
 TXSlave.h:76
 TXSlave.h:77
 TXSlave.h:78
 TXSlave.h:79
 TXSlave.h:80
 TXSlave.h:81