12 #ifndef ROOT_TProofMgr
13 #define ROOT_TProofMgr
33 class TFileCollection;
41 typedef TProofMgr *(*TProofMgr_t)(
const char *, Int_t,
const char *);
43 class TProofMgr :
public TNamed {
46 enum EServType { kProofd = 0, kXProofd = 1, kProofLite = 2 };
49 TProofMgr(
const TProofMgr&);
50 TProofMgr& operator=(
const TProofMgr&);
52 static TProofMgr_t fgTXProofMgrHook;
53 static TProofMgr_t GetXProofMgrHook();
55 static void ReplaceSubdirs(
const char *fn, TString &fdst, TList &dirph);
59 Int_t fRemoteProtocol;
64 TSignalHandler *fIntHandler;
66 static TList fgListOfManagers;
68 TProofMgr() : fRemoteProtocol(-1),
69 fServType(kXProofd), fSessions(0), fUrl(), fIntHandler(0) { }
72 TProofMgr(
const char *url, Int_t loglevel = -1,
const char *alias =
"");
75 virtual Bool_t IsLite()
const {
return (fServType == kProofLite); }
76 virtual Bool_t IsProofd()
const {
return (fServType == kProofd); }
77 virtual Bool_t IsValid()
const {
return kTRUE; }
78 virtual void SetInvalid() { }
79 void Close() { SetInvalid(); }
81 virtual TProof *AttachSession(Int_t, Bool_t = kFALSE);
82 virtual TProof *AttachSession(TProofDesc *, Bool_t = kFALSE);
83 virtual TProof *CreateSession(
const char * = 0,
const char * = 0, Int_t = -1);
84 virtual void DetachSession(Int_t, Option_t * =
"");
85 virtual void DetachSession(TProof *, Option_t * =
"");
86 virtual void DiscardSession(TProof *p);
87 virtual const char *GetMssUrl(Bool_t = kFALSE) {
return fMssUrl.Data(); }
88 virtual TProofDesc *GetProofDesc(Int_t
id);
89 virtual TProofDesc *GetProofDesc(TProof *p);
90 virtual Int_t GetRemoteProtocol()
const {
return fRemoteProtocol; }
91 virtual TProofLog *GetSessionLogs(Int_t = 0,
const char * = 0,
92 const char * =
"-v \"| SvcMsg\"", Bool_t = kFALSE)
93 {
return (TProofLog *)0; }
94 virtual const char *GetUrl() {
return fUrl.GetUrl(); }
95 virtual Bool_t MatchUrl(
const char *url);
96 virtual TList *QuerySessions(Option_t *opt =
"S");
97 virtual TObjString *ReadBuffer(
const char *, Long64_t, Int_t)
98 {
return (TObjString *)0; }
99 virtual TObjString *ReadBuffer(
const char *,
const char *)
100 {
return (TObjString *)0; }
101 virtual Int_t Reset(Bool_t hard = kFALSE,
const char *usr = 0);
102 virtual void ShowWorkers();
103 virtual Int_t SendMsgToUsers(
const char *,
const char * = 0);
104 virtual void SetAlias(
const char *alias=
"") { TNamed::SetTitle(alias); }
105 virtual void SetMssUrl(
const char *mss) { fMssUrl = mss; }
106 virtual Int_t SetROOTVersion(
const char *) {
return 0; }
107 virtual void ShowROOTVersions() { }
108 virtual void ShutdownSession(Int_t
id) { DetachSession(
id,
"S"); }
109 virtual void ShutdownSession(TProof *p) { DetachSession(p,
"S"); }
112 virtual Int_t Cp(
const char *,
const char * = 0,
const char * = 0) {
return -1; }
113 virtual void Find(
const char * =
"~/",
const char * = 0,
const char * = 0) { }
114 virtual void Grep(
const char *,
const char * = 0,
const char * = 0) { }
115 virtual void Ls(
const char * =
"~/",
const char * = 0,
const char * = 0) { }
116 virtual void More(
const char *,
const char * = 0,
const char * = 0) { }
117 virtual Int_t Rm(
const char *,
const char * = 0,
const char * = 0);
118 virtual void Tail(
const char *,
const char * = 0,
const char * = 0) { }
119 virtual Int_t Md5sum(
const char *, TString &,
const char * = 0) {
return -1; }
120 virtual Int_t Stat(
const char *, FileStat_t &,
const char * = 0) {
return -1; }
122 virtual Int_t GetFile(
const char *,
const char *,
const char * = 0) {
return -1; }
123 virtual Int_t PutFile(
const char *,
const char *,
const char * = 0) {
return -1; }
125 static TList *GetListOfManagers();
127 static void SetTXProofMgrHook(TProofMgr_t pmh);
129 static TProofMgr *Create(
const char *url, Int_t loglevel = -1,
130 const char *alias = 0, Bool_t xpd = kTRUE);
131 static Int_t Ping(
const char *url, Bool_t checkxrd = kFALSE);
133 static TFileCollection *UploadFiles(TList *src,
const char *mss,
const char *dest = 0);
134 static TFileCollection *UploadFiles(
const char *txtfile,
const char *mss,
const char *dest = 0);
136 ClassDef(TProofMgr,0)
142 class TProofDesc :
public TNamed {
144 enum EStatus { kUnknown = -1, kIdle = 0, kRunning =1, kShutdown = 2};
147 TProofDesc(
const TProofDesc&);
148 TProofDesc& operator=(
const TProofDesc&);
157 TProofDesc(
const char *tag = 0,
const char *alias = 0,
const char *url = 0,
158 Int_t
id = -1, Int_t remid = -1, Int_t status = kIdle, TProof *p = 0)
159 : TNamed(tag, alias),
160 fLocalId(id), fStatus(0), fProof(p), fRemoteId(remid), fUrl(url) { SetStatus(status); }
161 virtual ~TProofDesc() { }
163 Int_t GetLocalId()
const {
return fLocalId; }
164 TProof *GetProof()
const {
return fProof; }
165 Int_t GetRemoteId()
const {
return fRemoteId; }
166 Int_t GetStatus()
const {
return fStatus; }
167 const char *GetUrl()
const {
return fUrl; }
169 Bool_t IsIdle()
const {
return (fStatus == kIdle) ? kTRUE : kFALSE; }
170 Bool_t IsRunning()
const {
return (fStatus == kRunning) ? kTRUE : kFALSE; }
171 Bool_t IsShuttingDown()
const {
return (fStatus == kShutdown) ? kTRUE : kFALSE; }
173 Bool_t MatchId(Int_t
id)
const {
return (fLocalId ==
id); }
175 void Print(Option_t *opt =
"")
const;
177 void SetStatus(Int_t st) { fStatus = (st < kIdle || st > kShutdown) ? -1 : st; }
179 void SetProof(TProof *p) { fProof = p; }
180 void SetRemoteId(Int_t
id) { fRemoteId = id; }
182 ClassDef(TProofDesc,1)