From f74ff6c376e52ceb5c77dde53e88934500439e70 Mon Sep 17 00:00:00 2001 From: Fons Rademakers <Fons.Rademakers@cern.ch> Date: Tue, 28 Nov 2006 12:10:52 +0000 Subject: [PATCH] From Gerri: This patch eliminates TVirtualProof, TVirtualProofMgr and TVirtualProofDesc. The first is integrated in TProof, the second in TProofMgr and the third becomes TProofDesc defined in TProofMgr.h. git-svn-id: http://root.cern.ch/svn/root/trunk@16969 27541ba8-7e3a-0410-8455-c3a389f83636 --- base/Module.mk | 2 +- base/inc/LinkDef3.h | 5 +- base/inc/TVirtualProof.h | 292 ---------------- base/inc/TVirtualProofMgr.h | 138 -------- base/src/TVirtualProof.cxx | 267 --------------- base/src/TVirtualProofMgr.cxx | 371 --------------------- config/rootrc.in | 47 ++- peac/inc/TPEAC.h | 6 +- peac/inc/TProofStartupDialog.h | 8 +- peac/src/TPEAC.cxx | 12 +- peac/src/TProofStartupDialog.cxx | 6 +- proof/inc/LinkDef.h | 5 +- proof/inc/TDSet.h | 6 +- proof/inc/TDrawFeedback.h | 6 +- proof/inc/TProof.h | 76 ++++- proof/inc/TProofMgr.h | 111 +++++- proof/inc/TProofProgressDialog.h | 8 +- proof/inc/TSessionViewer.h | 10 +- proof/src/TDSet.cxx | 6 +- proof/src/TDrawFeedback.cxx | 4 +- proof/src/TPerfStats.cxx | 4 +- proof/src/TProof.cxx | 290 +++++++++++++--- proof/src/TProofChain.cxx | 4 +- proof/src/TProofMgr.cxx | 330 ++++++++++++++++-- proof/src/TProofProgressDialog.cxx | 4 +- proof/src/TProofServ.cxx | 20 +- proof/src/TSessionDialogs.cxx | 40 +-- proof/src/TSessionLogView.cxx | 4 +- proof/src/TSessionViewer.cxx | 44 +-- proof/src/TSlave.cxx | 4 +- proofplayer/inc/TDrawFeedback.h | 6 +- proofplayer/src/TDrawFeedback.cxx | 4 +- proofplayer/src/TPerfStats.cxx | 4 +- proofx/inc/TXProofMgr.h | 10 +- proofx/src/TXProofMgr.cxx | 53 +-- proofx/src/TXProofServ.cxx | 14 +- proofx/src/TXSlave.cxx | 10 +- sessionviewer/inc/TProofProgressDialog.h | 8 +- sessionviewer/inc/TSessionViewer.h | 10 +- sessionviewer/src/TProofProgressDialog.cxx | 4 +- sessionviewer/src/TSessionDialogs.cxx | 40 +-- sessionviewer/src/TSessionLogView.cxx | 4 +- sessionviewer/src/TSessionViewer.cxx | 44 +-- 43 files changed, 943 insertions(+), 1398 deletions(-) delete mode 100644 base/inc/TVirtualProof.h delete mode 100644 base/inc/TVirtualProofMgr.h delete mode 100644 base/src/TVirtualProof.cxx delete mode 100644 base/src/TVirtualProofMgr.cxx diff --git a/base/Module.mk b/base/Module.mk index 6c9b8e4eeb0..8e6dae39f63 100644 --- a/base/Module.mk +++ b/base/Module.mk @@ -39,7 +39,7 @@ BASEDH := $(BASEDS:.cxx=.h) BASEH1 := $(wildcard $(MODDIRI)/T*.h) BASEH3 := GuiTypes.h KeySymbols.h Buttons.h TTimeStamp.h TVirtualMutex.h \ - TVirtualProofMgr.h TVirtualProof.h TVirtualPerfStats.h \ + TVirtualPerfStats.h \ TVirtualX.h TParameter.h TArchiveFile.h TZIPFile.h \ TVirtualAuth.h TFileInfo.h TRedirectOutputGuard.h \ TVirtualMonitoring.h TObjectSpy.h diff --git a/base/inc/LinkDef3.h b/base/inc/LinkDef3.h index d007b2f6a02..fcb8282a03b 100644 --- a/base/inc/LinkDef3.h +++ b/base/inc/LinkDef3.h @@ -1,4 +1,4 @@ -/* @(#)root/base:$Name: $:$Id: LinkDef3.h,v 1.25 2006/05/26 16:55:04 rdm Exp $ */ +/* @(#)root/base:$Name: $:$Id: LinkDef3.h,v 1.26 2006/08/18 17:34:46 rdm Exp $ */ /************************************************************************* * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * @@ -166,9 +166,6 @@ #pragma link C++ class TVirtualMutex; #pragma link C++ class TLockGuard; #pragma link C++ class TRedirectOutputGuard; -#pragma link C++ class TVirtualProof; -#pragma link C++ class TVirtualProofMgr; -#pragma link C++ class TVirtualProofDesc; #pragma link C++ class TVirtualPerfStats; #pragma link C++ enum TVirtualPerfStats::EEventType; #pragma link C++ class TVirtualMonitoringWriter; diff --git a/base/inc/TVirtualProof.h b/base/inc/TVirtualProof.h deleted file mode 100644 index bbfd02f2361..00000000000 --- a/base/inc/TVirtualProof.h +++ /dev/null @@ -1,292 +0,0 @@ -// @(#)root/base:$Name: $:$Id: TVirtualProof.h,v 1.43 2006/11/20 16:55:37 rdm Exp $ -// Author: Fons Rademakers 16/09/02 - -/************************************************************************* - * Copyright (C) 1995-2002, 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_TVirtualProof -#define ROOT_TVirtualProof - - -////////////////////////////////////////////////////////////////////////// -// // -// TVirtualProof // -// // -// Abstract interface to the Parallel ROOT Facility, PROOF. // -// For more information on PROOF see the TProof class. // -// // -////////////////////////////////////////////////////////////////////////// - -#ifndef ROOT_TVirtualProofMgr -#include "TVirtualProofMgr.h" -#endif -#ifndef ROOT_TQObject -#include "TQObject.h" -#endif - -class TList; -class TDSet; -class TEventList; -class TTree; -class TDSet; -class TDrawFeedback; -class TChain; -class TQueryResult; - -// Global object with default PROOF session -class TVirtualProof; -R__EXTERN TVirtualProof *gProof; - -// Special type for the hook to the TProof constructor, needed to avoid -// using the plugin manager -typedef TVirtualProof *(*TProof_t)(const char *, const char *, const char *, - Int_t, const char *, TVirtualProofMgr *); - -class TVirtualProof : public TNamed, public TQObject { - -public: - // PROOF status bits - enum EStatusBits { - kUsingSessionGui = BIT(14) - }; - enum EQueryMode { - kSync = 0, - kAsync = 1 - }; - enum EUploadOpt { - kAppend = 0x1, - kOverwriteDataSet = 0x2, - kNoOverwriteDataSet = 0x4, - kOverwriteAllFiles = 0x8, - kOverwriteNoFiles = 0x10, - kAskUser = 0x0 - }; - enum EUploadDataSetAnswer { - kError = -1, - kDataSetExists = -2 - }; - enum EUploadPackageOpt { - kUntar = 0x0, //Untar over existing dir [default] - kRemoveOld = 0x1 //Remove existing dir with same name - }; - -private: - static TProof_t fgProofHook; // Hook to TProof constructor - static TList *fgProofEnvList; // List of TNameds defining environment - // variables to pass to proofserv - -protected: - TString fDataPoolUrl; // Default data pool entry point URL - TVirtualProofMgr::EServType fServType; // Type of server: proofd, XrdProofd - TVirtualProofMgr *fManager; // Manager to which this session belongs (if any) - EQueryMode fQueryMode; // default query mode - - TVirtualProof() : fServType(TVirtualProofMgr::kXProofd), fManager(0), fQueryMode(kSync) { } - -public: - TVirtualProof(const char * /*masterurl*/, const char * /*conffile*/ = 0, - const char * /*confdir*/ = 0, Int_t /*loglevel*/ = 0) - : fServType(TVirtualProofMgr::kXProofd), fManager(0), fQueryMode(kSync) { } - virtual ~TVirtualProof() { Emit("~TVirtualProof()"); } - - virtual void cd(Int_t = -1) { gProof = this; } - - virtual void SetAlias(const char *alias="") { TNamed::SetTitle(alias); } - - virtual Int_t Ping() = 0; - virtual Int_t Exec(const char *cmd, Bool_t plusMaster = kFALSE) = 0; - virtual Long64_t Process(TDSet *set, const char *selector, - Option_t *option = "", - Long64_t nentries = -1, - Long64_t firstentry = 0, - TEventList *evl = 0) = 0; - virtual Long64_t DrawSelect(TDSet *set, const char *varexp, - const char *selection = "", - Option_t *option = "", - Long64_t nentries = -1, - Long64_t firstentry = 0) = 0; - virtual Int_t Archive(Int_t query, const char *url) = 0; - virtual Int_t Archive(const char *queryref, const char *url = 0) = 0; - virtual Int_t CleanupSession(const char *sessiontag) = 0; - virtual Long64_t Finalize(Int_t qry = -1, Bool_t force = kFALSE) = 0; - virtual Long64_t Finalize(const char *queryref, Bool_t force = kFALSE) = 0; - virtual Int_t Remove(Int_t query, Bool_t all = kFALSE) = 0; - virtual Int_t Remove(const char *queryref, Bool_t all = kFALSE) = 0; - virtual Int_t Retrieve(Int_t query, const char *path = 0) = 0; - virtual Int_t Retrieve(const char *queryref, const char *path = 0) = 0; - - virtual void StopProcess(Bool_t abort, Int_t timeout = -1) = 0; - virtual void AddInput(TObject *obj) = 0; - virtual void ClearInput() = 0; - virtual TObject *GetOutput(const char *name) = 0; - virtual TList *GetOutputList() = 0; - - virtual Int_t SetParallel(Int_t nodes = 99999) = 0; - virtual void SetLogLevel(Int_t level, UInt_t mask = 0xFFFFFFFF) = 0; - - virtual void Close(Option_t *option="") = 0; - virtual void Print(Option_t *option="") const = 0; - - //-- cache and package management - virtual void ShowCache(Bool_t all = kFALSE) = 0; - virtual void ClearCache() = 0; - virtual TList *GetListOfPackages() = 0; - virtual TList *GetListOfEnabledPackages() = 0; - virtual void ShowPackages(Bool_t all = kFALSE) = 0; - virtual void ShowEnabledPackages(Bool_t all = kFALSE) = 0; - virtual Int_t ClearPackages() = 0; - virtual Int_t ClearPackage(const char *package) = 0; - virtual Int_t EnablePackage(const char *package) = 0; - virtual Int_t UploadPackage(const char *par, EUploadPackageOpt opt = kUntar) = 0; - - virtual Int_t AddDynamicPath(const char *libpath) = 0; - virtual Int_t AddIncludePath(const char *incpath) = 0; - virtual Int_t RemoveDynamicPath(const char *libpath) = 0; - virtual Int_t RemoveIncludePath(const char *incpath) = 0; - - //-- dataset management - virtual Int_t UploadDataSet(const char *dataset, - const char *files, - const char *dest = 0, - Int_t opt = kAskUser, - TList *skippedFiles = 0) = 0; - - virtual Int_t UploadDataSet(const char *dataset, - TList *files, - const char *dest = 0, - Int_t opt = kAskUser, - TList *skippedFiles = 0) = 0; - - virtual Int_t UploadDataSetFromFile(const char *dataset, - const char *file, - const char *dest = 0, - Int_t opt = kAskUser) = 0; - - virtual Int_t CreateDataSet(const char *dataset, - TList *files, - Int_t opt = kAskUser) = 0; - - virtual TList *GetDataSets(const char *dir = 0) = 0; - virtual void ShowDataSets(const char * dir = 0) = 0; - virtual void ShowDataSet(const char *dataset) = 0; - virtual Int_t RemoveDataSet(const char *dateset) = 0; - virtual Int_t VerifyDataSet(const char *dataset) = 0; - virtual TList *GetDataSet(const char *dataset) = 0; - - virtual const char *GetMaster() const = 0; - virtual const char *GetConfDir() const = 0; - virtual const char *GetConfFile() const = 0; - virtual const char *GetUser() const = 0; - virtual const char *GetWorkDir() const = 0; - virtual const char *GetSessionTag() const { return GetName(); } - virtual const char *GetImage() const = 0; - virtual const char *GetUrl() = 0; - virtual Int_t GetPort() const = 0; - virtual Int_t GetRemoteProtocol() const = 0; - virtual Int_t GetClientProtocol() const = 0; - virtual Int_t GetStatus() const = 0; - virtual Int_t GetLogLevel() const = 0; - virtual Int_t GetParallel() const = 0; - virtual Int_t GetSessionID() const { return -1; } - virtual TList *GetSlaveInfo() = 0; - - virtual EQueryMode GetQueryMode() const { return fQueryMode; } - virtual void SetQueryType(EQueryMode mode) { fQueryMode = mode; } - - virtual TVirtualProofMgr::EServType GetServType() const { return fServType; } - - virtual Long64_t GetBytesRead() const = 0; - virtual Float_t GetRealTime() const = 0; - virtual Float_t GetCpuTime() const = 0; - - virtual Bool_t IsProofd() const { return (fServType == TVirtualProofMgr::kProofd); } - virtual Bool_t IsMaster() const = 0; - virtual Bool_t IsValid() const = 0; - virtual Bool_t IsParallel() const = 0; - virtual Bool_t IsDataReady(Long64_t &totalbytes, Long64_t &bytesready) = 0; - virtual Bool_t IsIdle() const = 0; - - virtual void AddFeedback(const char *name) = 0; - virtual void RemoveFeedback(const char *name) = 0; - virtual void ClearFeedback() = 0; - virtual void ShowFeedback() const = 0; - virtual TList *GetFeedbackList() const = 0; - - virtual TList *GetListOfQueries(Option_t *opt = "") = 0; - virtual Int_t GetNumberOfQueries() = 0; - virtual Int_t GetNumberOfDrawQueries() = 0; - virtual TList *GetQueryResults() = 0; - virtual TQueryResult *GetQueryResult(const char *ref = 0) = 0; - virtual void GetMaxQueries() = 0; - virtual void SetMaxDrawQueries(Int_t max) = 0; - virtual void ShowQueries(Option_t *opt = "") = 0; - - virtual void SetActive(Bool_t active = kTRUE) = 0; - - virtual void LogMessage(const char *msg, Bool_t all) = 0; //*SIGNAL* - virtual void Progress(Long64_t total, Long64_t processed) = 0; //*SIGNAL* - virtual void Progress(Long64_t total, Long64_t processed, Long64_t bytesread, - Float_t initTime, Float_t procTime, - Float_t evtrti, Float_t mbrti) = 0; // *SIGNAL* - virtual void Feedback(TList *objs) = 0; //*SIGNAL* - virtual void QueryResultReady(const char *ref) = 0; //*SIGNAL* - virtual void CloseProgressDialog() = 0; //*SIGNAL* - virtual void ResetProgressDialog(const char *sel, Int_t sz, - Long64_t fst, Long64_t ent) = 0; //*SIGNAL* - virtual void StartupMessage(const char *msg, Bool_t status, - Int_t done, Int_t total) = 0; //*SIGNAL* - virtual void DataSetStatus(const char *msg, Bool_t status, - Int_t done, Int_t total) = 0; //*SIGNAL* - - virtual void SendDataSetStatus(const char *msg, UInt_t n, UInt_t tot, Bool_t st) = 0; - - virtual void GetLog(Int_t start = -1, Int_t end = -1) = 0; - virtual void PutLog(TQueryResult *qr) = 0; - virtual void ShowLog(Int_t qry = -1) = 0; - virtual void ShowLog(const char *queryref) = 0; - virtual Bool_t SendingLogToWindow() const = 0; - virtual void SendLogToWindow(Bool_t mode) = 0; - - virtual void ResetProgressDialogStatus() = 0; - - virtual TTree *GetTreeHeader(TDSet* dset) = 0; - virtual TList *GetOutputNames() = 0; - - virtual void AddChain(TChain* chain) = 0; - virtual void RemoveChain(TChain* chain) = 0; - - virtual TDrawFeedback *CreateDrawFeedback() = 0; - virtual void SetDrawFeedbackOption(TDrawFeedback *f, Option_t *opt) = 0; - virtual void DeleteDrawFeedback(TDrawFeedback *f) = 0; - - virtual void Detach(Option_t * = "") = 0; - - virtual TVirtualProofMgr *GetManager() { return fManager; } - virtual void SetManager(TVirtualProofMgr *mgr) { fManager = mgr; } - - virtual void ActivateWorker(const char *ord) = 0; - virtual void DeactivateWorker(const char *ord) = 0; - - virtual const char *GetDataPoolUrl() const { return fDataPoolUrl; } - virtual void SetDataPoolUrl(const char *url) { fDataPoolUrl = url; } - - static void SetTProofHook(TProof_t proofhook); - static TProof_t GetTProofHook(); - - static TVirtualProof *Open(const char *url = 0, const char *conffile = 0, - const char *confdir = 0, Int_t loglevel = 0); - static Int_t Reset(const char *url, const char *usr = 0); - - static void AddEnvVar(const char *name, const char *value); - static void DelEnvVar(const char *name); - static const TList *GetEnvVars(); - static void ResetEnvVars(); - - ClassDef(TVirtualProof,0) // Abstract PROOF interface -}; -#endif diff --git a/base/inc/TVirtualProofMgr.h b/base/inc/TVirtualProofMgr.h deleted file mode 100644 index 95a0caebd8f..00000000000 --- a/base/inc/TVirtualProofMgr.h +++ /dev/null @@ -1,138 +0,0 @@ -// @(#)root/base:$Name: $:$Id: TVirtualProofMgr.h,v 1.3 2006/06/02 15:14:35 rdm Exp $ -// Author: G. Ganis, Nov 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_TVirtualProofMgr -#define ROOT_TVirtualProofMgr - - -////////////////////////////////////////////////////////////////////////// -// // -// TVirtualProofMgr // -// // -// Abstract interface to the manager for PROOF sessions. // -// The PROOF manager interacts with the PROOF server coordinator to // -// create or destroy a PROOF session, attach to or detach from // -// existing one, and to monitor any client activity on the cluster. // -// At most one manager instance per server is allowed. // -// // -////////////////////////////////////////////////////////////////////////// - -#ifndef ROOT_TNamed -#include "TNamed.h" -#endif -#ifndef ROOT_TUrl -#include "TUrl.h" -#endif - -class TList; -class TVirtualProof; -class TVirtualProofDesc; -class TVirtualProofMgr; - -typedef TVirtualProofMgr - *(*TVirtualProofMgr_t)(const char *, Int_t, const char *); - -class TVirtualProofMgr : public TNamed { - -public: - enum EServType { kProofd = 0, kXProofd = 1 }; - -private: - static TVirtualProofMgr_t fgTProofMgrHook[2]; // Constructor hooks for TProofMgr - static TVirtualProofMgr_t GetProofMgrHook(const char *type); - -protected: - Int_t fRemoteProtocol; // Protocol number run by the daemon server - EServType fServType; // Type of server: old-proofd, XrdProofd - TList *fSessions; // PROOF session managed by this server - TUrl fUrl; // Server URL - - static TList fgListOfManagers; // Sub-list of TROOT::ListOfProofs for managers - - TVirtualProofMgr() : fRemoteProtocol(-1), - fServType(kXProofd), fSessions(0), fUrl() { } - -public: - TVirtualProofMgr(const char *url, Int_t /*loglevel*/ = 0, const char * /*alias*/ = 0); - virtual ~TVirtualProofMgr(); - - virtual Bool_t IsProofd() const { return (fServType == kProofd); } - virtual Bool_t IsValid() const = 0; - - virtual TVirtualProof *AttachSession(Int_t, Bool_t = kFALSE) = 0; - virtual TVirtualProof *CreateSession(const char * = 0, const char * = 0, Int_t = -1); - virtual void DetachSession(Int_t, Option_t * = "") = 0; - virtual TVirtualProofDesc *GetProofDesc(Int_t id); - virtual Int_t GetRemoteProtocol() const { return fRemoteProtocol; } - virtual const char *GetUrl() { return fUrl.GetUrl(); } - virtual Bool_t MatchUrl(const char *url); - virtual TList *QuerySessions(Option_t *opt = "S") = 0; - virtual Int_t Reset(const char *usr = 0) = 0; - virtual void ShowWorkers(); - virtual void SetAlias(const char *alias="") { TNamed::SetTitle(alias); } - virtual void ShutdownSession(Int_t id) { DetachSession(id,"S"); } - virtual void ShutdownSession(TVirtualProof *p); - - static TList *GetListOfManagers(); - - static void SetTProofMgrHook(TVirtualProofMgr_t pmh, const char *type = 0); - - static TVirtualProofMgr *Create(const char *url, Int_t loglevel = -1, - const char *alias = 0, Bool_t xpd = kTRUE); - - ClassDef(TVirtualProofMgr,0) // Abstract PROOF manager interface -}; - - -// -// Metaclass describing the essentials of a PROOF session -// -class TVirtualProofDesc : public TNamed { -public: - enum EStatus { kUnknown = -1, kIdle = 0, kRunning =1, kShutdown = 2}; - -private: - Int_t fLocalId; // ID in the local list - Int_t fStatus; // Session status (see EStatus) - TVirtualProof *fProof; // Related instance of TVirtualProof - Int_t fRemoteId; // Remote ID assigned by the coordinator to the proofserv - TString fUrl; // Url of the connection - -public: - TVirtualProofDesc(const char *tag = 0, const char *alias = 0, const char *url = 0, - Int_t id = -1, Int_t remid = -1, Int_t status = kIdle, TVirtualProof *p = 0) - : TNamed(tag, alias), - fLocalId(id), fProof(p), fRemoteId(remid), fUrl(url) { SetStatus(status); } - virtual ~TVirtualProofDesc() { } - - Int_t GetLocalId() const { return fLocalId; } - TVirtualProof *GetProof() const { return fProof; } - Int_t GetRemoteId() const { return fRemoteId; } - Int_t GetStatus() const { return fStatus; } - const char *GetUrl() const { return fUrl; } - - Bool_t IsIdle() const { return (fStatus == kIdle) ? kTRUE : kFALSE; } - Bool_t IsRunning() const { return (fStatus == kRunning) ? kTRUE : kFALSE; } - Bool_t IsShuttingDown() const { return (fStatus == kShutdown) ? kTRUE : kFALSE; } - - Bool_t MatchId(Int_t id) const { return (fLocalId == id); } - - void Print(Option_t *opt = "") const; - - void SetStatus(Int_t st) { fStatus = (st < kIdle || st > kShutdown) ? -1 : st; } - - void SetProof(TVirtualProof *p) { fProof = p; } - void SetRemoteId(Int_t id) { fRemoteId = id; } - - ClassDef(TVirtualProofDesc,2) // Abstract description of a proof session -}; - -#endif diff --git a/base/src/TVirtualProof.cxx b/base/src/TVirtualProof.cxx deleted file mode 100644 index f3aa7be906c..00000000000 --- a/base/src/TVirtualProof.cxx +++ /dev/null @@ -1,267 +0,0 @@ -// @(#)root/base:$Name: $:$Id: TVirtualProof.cxx,v 1.11 2006/11/20 15:56:35 rdm Exp $ -// Author: Fons Rademakers 16/09/02 - -/************************************************************************* - * Copyright (C) 1995-2002, Rene Brun and Fons Rademakers. * - * All rights reserved. * - * * - * For the licensing terms see $ROOTSYS/LICENSE. * - * For the list of contributors see $ROOTSYS/README/CREDITS. * - *************************************************************************/ - -////////////////////////////////////////////////////////////////////////// -// // -// TVirtualProof // -// // -// Abstract interface to the Parallel ROOT Facility, PROOF. // -// For more information on PROOF see the TProof class. // -// // -////////////////////////////////////////////////////////////////////////// - -#include "TError.h" -#include "TList.h" -#include "TPluginManager.h" -#include "TROOT.h" -#include "TSystem.h" -#include "TVirtualProof.h" - -TVirtualProof *gProof = 0; - -TProof_t TVirtualProof::fgProofHook = 0; // Hook to the TProof constructor -TList *TVirtualProof::fgProofEnvList = 0; // List of env vars for proofserv - -ClassImp(TVirtualProof) - -//_____________________________________________________________________________ -TVirtualProof *TVirtualProof::Open(const char *cluster, const char *conffile, - const char *confdir, Int_t loglevel) -{ - // Start a PROOF session on a specific cluster. If cluster is 0 (the - // default) then the PROOF Session Viewer GUI pops up and 0 is returned. - // If cluster is "" (empty string) then we connect to a PROOF session - // on the localhost ("proof://localhost"). Via conffile a specific - // PROOF config file in the confir directory can be specified. - // Use loglevel to set the default loging level for debugging. - // The appropriate instance of TVirtualProofMgr is created, if not - // yet existing. The instantiated TProof object is returned. - // Use TProof::cd() to switch between PROOF sessions. - // For more info on PROOF see the TProof ctor. - - const char *pn = "TVirtualProof::Open"; - - // Make sure libProof and dependents are loaded and TProof can be created, - // dependents are loaded via the information in the [system].rootmap file - if (!cluster) { - - TPluginManager *pm = gROOT->GetPluginManager(); - if (!pm) { - ::Error(pn, "plugin manager not found"); - return 0; - } - - if (gROOT->IsBatch()) { - ::Error(pn, "we are in batch mode, cannot show PROOF Session Viewer"); - return 0; - } - // start PROOF Session Viewer - TPluginHandler *sv = pm->FindHandler("TSessionViewer", ""); - if (!sv) { - ::Error(pn, "no plugin found for TSessionViewer"); - return 0; - } - if (sv->LoadPlugin() == -1) { - ::Error(pn, "plugin for TSessionViewer could not be loaded"); - return 0; - } - sv->ExecPlugin(0); - return 0; - - } else { - - TVirtualProof *proof = 0; - - // If the master was specified as "", use "localhost" - TString fqdn = cluster; - if (fqdn == "") - fqdn = "localhost"; - - TUrl u(fqdn); - // in case user gave as url: "machine.dom.ain", replace - // "http" by "proof" and "80" by "1093" - if (!strcmp(u.GetProtocol(), TUrl("a").GetProtocol())) - u.SetProtocol("proof"); - if (u.GetPort() == TUrl("a").GetPort()) - u.SetPort(1093); - - // Find out if we are required to attach to a specific session - TString o(u.GetOptions()); - Int_t locid = -1; - Bool_t create = kFALSE; - if (o.Length() > 0) { - if (o.BeginsWith("N",TString::kIgnoreCase)) { - create = kTRUE; - } else if (o.IsDigit()) { - locid = o.Atoi(); - } - u.SetOptions(""); - } - - // Attach-to or create the appropriate manager - TVirtualProofMgr *mgr = TVirtualProofMgr::Create(u.GetUrl()); - - if (mgr && mgr->IsValid()) { - - // If XProofd we always attempt an attach first (unless - // explicitely not requested). - Bool_t attach = (create || mgr->IsProofd()) ? kFALSE : kTRUE; - if (attach) { - TVirtualProofDesc *d = 0; - if (locid < 0) - // Get the list of sessions - d = (TVirtualProofDesc *) mgr->QuerySessions("")->First(); - else - d = (TVirtualProofDesc *) mgr->GetProofDesc(locid); - if (d) { - proof = (TVirtualProof*) mgr->AttachSession(d->GetLocalId()); - if (!proof || !proof->IsValid()) { - if (locid) - ::Error(pn, "new session could not be attached"); - SafeDelete(proof); - } - } - } - - // start the PROOF session - if (!proof) { - proof = (TVirtualProof*) mgr->CreateSession(conffile, confdir, loglevel); - if (!proof || !proof->IsValid()) { - ::Error(pn, "new session could not be created"); - SafeDelete(proof); - } - } - } - return proof; - } -} - -//_____________________________________________________________________________ -Int_t TVirtualProof::Reset(const char *url, const char *usr) -{ - // Reset the entry associated with the entity defined by 'url', which is - // in the form - // "[proof://][user@]master.url[:port]" - // If 'user' has the privileges it can also ask to reset the entry of a - // different user specified by 'usr'; use 'usr'=='*' to reset all the - // sessions know remotely. - // 'Reset' means that all the PROOF sessions owned by the user at this - // master are terminated or killed, any other client connections (from other - // shells) closed, and the protocol instance reset and given back to the stack. - // After this call the user will be asked to login again and will start - // from scratch. - // To be used when the cluster is not behaving. - // Return 0 on success, -1 if somethign wrng happened. - - if (!url) - return -1; - - const char *pn = "TVirtualProof::Reset"; - - // If the master was specified as "", try to get the localhost FQDN - if (!strlen(url)) - url = gSystem->GetHostByName(gSystem->HostName()).GetHostName(); - - TUrl u(url); - // in case user gave as url: "machine.dom.ain", replace - // "http" by "proof" and "80" by "1093" - if (!strcmp(u.GetProtocol(), TUrl("a").GetProtocol())) - u.SetProtocol("proof"); - if (u.GetPort() == TUrl("a").GetPort()) - u.SetPort(1093); - - // Attach-to or create the appropriate manager - TVirtualProofMgr *mgr = TVirtualProofMgr::Create(u.GetUrl()); - - if (mgr && mgr->IsValid()) - if (!(mgr->IsProofd())) - // Ask the manager to reset the entry - return mgr->Reset(usr); - else - ::Info(pn,"proofd: functionality not supported by server"); - - else - ::Info(pn,"could not open a valid connection to %s", u.GetUrl()); - - // Done - return -1; -} - -//_____________________________________________________________________________ -void TVirtualProof::SetTProofHook(TProof_t proofhook) -{ - // Set hook to TProof ctor. - - fgProofHook = proofhook; -} - -//_____________________________________________________________________________ -const TList *TVirtualProof::GetEnvVars() -{ - // Get environemnt variables. - - return fgProofEnvList; -} - -//_____________________________________________________________________________ -TProof_t TVirtualProof::GetTProofHook() -{ - // Get the TProof hook. - - return fgProofHook; -} - -//_____________________________________________________________________________ -void TVirtualProof::AddEnvVar(const char *name, const char *value) -{ - // Add an variable to the list of environment variables passed to proofserv - // on the master and slaves - - if (gDebug > 0) ::Info("TVirtualProof::AddEnvVar","%s=%s", name, value); - - if (fgProofEnvList == 0) { - // initialize the list if needed - fgProofEnvList = new TList; - fgProofEnvList->SetOwner(); - } else { - // replace old entries with the same name - TObject *o = fgProofEnvList->FindObject(name); - if (o != 0) { - fgProofEnvList->Remove(o); - } - } - fgProofEnvList->Add(new TNamed(name, value)); -} - -//_____________________________________________________________________________ -void TVirtualProof::DelEnvVar(const char *name) -{ - // Remove an variable from the list of environment variables passed to proofserv - // on the master and slaves - - if (fgProofEnvList == 0) return; - - TObject *o = fgProofEnvList->FindObject(name); - if (o != 0) { - fgProofEnvList->Remove(o); - } -} - -//_____________________________________________________________________________ -void TVirtualProof::ResetEnvVars() -{ - // Clear the list of environment variables passed to proofserv - // on the master and slaves - - if (fgProofEnvList == 0) return; - - SafeDelete(fgProofEnvList); -} diff --git a/base/src/TVirtualProofMgr.cxx b/base/src/TVirtualProofMgr.cxx deleted file mode 100644 index d498ac50b99..00000000000 --- a/base/src/TVirtualProofMgr.cxx +++ /dev/null @@ -1,371 +0,0 @@ -// @(#)root/base:$Name: $:$Id: TVirtualProofMgr.cxx,v 1.10 2006/11/16 17:17:37 rdm Exp $ -// Author: G. Ganis, Nov 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. * - *************************************************************************/ - -////////////////////////////////////////////////////////////////////////// -// // -// TVirtualProofMgr // -// // -// Abstract interface to the manager for PROOF sessions. // -// The PROOF manager interacts with the PROOF server coordinator to // -// create or destroy a PROOF session, attach to or detach from // -// existing one, and to monitor any client activity on the cluster. // -// At most one manager instance per server is allowed. // -// // -////////////////////////////////////////////////////////////////////////// - -#ifdef R__HAVE_CONFIG -#include "RConfigure.h" -#endif - -#include "TError.h" -#include "TInetAddress.h" -#include "TList.h" -#include "TROOT.h" -#include "TSystem.h" -#include "TVirtualMutex.h" -#include "TVirtualProof.h" -#include "TVirtualProofMgr.h" - -ClassImp(TVirtualProofMgr) - - -// Sub-list of TROOT::fProofs with managers -TList TVirtualProofMgr::fgListOfManagers; -TVirtualProofMgr_t TVirtualProofMgr::fgTProofMgrHook[2] = { 0, 0 }; - -//______________________________________________________________________________ -TVirtualProofMgr::TVirtualProofMgr(const char *url, Int_t, const char *) - : TNamed("",""), fRemoteProtocol(-1), - fServType(kXProofd), fSessions(0) -{ - // Constructor - - // AVoid problems with empty URLs - fUrl = (!url || strlen(url) <= 0) ? TUrl("proof://localhost") : TUrl(url); -} - -//______________________________________________________________________________ -TVirtualProofMgr::~TVirtualProofMgr() -{ - // Destroy a TVirtualProofMgr instance - - SafeDelete(fSessions); - - fgListOfManagers.Remove(this); - gROOT->GetListOfProofs()->Remove(this); -} - -//______________________________________________________________________________ -void TVirtualProofMgr::ShowWorkers() -{ - // Show available workers - - AbstractMethod("ShowWorkers"); -} - -//______________________________________________________________________________ -TVirtualProofDesc *TVirtualProofMgr::GetProofDesc(Int_t id) -{ - // Get TVirtualProof instance corresponding to 'id'. - - if (id > 0) { - TVirtualProofDesc *d = 0; - // Retrieve an updated list - QuerySessions(""); - if (fSessions) { - TIter nxd(fSessions); - while ((d = (TVirtualProofDesc *)nxd())) { - if (d->MatchId(id)) - return d; - } - } - } - - return 0; -} - -//______________________________________________________________________________ -void TVirtualProofMgr::ShutdownSession(TVirtualProof *p) -{ - // Discard PROOF session 'p' - - if (p) { - TVirtualProofDesc *d = 0; - if (fSessions) { - TIter nxd(fSessions); - while ((d = (TVirtualProofDesc *)nxd())) { - if (p == d->GetProof()) { - fSessions->Remove(d); - delete d; - break; - } - } - } - } -} - -//______________________________________________________________________________ -TVirtualProof *TVirtualProofMgr::CreateSession(const char *cfg, - const char *cfgdir, Int_t loglevel) -{ - // Create a new remote session (master and associated workers). - - // Create - if (IsProofd()) - fUrl.SetOptions("std"); - - TProof_t proofhook = TVirtualProof::GetTProofHook(); - if (!proofhook) { - - // Load the library containing TProof ... -#ifdef ROOTLIBDIR - TString prooflib = TString(ROOTLIBDIR) + "/libProof"; -#else -#ifndef WIN32 - TString prooflib = TString(gRootDir) + "/lib/libProof"; -#else - TString prooflib = TString(gRootDir) + "/bin/libProof"; -#endif -#endif - char *p = 0; - if ((p = gSystem->DynamicPathName(prooflib, kTRUE))) { - delete[] p; - if (gSystem->Load(prooflib) == -1) - Error("CreateSession", "can't load %s", prooflib.Data()); - proofhook = TVirtualProof::GetTProofHook(); - } else - Error("CreateSession", "can't locate %s", prooflib.Data()); - } - if (!proofhook) { - Error("CreateSession", "hook for TVirtualProof could not be loaded"); - return 0; - } - // Create the instance - TVirtualProof *p = - (TVirtualProof*) (*proofhook)(fUrl.GetUrl(), cfg, cfgdir, loglevel, 0, this); - - if (p && p->IsValid()) { - - // Save record about this session - Int_t ns = 1; - if (fSessions) { - // To avoid ambiguities in case of removal of some elements - if (fSessions->Last()) - ns = ((TVirtualProofDesc *)(fSessions->Last()))->GetLocalId() + 1; - } else { - // Create the list - fSessions = new TList; - } - - // Create the description class - Int_t st = (p->IsIdle()) ? TVirtualProofDesc::kIdle : TVirtualProofDesc::kRunning ; - TVirtualProofDesc *d = - new TVirtualProofDesc(p->GetName(), p->GetTitle(), p->GetUrl(), - ns, p->GetSessionID(), st, p); - fSessions->Add(d); - - } else { - // Session creation failed - Error("CreateSession", "creating PROOF session"); - SafeDelete(p); - } - - // We are done - return p; -} - -//______________________________________________________________________________ -Bool_t TVirtualProofMgr::MatchUrl(const char *url) -{ - // Checks if 'url' refers to the same 'user@host:port' entity as the URL - // in memory - - TUrl u(url); - - // Correct URL protocol - if (!strcmp(u.GetProtocol(), TUrl("a").GetProtocol())) - u.SetProtocol("proof"); - - // Correct port - if (u.GetPort() == TUrl("a").GetPort()) { - Int_t port = gSystem->GetServiceByName("rootd"); - if (port < 0) - port = 1094; - u.SetPort(port); - } - - // Now we can check - if (!strcmp(u.GetHostFQDN(), fUrl.GetHostFQDN())) - if (u.GetPort() == fUrl.GetPort()) - if (strlen(u.GetUser()) <= 0 || !strcmp(u.GetUser(),fUrl.GetUser())) - return kTRUE; - - // Match failed - return kFALSE; -} - -//________________________________________________________________________ -TList *TVirtualProofMgr::GetListOfManagers() -{ - // Extract pointers to PROOF managers from TROOT::fProofs. - - // Update the list with new entries - if (gROOT->GetListOfProofs()) { - TIter nxp(gROOT->GetListOfProofs()); - TVirtualProofMgr *p = 0; - while ((p = dynamic_cast<TVirtualProofMgr *> (nxp()))) - if (!fgListOfManagers.FindObject(p)) - fgListOfManagers.Add(p); - } - - // Get rid of invalid entries and notify - if (fgListOfManagers.GetSize() > 0) { - TIter nxp(&fgListOfManagers); - TObject *o = 0; - Int_t nm = 0; - while ((o = nxp())) { - if (!(gROOT->GetListOfProofs()->FindObject(o))) { - fgListOfManagers.Remove(o); - } else { - TVirtualProofMgr *p = (TVirtualProofMgr *)o; - Printf("// #%d: \"%s\" (%s)", ++nm, p->GetName(), p->GetTitle()); - } - } - } else { - if (gDebug > 0) - Printf("No managers found"); - } - - // We are done - return &fgListOfManagers; -} - -//______________________________________________________________________________ -TVirtualProofMgr *TVirtualProofMgr::Create(const char *url, Int_t loglevel, - const char *alias, Bool_t xpd) -{ - // Static method returning the appropriate TProofMgr object using - // the plugin manager. - TVirtualProofMgr *m= 0; - - // Make sure we do not have already a manager for this URL - TList *lm = TVirtualProofMgr::GetListOfManagers(); - if (lm) { - TIter nxm(lm); - while ((m = (TVirtualProofMgr *)nxm())) - if (m->MatchUrl(url)) - if (m->IsValid()) { - return m; - } else { - fgListOfManagers.Remove(m); - SafeDelete(m); - break; - } - } - - m = 0; - Bool_t trystd = kTRUE; - - // If required, we assume first that the remote server is based on XrdProofd - if (xpd) { - TVirtualProofMgr_t cm = TVirtualProofMgr::GetProofMgrHook("xpd"); - if (cm) { - m = (TVirtualProofMgr *) (*cm)(url, loglevel, alias); - // Update trystd flag - trystd = (m && !(m->IsValid()) && m->IsProofd()) ? kTRUE : kFALSE; - } - } - - // If the first attempt failed, we instantiate an old interface - if (trystd) { - SafeDelete(m); - TVirtualProofMgr_t cm = TVirtualProofMgr::GetProofMgrHook("std"); - if (cm) - m = (TVirtualProofMgr *) (*cm)(url, loglevel, alias); - } - - // Record the new manager, if any - if (m) { - fgListOfManagers.Add(m); - if (m->IsValid() && !(m->IsProofd())) { - R__LOCKGUARD2(gROOTMutex); - gROOT->GetListOfProofs()->Add(m); - gROOT->GetListOfSockets()->Add(m); - } - } - - // We are done - return m; -} - -//________________________________________________________________________ -TVirtualProofMgr_t TVirtualProofMgr::GetProofMgrHook(const char *type) -{ - // Get the specified constructor hook. - // We do this without the plugin manager because it blocks the - // CINT mutex breaking the parallel startup. - - static const char *libs[] = { "/libProof", "/libProofx" }; - - // Find index (default: classic) - Int_t idx = (type && !strncmp(type,"xpd",3)) ? 1 : 0; - - if (!fgTProofMgrHook[idx]) { - // Load the appropriate library ... -#ifdef ROOTLIBDIR - TString prooflib = TString(ROOTLIBDIR); -#else -#ifndef WIN32 - TString prooflib = TString(gRootDir) + "/lib"; -#else - TString prooflib = TString(gRootDir) + "/bin"; -#endif -#endif - prooflib += libs[idx]; - char *p = 0; - if ((p = gSystem->DynamicPathName(prooflib, kTRUE))) { - delete[] p; - if (gSystem->Load(prooflib) == -1) - ::Error("TVirtualProofMgr::GetProofMgrCtor", - "can't load %s", prooflib.Data()); - } else - ::Error("TVirtualProofMgr::GetProofMgrCtor", - "can't locate %s", prooflib.Data()); - } - - // Done - return fgTProofMgrHook[idx]; -} - -//_____________________________________________________________________________ -void TVirtualProofMgr::SetTProofMgrHook(TVirtualProofMgr_t pmh, const char *t) -{ - // Set hook to TProofMgr ctor - - // Find index (default: classic) - Int_t idx = (t && !strncmp(t,"xpd",3)) ? 1 : 0; - - fgTProofMgrHook[idx] = pmh; -} - -ClassImp(TVirtualProofDesc) - -//________________________________________________________________________ -void TVirtualProofDesc::Print(Option_t *) const -{ - // Dump the content to the screen. - const char *st[] = { "unknown", "idle", "processsing", "shutting down"}; - - Printf("// # %d", fLocalId); - Printf("// alias: %s, url: \"%s\"", GetTitle(), GetUrl()); - Printf("// tag: %s", GetName()); - Printf("// status: %s, attached: %s (remote ID: %d)",st[fStatus+1], (fProof ? "YES" : "NO"), fRemoteId); -} diff --git a/config/rootrc.in b/config/rootrc.in index a2e4d6af7ba..a4340daea50 100644 --- a/config/rootrc.in +++ b/config/rootrc.in @@ -1,4 +1,4 @@ -# @(#)root/config:$Name: $:$Id: rootrc.in,v 1.154 2006/11/25 09:28:22 brun Exp $ +# @(#)root/config:$Name: $:$Id: rootrc.in,v 1.155 2006/11/27 14:14:24 rdm Exp $ # Author: Fons Rademakers 22/09/95 # ROOT Environment settings are handled via the class TEnv. To see @@ -500,33 +500,32 @@ Plugin.TGuiFactory: root TRootGuiFactory Gui "TRootGuiFactory()" +Plugin.TGuiFactory: win32 TWin32GuiFactory Win32 "TWin32GuiFactory()" +Plugin.TGuiFactory: qt TQtRootGuiFactory QtRoot "TQtRootGuiFactory()" Plugin.TGPasswdDialog: * TGPasswdDialog Gui "TGPasswdDialog(const char*,char*,Int_t,UInt_t,UInt_t)" -Plugin.TVirtualProof: ^condor: TProofCondor Proof "TProofCondor(const char*,const char*,const char*,Int_t)" -+Plugin.TVirtualProof: ^sm: TProofSuperMaster Proof "TProofSuperMaster(const char*,const char*,const char*,Int_t)" -+Plugin.TVirtualProof: ^peac: TProofPEAC Peac "TProofPEAC(const char*,const char*,const char*,Int_t)" -+Plugin.TVirtualProof: * TProof Proof "TProof(const char*,const char*,const char*,Int_t,const char *)" -Plugin.TProofProgressDialog: * TProofProgressDialog ProofGui "TProofProgressDialog(TVirtualProof*,const char*,Int_t,Long64_t,Long64_t)" -Plugin.TDataProgressDialog: * TDataProgressDialog peacGui "TDataProgressDialog(TVirtualProof*,const char*,Int_t,Long64_t)" +Plugin.TProof: ^condor: TProofCondor Proof "TProofCondor(const char*,const char*,const char*,Int_t)" ++Plugin.TProof: ^sm: TProofSuperMaster Proof "TProofSuperMaster(const char*,const char*,const char*,Int_t)" ++Plugin.TProof: ^peac: TProofPEAC Peac "TProofPEAC(const char*,const char*,const char*,Int_t)" ++Plugin.TProof: * TProof Proof "TProof(const char*,const char*,const char*,Int_t,const char *)" +Plugin.TProofProgressDialog: * TProofProgressDialog ProofGui "TProofProgressDialog(TProof*,const char*,Int_t,Long64_t,Long64_t)" +Plugin.TDataProgressDialog: * TDataProgressDialog peacGui "TDataProgressDialog(TProof*,const char*,Int_t,Long64_t)" Plugin.TProofServ: ^xpd TXProofServ Proofx "TXProofServ(Int_t *,char **)" Plugin.TSlave: ^xpd TXSlave Proofx "TXSlave(const char *,const char *,Int_t,const char *, TProof *,Int_t,const char *,const char *)" -Plugin.TChain: ^proof TProofChain Proof "TProofChain(TChain *)" -Plugin.TVirtualPadEditor: Ged TGedEditor Ged "TGedEditor(TCanvas*)" -Plugin.TVirtualProofMgr: ^std TProofMgr Proof "TProofMgr(const char *,Int_t,const char *)" -@hasxrd@+Plugin.TVirtualProofMgr: ^xpd TXProofMgr Proofx "TXProofMgr(const char *,Int_t,const char *)" -Plugin.TVirtualViewer3D: x3d TViewerX3D X3d "TViewerX3D(TVirtualPad*)" -+Plugin.TVirtualViewer3D: ogl TGLSAViewer RGL "TGLSAViewer(TVirtualPad*)" -+Plugin.TVirtualViewer3D: gl TGLViewer RGL "TGLViewer(TVirtualPad*)" -Plugin.TVirtualDragManager: * TGuiBldDragManager GuiBld "TGuiBldDragManager()" -Plugin.TGuiBuilder: * TRootGuiBuilder GuiBld "TRootGuiBuilder()" +Plugin.TChain: ^proof TProofChain Proof "TProofChain(TChain *)" +Plugin.TVirtualPadEditor: Ged TGedEditor Ged "TGedEditor(TCanvas*)" +@hasxrd@Plugin.TProofMgr: ^xpd TXProofMgr Proofx "TXProofMgr(const char *,Int_t,const char *)" +Plugin.TVirtualViewer3D: x3d TViewerX3D X3d "TViewerX3D(TVirtualPad*)" ++Plugin.TVirtualViewer3D: ogl TGLSAViewer RGL "TGLSAViewer(TVirtualPad*)" ++Plugin.TVirtualViewer3D: gl TGLViewer RGL "TGLViewer(TVirtualPad*)" +Plugin.TVirtualDragManager: * TGuiBldDragManager GuiBld "TGuiBldDragManager()" +Plugin.TGuiBuilder: * TRootGuiBuilder GuiBld "TRootGuiBuilder()" Unix.*.Plugin.TVirtualGLImp: * TX11GL RGL "TX11GL()" WinNT.*.Plugin.TVirtualGLImp: * TGWin32GL RGL "TGWin32GL()" -Unix.*.Plugin.TGLManager: * TX11GLManager RGL "TX11GLManager()" -WinNT.*.Plugin.TGLManager: * TGWin32GLManager RGL "TGWin32GLManager()" -Plugin.TGLHistPainter: * TGLHistPainter RGL "TGLHistPainter(TH1*)" -Plugin.TVirtualFFT: fftwc2c TFFTComplex FFTW "TFFTComplex(Int_t, Int_t *,Bool_t)" -+Plugin.TVirtualFFT: fftwc2r TFFTComplexReal FFTW "TFFTComplexReal(Int_t,Int_t *, Bool_t)" -+Plugin.TVirtualFFT: fftwr2c TFFTRealComplex FFTW "TFFTRealComplex(Int_t,Int_t *, Bool_t)" -+Plugin.TVirtualFFT: fftwr2r TFFTReal FFTW "TFFTReal(Int_t, Int_t *,Bool_t)" -Plugin.TFitEditor * TFitEditor FitPanel "TFitEditor(const TVirtualPad*, const TObject*)" +Unix.*.Plugin.TGLManager: * TX11GLManager RGL "TX11GLManager()" +WinNT.*.Plugin.TGLManager: * TGWin32GLManager RGL "TGWin32GLManager()" +Plugin.TGLHistPainter: * TGLHistPainter RGL "TGLHistPainter(TH1*)" +Plugin.TVirtualFFT: fftwc2c TFFTComplex FFTW "TFFTComplex(Int_t, Int_t *,Bool_t)" ++Plugin.TVirtualFFT: fftwc2r TFFTComplexReal FFTW "TFFTComplexReal(Int_t,Int_t *, Bool_t)" ++Plugin.TVirtualFFT: fftwr2c TFFTRealComplex FFTW "TFFTRealComplex(Int_t,Int_t *, Bool_t)" ++Plugin.TVirtualFFT: fftwr2r TFFTReal FFTW "TFFTReal(Int_t, Int_t *,Bool_t)" +Plugin.TFitEditor * TFitEditor FitPanel "TFitEditor(const TVirtualPad*, const TObject*)" # Example of custom setting for the Rint application (root.exe). # This overrides the default specified above for a generic application. diff --git a/peac/inc/TPEAC.h b/peac/inc/TPEAC.h index fc1c3d63685..afa4e0a6c67 100644 --- a/peac/inc/TPEAC.h +++ b/peac/inc/TPEAC.h @@ -1,4 +1,4 @@ -// @(#)root/peac:$Name:$:$Id:$ +// @(#)root/peac:$Name: $:$Id: TPEAC.h,v 1.1 2005/02/07 18:02:36 rdm Exp $ // Author: Maarten Ballintijn 21/10/2004 // Author: Kris Gulbrandsen 21/10/2004 @@ -32,7 +32,7 @@ class TGM; class TDSet; -class TVirtualProof; +class TProof; class TPEAC : public TObject { @@ -41,7 +41,7 @@ private: TGM *fGM; //global manager object TString fSessionID; //session id gotten from clarens TString fDataSet; //dataset used to create session - TVirtualProof *fProof; //proof session started in StartSession + TProof *fProof; //proof session started in StartSession TPEAC(); diff --git a/peac/inc/TProofStartupDialog.h b/peac/inc/TProofStartupDialog.h index c54665723c9..3f3f900c901 100644 --- a/peac/inc/TProofStartupDialog.h +++ b/peac/inc/TProofStartupDialog.h @@ -1,4 +1,4 @@ -// @(#)root/peac:$Name:$:$Id:$ +// @(#)root/peac:$Name: $:$Id: TProofStartupDialog.h,v 1.1 2005/02/07 18:02:36 rdm Exp $ // Author: Maarten Ballintijn 21/10/2004 // Author: Kris Gulbrandsen 21/10/2004 @@ -31,13 +31,13 @@ class TGProgressBar; class TGTextButton; class TGCheckButton; class TGLabel; -class TVirtualProof; +class TProof; class TProofStartupDialog { private: - TVirtualProof *fProof; + TProof *fProof; TGTransientFrame *fDialog; // transient frame, main dialog window TGProgressBar *fBar; // progress bar TGLabel *fFilesBytes; @@ -52,7 +52,7 @@ private: public: - TProofStartupDialog(TVirtualProof *proof, const Char_t *dataset, + TProofStartupDialog(TProof *proof, const Char_t *dataset, Int_t nfiles, Long64_t totalbytes); virtual ~TProofStartupDialog(); void Progress(Long64_t totalbytes, Long64_t bytesready); diff --git a/peac/src/TPEAC.cxx b/peac/src/TPEAC.cxx index 46270e473ce..8508103a301 100644 --- a/peac/src/TPEAC.cxx +++ b/peac/src/TPEAC.cxx @@ -1,4 +1,4 @@ -// @(#)root/peac:$Name: $:$Id: TPEAC.cxx,v 1.1 2005/02/07 18:02:36 rdm Exp $ +// @(#)root/peac:$Name: $:$Id: TPEAC.cxx,v 1.2 2006/08/09 07:15:42 rdm Exp $ // Author: Maarten Ballintijn 21/10/2004 // Author: Kris Gulbrandsen 21/10/2004 @@ -29,7 +29,7 @@ #include "TROOT.h" #include "TSystem.h" #include "TUrl.h" -#include "TVirtualProof.h" +#include "TProof.h" namespace { @@ -134,7 +134,7 @@ TDSet *TPEAC::StartSession(const Char_t *dataset) fDataSet = dataset; // start proof - fProof = TVirtualProof::Open(purl.GetUrl(), Form("peac:%s", sessionid.Data())); + fProof = TProof::Open(purl.GetUrl(), Form("peac:%s", sessionid.Data())); if (!fProof || !fProof->IsValid()) { Error("StartSession", "PROOF session could not be started"); @@ -144,7 +144,7 @@ TDSet *TPEAC::StartSession(const Char_t *dataset) } //call EndSession when proof is destroyed - fProof->Connect("~TVirtualProof()", "TPEAC", this, "EndSessionCallback()"); + fProof->Connect("~TProof()", "TPEAC", this, "EndSessionCallback()"); //wait until data is ready Long64_t totalbytes, bytesready; @@ -188,7 +188,7 @@ void TPEAC::EndSessionCallback() } if (fProof) { - fProof->Disconnect("~TVirtualProof()", this, "EndSessionCallback()"); + fProof->Disconnect("~TProof()", this, "EndSessionCallback()"); fProof = 0; } fGM->DestroySession(fSessionID); @@ -212,7 +212,7 @@ void TPEAC::EndSession() } if (fProof) { - fProof->Disconnect("~TVirtualProof()", this, "EndSessionCallback()"); + fProof->Disconnect("~TProof()", this, "EndSessionCallback()"); delete fProof; fProof = 0; } diff --git a/peac/src/TProofStartupDialog.cxx b/peac/src/TProofStartupDialog.cxx index defe709bc22..46c6988e018 100644 --- a/peac/src/TProofStartupDialog.cxx +++ b/peac/src/TProofStartupDialog.cxx @@ -1,4 +1,4 @@ -// @(#)root/peac:$Name:$:$Id:$ +// @(#)root/peac:$Name: $:$Id: TProofStartupDialog.cxx,v 1.1 2005/02/07 18:02:36 rdm Exp $ // Author: Maarten Ballintijn 21/10/2004 // Author: Kris Gulbrandsen 21/10/2004 @@ -24,13 +24,13 @@ #include "TGProgressBar.h" #include "TSystem.h" #include "TTimer.h" -#include "TVirtualProof.h" +#include "TProof.h" ClassImp(TProofStartupDialog) //______________________________________________________________________________ -TProofStartupDialog::TProofStartupDialog(TVirtualProof *proof, +TProofStartupDialog::TProofStartupDialog(TProof *proof, const Char_t *dataset, Int_t nfiles, Long64_t totalbytes) diff --git a/proof/inc/LinkDef.h b/proof/inc/LinkDef.h index 23b317dda5a..4c736763fd9 100644 --- a/proof/inc/LinkDef.h +++ b/proof/inc/LinkDef.h @@ -1,4 +1,4 @@ -/* @(#)root/proof:$Name: $:$Id: LinkDef.h,v 1.33 2006/07/01 12:05:49 rdm Exp $ */ +/* @(#)root/proof:$Name: $:$Id: LinkDef.h,v 1.34 2006/11/27 14:14:23 rdm Exp $ */ /************************************************************************* * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * @@ -26,6 +26,7 @@ #pragma link C++ class TDSetElement+; #pragma link C++ class TProofChain+; #pragma link C++ class TProofMgr; +#pragma link C++ class TProofDesc; #pragma link C++ class TProof; #pragma link C++ class TProofCondor; #pragma link C++ class TProofSuperMaster; @@ -76,4 +77,6 @@ #pragma link C++ class std::pair<TDSet*, TString>; #pragma link C++ class std::pair<TDSetElement*, TString>; +#pragma link C++ global gProof; + #endif diff --git a/proof/inc/TDSet.h b/proof/inc/TDSet.h index ac5bb8fa4a9..c26facf42b4 100644 --- a/proof/inc/TDSet.h +++ b/proof/inc/TDSet.h @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TDSet.h,v 1.19 2006/08/06 07:15:00 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TDSet.h,v 1.1 2006/11/27 14:14:23 rdm Exp $ // Author: Fons Rademakers 11/01/02 /************************************************************************* @@ -60,7 +60,7 @@ class TFileInfo; class TCut; class TTree; class TChain; -class TVirtualProof; +class TProof; class TEventList; class TProofChain; @@ -201,7 +201,7 @@ public: TList *GetOutputList(); virtual void StartViewer(); // *MENU* - virtual TTree *GetTreeHeader(TVirtualProof *proof); + virtual TTree *GetTreeHeader(TProof *proof); virtual void SetEventList(TEventList *evl) { fEventList = evl;} TEventList *GetEventList() const {return fEventList; } void Validate(); diff --git a/proof/inc/TDrawFeedback.h b/proof/inc/TDrawFeedback.h index cd1eb7542c0..9d4096f84b1 100644 --- a/proof/inc/TDrawFeedback.h +++ b/proof/inc/TDrawFeedback.h @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TDrawFeedback.h,v 1.5 2005/09/16 08:48:38 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TDrawFeedback.h,v 1.6 2006/03/20 21:43:43 pcanal Exp $ // Author: Maarten Ballintijn 28/10/2003 /************************************************************************* @@ -28,7 +28,7 @@ #include "TObject.h" #endif -class TVirtualProof; +class TProof; class TProof; class THashList; class TSeqCollection; @@ -43,7 +43,7 @@ protected: TProof *fProof; //handle to PROOF session public: - TDrawFeedback(TVirtualProof *proof = 0, TSeqCollection *names = 0); + TDrawFeedback(TProof *proof = 0, TSeqCollection *names = 0); ~TDrawFeedback(); void Feedback(TList *objs); diff --git a/proof/inc/TProof.h b/proof/inc/TProof.h index 35f6c6365f1..aff561b433c 100644 --- a/proof/inc/TProof.h +++ b/proof/inc/TProof.h @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TProof.h,v 1.95 2006/11/20 15:56:35 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TProof.h,v 1.96 2006/11/22 14:16:54 rdm Exp $ // Author: Fons Rademakers 13/02/97 /************************************************************************* @@ -24,8 +24,11 @@ // // ////////////////////////////////////////////////////////////////////////// -#ifndef ROOT_TVirtualProof -#include "TVirtualProof.h" +#ifndef ROOT_TProof +#include "TProof.h" +#endif +#ifndef ROOT_TProofMgr +#include "TProofMgr.h" #endif #ifndef ROOT_TProofDebug #include "TProofDebug.h" @@ -68,11 +71,14 @@ class TSlave; class TProofServ; class TProofInputHandler; class TProofInterruptHandler; +class TProofLockPath; class TProofPlayer; class TProofPlayerRemote; class TProofProgressDialog; -class TProofLockPath; +class TQueryResult; +class TChain; class TCondor; +class TEventList; class TTree; class TDrawFeedback; class TDSet; @@ -216,7 +222,7 @@ public: ClassDef(TSlaveInfo,2) //basic info on slave }; -class TProof : public TVirtualProof { +class TProof : public TNamed, public TQObject { friend class TPacketizer; friend class TPacketizerDev; @@ -233,6 +239,32 @@ friend class TXSocketHandler; // to access fCurrentMonitor and CollectInputFrom friend class TXProofMgr; // to access EUrgent friend class TXProofServ; // to access EUrgent +public: + // PROOF status bits + enum EStatusBits { + kUsingSessionGui = BIT(14) + }; + enum EQueryMode { + kSync = 0, + kAsync = 1 + }; + enum EUploadOpt { + kAppend = 0x1, + kOverwriteDataSet = 0x2, + kNoOverwriteDataSet = 0x4, + kOverwriteAllFiles = 0x8, + kOverwriteNoFiles = 0x10, + kAskUser = 0x0 + }; + enum EUploadDataSetAnswer { + kError = -1, + kDataSetExists = -2 + }; + enum EUploadPackageOpt { + kUntar = 0x0, //Untar over existing dir [default] + kRemoveOld = 0x1 //Remove existing dir with same name + }; + private: enum EUrgent { kLocalInterrupt = -1, @@ -342,6 +374,8 @@ private: TProofLockPath *fPackageLock; //package lock TList *fEnabledPackagesOnClient; //list of packages enabled on client + static TList *fgProofEnvList; // List of TNameds defining environment + // variables to pass to proofserv protected: enum ESlaves { kAll, kActive, kUnique, kAllUnique }; @@ -359,6 +393,11 @@ protected: TList *fAvailablePackages; //list of available packages TList *fEnabledPackages; //list of enabled packages + TString fDataPoolUrl; // default data pool entry point URL + TProofMgr::EServType fServType; // type of server: proofd, XrdProofd + TProofMgr *fManager; // manager to which this session belongs (if any) + EQueryMode fQueryMode; // default query mode + static TSemaphore *fgSemaphore; //semaphore to control no of parallel startup threads private: @@ -465,7 +504,7 @@ protected: public: TProof(const char *masterurl, const char *conffile = kPROOF_ConfFile, const char *confdir = kPROOF_ConfDir, Int_t loglevel = 0, - const char *alias = 0, TVirtualProofMgr *mgr = 0); + const char *alias = 0, TProofMgr *mgr = 0); virtual ~TProof(); void cd(Int_t id = -1); @@ -550,6 +589,7 @@ public: const char *GetConfFile() const { return fConfFile; } const char *GetUser() const { return fUrl.GetUser(); } const char *GetWorkDir() const { return fWorkDir; } + const char *GetSessionTag() const { return GetName(); } const char *GetImage() const { return fImage; } const char *GetUrl() { return fUrl.GetUrl(); } Int_t GetPort() const { return fUrl.GetPort(); } @@ -564,11 +604,13 @@ public: EQueryMode GetQueryMode() const; EQueryMode GetQueryMode(Option_t *mode) const; void SetQueryMode(EQueryMode mode); + void SetQueryType(EQueryMode mode) { fQueryMode = mode; } Long64_t GetBytesRead() const { return fBytesRead; } Float_t GetRealTime() const { return fRealTime; } Float_t GetCpuTime() const { return fCpuTime; } + Bool_t IsProofd() const { return (fServType == TProofMgr::kProofd); } Bool_t IsFolder() const { return kTRUE; } Bool_t IsMaster() const { return fMasterServ; } Bool_t IsValid() const { return fValid; } @@ -632,18 +674,30 @@ public: void Detach(Option_t *opt = ""); - void SetAlias(const char *alias=""); + virtual void SetAlias(const char *alias=""); - void SetManager(TVirtualProofMgr *mgr); + TProofMgr *GetManager() { return fManager; } + void SetManager(TProofMgr *mgr); void ActivateWorker(const char *ord); void DeactivateWorker(const char *ord); - static TVirtualProof *Open(const char *url = 0, const char *conffile = 0, - const char *confdir = 0, Int_t loglevel = 0); - static Int_t Reset(const char *url, const char *usr = 0); + const char *GetDataPoolUrl() const { return fDataPoolUrl; } + void SetDataPoolUrl(const char *url) { fDataPoolUrl = url; } + + static TProof *Open(const char *url = 0, const char *conffile = 0, + const char *confdir = 0, Int_t loglevel = 0); + static Int_t Reset(const char *url, const char *usr = 0); + + static void AddEnvVar(const char *name, const char *value); + static void DelEnvVar(const char *name); + static const TList *GetEnvVars(); + static void ResetEnvVars(); ClassDef(TProof,0) //PROOF control class }; +// Global object with default PROOF session +R__EXTERN TProof *gProof; + #endif diff --git a/proof/inc/TProofMgr.h b/proof/inc/TProofMgr.h index 95c0c003c49..dd7867b7631 100644 --- a/proof/inc/TProofMgr.h +++ b/proof/inc/TProofMgr.h @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TProofMgr.h,v 1.1 2005/12/10 16:51:57 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TProofMgr.h,v 1.2 2006/06/21 16:18:26 rdm Exp $ // Author: G. Ganis, Nov 2005 /************************************************************************* @@ -24,27 +24,116 @@ // // ////////////////////////////////////////////////////////////////////////// -#ifndef ROOT_TVirtualProofMgr -#include "TVirtualProofMgr.h" +#ifndef ROOT_TNamed +#include "TNamed.h" #endif #ifndef ROOT_TUrl #include "TUrl.h" #endif -class TProofMgr : public TVirtualProofMgr { +class TList; +class TProof; +class TProofDesc; +class TProofMgr; + +typedef TProofMgr *(*TProofMgr_t)(const char *, Int_t, const char *); + +class TProofMgr : public TNamed { + +public: + enum EServType { kProofd = 0, kXProofd = 1 }; + +private: + static TProofMgr_t fgTXProofMgrHook; // Constructor hooks for TXProofMgr + static TProofMgr_t GetXProofMgrHook(); + +protected: + Int_t fRemoteProtocol; // Protocol number run by the daemon server + EServType fServType; // Type of server: old-proofd, XrdProofd + TList *fSessions; // PROOF session managed by this server + TUrl fUrl; // Server URL + + static TList fgListOfManagers; // Sub-list of TROOT::ListOfProofs for managers + + TProofMgr() : fRemoteProtocol(-1), + fServType(kXProofd), fSessions(0), fUrl() { } public: TProofMgr(const char *url, Int_t loglevel = -1, const char *alias = ""); - virtual ~TProofMgr() { } + virtual ~TProofMgr(); + + virtual Bool_t IsProofd() const { return (fServType == kProofd); } + virtual Bool_t IsValid() const { return kTRUE; } + + + virtual TProof *AttachSession(Int_t, Bool_t = kFALSE); + virtual TProof *CreateSession(const char * = 0, const char * = 0, Int_t = -1); + virtual void DetachSession(Int_t, Option_t * = ""); + virtual TProofDesc *GetProofDesc(Int_t id); + virtual Int_t GetRemoteProtocol() const { return fRemoteProtocol; } + virtual const char *GetUrl() { return fUrl.GetUrl(); } + virtual Bool_t MatchUrl(const char *url); + virtual TList *QuerySessions(Option_t *opt = "S"); + virtual Int_t Reset(const char *usr = 0); + virtual void ShowWorkers(); + virtual void SetAlias(const char *alias="") { TNamed::SetTitle(alias); } + virtual void ShutdownSession(Int_t id) { DetachSession(id,"S"); } + virtual void ShutdownSession(TProof *p); + + static TList *GetListOfManagers(); + + static void SetTXProofMgrHook(TProofMgr_t pmh); + + static TProofMgr *Create(const char *url, Int_t loglevel = -1, + const char *alias = 0, Bool_t xpd = kTRUE); + + ClassDef(TProofMgr,0) // Abstract PROOF manager interface +}; + + + + +// +// Metaclass describing the essentials of a PROOF session +// +class TProofDesc : public TNamed { +public: + enum EStatus { kUnknown = -1, kIdle = 0, kRunning =1, kShutdown = 2}; + +private: + Int_t fLocalId; // ID in the local list + Int_t fStatus; // Session status (see EStatus) + TProof *fProof; // Related instance of TProof + Int_t fRemoteId; // Remote ID assigned by the coordinator to the proofserv + TString fUrl; // Url of the connection + +public: + TProofDesc(const char *tag = 0, const char *alias = 0, const char *url = 0, + Int_t id = -1, Int_t remid = -1, Int_t status = kIdle, TProof *p = 0) + : TNamed(tag, alias), + fLocalId(id), fProof(p), fRemoteId(remid), fUrl(url) { SetStatus(status); } + virtual ~TProofDesc() { } + + Int_t GetLocalId() const { return fLocalId; } + TProof *GetProof() const { return fProof; } + Int_t GetRemoteId() const { return fRemoteId; } + Int_t GetStatus() const { return fStatus; } + const char *GetUrl() const { return fUrl; } + + Bool_t IsIdle() const { return (fStatus == kIdle) ? kTRUE : kFALSE; } + Bool_t IsRunning() const { return (fStatus == kRunning) ? kTRUE : kFALSE; } + Bool_t IsShuttingDown() const { return (fStatus == kShutdown) ? kTRUE : kFALSE; } + + Bool_t MatchId(Int_t id) const { return (fLocalId == id); } + + void Print(Option_t *opt = "") const; - Bool_t IsValid() const { return kTRUE; } + void SetStatus(Int_t st) { fStatus = (st < kIdle || st > kShutdown) ? -1 : st; } - TVirtualProof *AttachSession(Int_t id, Bool_t gui = kFALSE); - void DetachSession(Int_t, Option_t * = ""); - TList *QuerySessions(Option_t *opt = "S"); - Int_t Reset(const char *usr = 0); + void SetProof(TProof *p) { fProof = p; } + void SetRemoteId(Int_t id) { fRemoteId = id; } - ClassDef(TProofMgr,0) // PROOF session manager + ClassDef(TProofDesc,1) // Small class describing a proof session }; #endif diff --git a/proof/inc/TProofProgressDialog.h b/proof/inc/TProofProgressDialog.h index 460cea349a4..a499d8eb39b 100644 --- a/proof/inc/TProofProgressDialog.h +++ b/proof/inc/TProofProgressDialog.h @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TProofProgressDialog.h,v 1.10 2006/06/02 15:14:35 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TProofProgressDialog.h,v 1.11 2006/11/15 17:45:54 rdm Exp $ // Author: Fons Rademakers 21/03/03 /************************************************************************* @@ -35,7 +35,7 @@ class TGCheckButton; class TGLabel; class TGTextBuffer; class TGTextEntry; -class TVirtualProof; +class TProof; class TProofProgressLog; class TNtuple; class TGraph; @@ -67,7 +67,7 @@ private: TGLabel *fInit; TGLabel *fSelector; TProofProgressLog *fLogWindow; // transient frame for logs - TVirtualProof *fProof; + TProof *fProof; TTime fStartTime; TTime fEndTime; Long64_t fPrevProcessed; @@ -88,7 +88,7 @@ private: static TString fgTextQueryDefault; public: - TProofProgressDialog(TVirtualProof *proof, const char *selector, + TProofProgressDialog(TProof *proof, const char *selector, Int_t files, Long64_t first, Long64_t entries); virtual ~TProofProgressDialog(); diff --git a/proof/inc/TSessionViewer.h b/proof/inc/TSessionViewer.h index 7670e4e3ce4..de625c8ad85 100644 --- a/proof/inc/TSessionViewer.h +++ b/proof/inc/TSessionViewer.h @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TSessionViewer.h,v 1.1 2006/11/17 15:50:17 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TSessionViewer.h,v 1.2 2006/11/22 14:16:54 rdm Exp $ // Author: Marek Biskup, Jakub Madejczyk, Bertrand Bellenot 10/08/2005 /************************************************************************* @@ -84,8 +84,8 @@ class TCanvas; class TEnv; struct UserGroup_t; -class TVirtualProofMgr; -class TVirtualProof; +class TProofMgr; +class TProof; class TSessionViewer; class TSessionLogView; class TQueryResult; @@ -164,8 +164,8 @@ public: TList *fQueries; // list of queries in this session TList *fPackages; // list of packages TQueryDescription *fActQuery; // current (actual) query - TVirtualProof *fProof; // pointer on TVirtualProof used by this session - TVirtualProofMgr *fProofMgr; // Proof sessions manager + TProof *fProof; // pointer on TProof used by this session + TProofMgr *fProofMgr; // Proof sessions manager Int_t fNbHistos; // number of feedback histos const char *GetName() const { return fName; } diff --git a/proof/src/TDSet.cxx b/proof/src/TDSet.cxx index 21b46c080dd..14764870db9 100644 --- a/proof/src/TDSet.cxx +++ b/proof/src/TDSet.cxx @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TDSet.cxx,v 1.35 2006/08/06 07:15:00 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TDSet.cxx,v 1.1 2006/11/27 14:14:24 rdm Exp $ // Author: Fons Rademakers 11/01/02 /************************************************************************* @@ -57,7 +57,7 @@ #include "TUrl.h" #include "TRegexp.h" #include "TVirtualPerfStats.h" -#include "TVirtualProof.h" +#include "TProof.h" #include "TProofChain.h" #include "TPluginManager.h" #include "TChain.h" @@ -1077,7 +1077,7 @@ void TDSet::StartViewer() } //_______________________________________________________________________ -TTree* TDSet::GetTreeHeader(TVirtualProof* proof) +TTree* TDSet::GetTreeHeader(TProof* proof) { // Returns a tree header containing the branches' structure of the dataset. diff --git a/proof/src/TDrawFeedback.cxx b/proof/src/TDrawFeedback.cxx index f3c32ad1c61..73c82d8ec6a 100644 --- a/proof/src/TDrawFeedback.cxx +++ b/proof/src/TDrawFeedback.cxx @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TDrawFeedback.cxx,v 1.9 2005/06/07 20:28:32 brun Exp $ +// @(#)root/proof:$Name: $:$Id: TDrawFeedback.cxx,v 1.10 2006/05/15 09:45:03 brun Exp $ // Author: Maarten Ballintijn 28/10/2003 /************************************************************************* @@ -34,7 +34,7 @@ ClassImp(TDrawFeedback) //______________________________________________________________________________ -TDrawFeedback::TDrawFeedback(TVirtualProof *proof, TSeqCollection *names) +TDrawFeedback::TDrawFeedback(TProof *proof, TSeqCollection *names) : fAll(kFALSE) { // Constructor diff --git a/proof/src/TPerfStats.cxx b/proof/src/TPerfStats.cxx index 807e4ae1495..25c17da49a4 100644 --- a/proof/src/TPerfStats.cxx +++ b/proof/src/TPerfStats.cxx @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TPerfStats.cxx,v 1.8 2006/06/01 16:26:57 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TPerfStats.cxx,v 1.9 2006/11/15 17:45:55 rdm Exp $ // Author: Kristjan Gulbrandsen 11/05/04 /************************************************************************* @@ -113,7 +113,7 @@ TPerfStats::TPerfStats(TList *input, TList *output) // Normal Constructor. Int_t nslaves = 0; - TVirtualProof *proof = gProofServ->GetProof(); + TProof *proof = gProofServ->GetProof(); TList *l = proof ? proof->GetSlaveInfo() : 0 ; TIter nextslaveinfo(l); while (TSlaveInfo *si = dynamic_cast<TSlaveInfo*>(nextslaveinfo())) diff --git a/proof/src/TProof.cxx b/proof/src/TProof.cxx index ee40eb9b408..70c19df254c 100644 --- a/proof/src/TProof.cxx +++ b/proof/src/TProof.cxx @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TProof.cxx,v 1.169 2006/11/22 14:16:54 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TProof.cxx,v 1.170 2006/11/27 14:14:24 rdm Exp $ // Author: Fons Rademakers 13/02/97 /************************************************************************* @@ -78,8 +78,13 @@ #include "TFileInfo.h" #include "TFileMerger.h" +TProof *gProof = 0; TVirtualMutex *gProofMutex = 0; +TList *TProof::fgProofEnvList = 0; // List of env vars for proofserv + +ClassImp(TProof) + //----- Helper classes used for parallel startup ------------------------------- //______________________________________________________________________________ TProofThreadArg::TProofThreadArg(const char *h, Int_t po, const char *o, @@ -245,27 +250,11 @@ static char *CollapseSlashesInPath(const char *path) ClassImp(TProof) -// Autoloading hooks. -// These are needed to avoid using the plugin manager which may create problems -// in multi-threaded environments. -extern "C" { - TVirtualProof *GetTProof(const char *url, const char *file, - const char *dir, Int_t log, const char *al, - TVirtualProofMgr *mgr) - { return (new TProof(url, file, dir, log, al, mgr)); } -} -class TProofInit { -public: - TProofInit() { - TVirtualProof::SetTProofHook(&GetTProof); -}}; -static TProofInit gproof_init; - TSemaphore *TProof::fgSemaphore = 0; //______________________________________________________________________________ TProof::TProof(const char *masterurl, const char *conffile, const char *confdir, - Int_t loglevel, const char *alias, TVirtualProofMgr *mgr) + Int_t loglevel, const char *alias, TProofMgr *mgr) : fUrl(masterurl) { // Create a PROOF environment. Starting PROOF involves either connecting @@ -282,6 +271,9 @@ TProof::TProof(const char *masterurl, const char *conffile, const char *confdir, // This may be needed during init fManager = mgr; + // Default server type + fServType = TProofMgr::kXProofd; + if (!conffile || strlen(conffile) == 0) conffile = kPROOF_ConfFile; if (!confdir || strlen(confdir) == 0) @@ -306,7 +298,7 @@ TProof::TProof(const char *masterurl, const char *conffile, const char *confdir, } //______________________________________________________________________________ -TProof::TProof() : fUrl("") +TProof::TProof() : fUrl(""), fServType(TProofMgr::kXProofd) { // Protected constructor to be used by classes deriving from TProof // (they have to call Init themselves and override StartSlaves @@ -362,6 +354,9 @@ TProof::~TProof() if (fLogFileName.Length()) gSystem->Unlink(fLogFileName); } + + // For those interested in our destruction ... + Emit("~TProof()"); } //______________________________________________________________________________ @@ -380,7 +375,7 @@ Int_t TProof::Init(const char *masterurl, const char *conffile, fValid = kFALSE; if (strlen(fUrl.GetOptions()) > 0 && !(strncmp(fUrl.GetOptions(),"std",3))) { - fServType = TVirtualProofMgr::kProofd; + fServType = TProofMgr::kProofd; fUrl.SetOptions(""); } @@ -400,7 +395,7 @@ Int_t TProof::Init(const char *masterurl, const char *conffile, // A flag from the GUI TString opts = fUrl.GetOptions(); if (opts.Contains("GUI")) { - SetBit(TVirtualProof::kUsingSessionGui); + SetBit(TProof::kUsingSessionGui); opts.Remove(opts.Index("GUI")); fUrl.SetOptions(opts); } @@ -607,7 +602,7 @@ Int_t TProof::Init(const char *masterurl, const char *conffile, } //______________________________________________________________________________ -void TProof::SetManager(TVirtualProofMgr *mgr) +void TProof::SetManager(TProofMgr *mgr) { // Set manager and schedule its destruction after this for clean // operations. @@ -966,7 +961,7 @@ void TProof::Close(Option_t *opt) if (gProof && gProof == this) { // Set previous proofd-related as default TIter pvp(gROOT->GetListOfProofs(), kIterBackward); - while ((gProof = (TVirtualProof *)pvp())) { + while ((gProof = (TProof *)pvp())) { if (gProof->IsProofd()) break; } @@ -4286,7 +4281,7 @@ Int_t TProof::UploadPackageOnClient(const TString &par, EUploadPackageOpt opt, T if (!md5local || (*md5) != (*md5local)) { // if not, unzip and untar package in package directory Int_t st = 0; - if ((opt & TVirtualProof::kRemoveOld)) { + if ((opt & TProof::kRemoveOld)) { // remove any previous package directory with same name st = gSystem->Exec(Form("%s %s/%s", kRM, fPackageDir.Data(), packnam.Data())); @@ -4822,7 +4817,7 @@ TTree *TProof::GetTreeHeader(TDSet *dset) //______________________________________________________________________________ TDrawFeedback *TProof::CreateDrawFeedback() { - // Draw feedback creation proxy. When accessed via TVirtualProof avoids + // Draw feedback creation proxy. When accessed via TProof avoids // link dependency on libProof. return new TDrawFeedback(this); @@ -5200,7 +5195,7 @@ void TProof::cd(Int_t id) // the current session is set as default if (GetManager()) { - TVirtualProofDesc *d = GetManager()->GetProofDesc(id); + TProofDesc *d = GetManager()->GetProofDesc(id); if (d) { if (d->GetProof()) { gProof = d->GetProof(); @@ -5263,8 +5258,8 @@ void TProof::Detach(Option_t *opt) // Update info in the table of our manager, if any if (GetManager() && GetManager()->QuerySessions("L")) { TIter nxd(GetManager()->QuerySessions("L")); - TVirtualProofDesc *d = 0; - while ((d = (TVirtualProofDesc *)nxd())) { + TProofDesc *d = 0; + while ((d = (TProofDesc *)nxd())) { if (d->GetProof() == this) { d->SetProof(0); GetManager()->QuerySessions("L")->Remove(d); @@ -5952,25 +5947,6 @@ Int_t TProof::VerifyDataSet(const char *dataSet) return nMissingFiles; } -//_____________________________________________________________________________ -TVirtualProof *TProof::Open(const char *url, const char *conffile, - const char *confdir, Int_t loglevel) -{ - // Start a PROOF session on a specific cluster. Wrapper around - // TVirtualProof::Open(). - - return TVirtualProof::Open(url, conffile, confdir, loglevel); -} - -//_____________________________________________________________________________ -Int_t TProof::Reset(const char *url, const char *usr) -{ - // Start a PROOF session on a specific cluster. Wrapper around - // TVirtualProof::Reset(). - - return TVirtualProof::Reset(url, usr); -} - //_____________________________________________________________________________ void TProof::InterruptCurrentMonitor() { @@ -6076,3 +6052,223 @@ void TProof::ModifyWorkerLists(const char *ord, Bool_t add) Collect(); } } + +//_____________________________________________________________________________ +TProof *TProof::Open(const char *cluster, const char *conffile, + const char *confdir, Int_t loglevel) +{ + // Start a PROOF session on a specific cluster. If cluster is 0 (the + // default) then the PROOF Session Viewer GUI pops up and 0 is returned. + // If cluster is "" (empty string) then we connect to a PROOF session + // on the localhost ("proof://localhost"). Via conffile a specific + // PROOF config file in the confir directory can be specified. + // Use loglevel to set the default loging level for debugging. + // The appropriate instance of TProofMgr is created, if not + // yet existing. The instantiated TProof object is returned. + // Use TProof::cd() to switch between PROOF sessions. + // For more info on PROOF see the TProof ctor. + + const char *pn = "TProof::Open"; + + // Make sure libProof and dependents are loaded and TProof can be created, + // dependents are loaded via the information in the [system].rootmap file + if (!cluster) { + + TPluginManager *pm = gROOT->GetPluginManager(); + if (!pm) { + ::Error(pn, "plugin manager not found"); + return 0; + } + + if (gROOT->IsBatch()) { + ::Error(pn, "we are in batch mode, cannot show PROOF Session Viewer"); + return 0; + } + // start PROOF Session Viewer + TPluginHandler *sv = pm->FindHandler("TSessionViewer", ""); + if (!sv) { + ::Error(pn, "no plugin found for TSessionViewer"); + return 0; + } + if (sv->LoadPlugin() == -1) { + ::Error(pn, "plugin for TSessionViewer could not be loaded"); + return 0; + } + sv->ExecPlugin(0); + return 0; + + } else { + + TProof *proof = 0; + + // If the master was specified as "", use "localhost" + TString fqdn = cluster; + if (fqdn == "") + fqdn = "localhost"; + + TUrl u(fqdn); + // in case user gave as url: "machine.dom.ain", replace + // "http" by "proof" and "80" by "1093" + if (!strcmp(u.GetProtocol(), TUrl("a").GetProtocol())) + u.SetProtocol("proof"); + if (u.GetPort() == TUrl("a").GetPort()) + u.SetPort(1093); + + // Find out if we are required to attach to a specific session + TString o(u.GetOptions()); + Int_t locid = -1; + Bool_t create = kFALSE; + if (o.Length() > 0) { + if (o.BeginsWith("N",TString::kIgnoreCase)) { + create = kTRUE; + } else if (o.IsDigit()) { + locid = o.Atoi(); + } + u.SetOptions(""); + } + + // Attach-to or create the appropriate manager + TProofMgr *mgr = TProofMgr::Create(u.GetUrl()); + + if (mgr && mgr->IsValid()) { + + // If XProofd we always attempt an attach first (unless + // explicitely not requested). + Bool_t attach = (create || mgr->IsProofd()) ? kFALSE : kTRUE; + if (attach) { + TProofDesc *d = 0; + if (locid < 0) + // Get the list of sessions + d = (TProofDesc *) mgr->QuerySessions("")->First(); + else + d = (TProofDesc *) mgr->GetProofDesc(locid); + if (d) { + proof = (TProof*) mgr->AttachSession(d->GetLocalId()); + if (!proof || !proof->IsValid()) { + if (locid) + ::Error(pn, "new session could not be attached"); + SafeDelete(proof); + } + } + } + + // start the PROOF session + if (!proof) { + proof = (TProof*) mgr->CreateSession(conffile, confdir, loglevel); + if (!proof || !proof->IsValid()) { + ::Error(pn, "new session could not be created"); + SafeDelete(proof); + } + } + } + return proof; + } +} + +//_____________________________________________________________________________ +Int_t TProof::Reset(const char *url, const char *usr) +{ + // Reset the entry associated with the entity defined by 'url', which is + // in the form + // "[proof://][user@]master.url[:port]" + // If 'user' has the privileges it can also ask to reset the entry of a + // different user specified by 'usr'; use 'usr'=='*' to reset all the + // sessions know remotely. + // 'Reset' means that all the PROOF sessions owned by the user at this + // master are terminated or killed, any other client connections (from other + // shells) closed, and the protocol instance reset and given back to the stack. + // After this call the user will be asked to login again and will start + // from scratch. + // To be used when the cluster is not behaving. + // Return 0 on success, -1 if somethign wrng happened. + + if (!url) + return -1; + + const char *pn = "TProof::Reset"; + + // If the master was specified as "", try to get the localhost FQDN + if (!strlen(url)) + url = gSystem->GetHostByName(gSystem->HostName()).GetHostName(); + + TUrl u(url); + // in case user gave as url: "machine.dom.ain", replace + // "http" by "proof" and "80" by "1093" + if (!strcmp(u.GetProtocol(), TUrl("a").GetProtocol())) + u.SetProtocol("proof"); + if (u.GetPort() == TUrl("a").GetPort()) + u.SetPort(1093); + + // Attach-to or create the appropriate manager + TProofMgr *mgr = TProofMgr::Create(u.GetUrl()); + + if (mgr && mgr->IsValid()) + if (!(mgr->IsProofd())) + // Ask the manager to reset the entry + return mgr->Reset(usr); + else + ::Info(pn,"proofd: functionality not supported by server"); + + else + ::Info(pn,"could not open a valid connection to %s", u.GetUrl()); + + // Done + return -1; +} + +//_____________________________________________________________________________ +const TList *TProof::GetEnvVars() +{ + // Get environemnt variables. + + return fgProofEnvList; +} + +//_____________________________________________________________________________ +void TProof::AddEnvVar(const char *name, const char *value) +{ + // Add an variable to the list of environment variables passed to proofserv + // on the master and slaves + + if (gDebug > 0) ::Info("TProof::AddEnvVar","%s=%s", name, value); + + if (fgProofEnvList == 0) { + // initialize the list if needed + fgProofEnvList = new TList; + fgProofEnvList->SetOwner(); + } else { + // replace old entries with the same name + TObject *o = fgProofEnvList->FindObject(name); + if (o != 0) { + fgProofEnvList->Remove(o); + } + } + fgProofEnvList->Add(new TNamed(name, value)); +} + +//_____________________________________________________________________________ +void TProof::DelEnvVar(const char *name) +{ + // Remove an variable from the list of environment variables passed to proofserv + // on the master and slaves + + if (fgProofEnvList == 0) return; + + TObject *o = fgProofEnvList->FindObject(name); + if (o != 0) { + fgProofEnvList->Remove(o); + } +} + +//_____________________________________________________________________________ +void TProof::ResetEnvVars() +{ + // Clear the list of environment variables passed to proofserv + // on the master and slaves + + if (fgProofEnvList == 0) return; + + SafeDelete(fgProofEnvList); +} + + diff --git a/proof/src/TProofChain.cxx b/proof/src/TProofChain.cxx index 4878395a9a2..cc82705e9fc 100644 --- a/proof/src/TProofChain.cxx +++ b/proof/src/TProofChain.cxx @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TProofChain.cxx,v 1.1 2006/11/27 14:14:24 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TProofChain.cxx,v 1.2 2006/11/27 15:57:11 rdm Exp $ // Author: G. Ganis Nov 2006 /************************************************************************* @@ -20,7 +20,7 @@ #include "TProofChain.h" #include "TDSet.h" -#include "TVirtualProof.h" +#include "TProof.h" ClassImp(TProofChain) diff --git a/proof/src/TProofMgr.cxx b/proof/src/TProofMgr.cxx index fcbdc1d4161..93336d21f3a 100644 --- a/proof/src/TProofMgr.cxx +++ b/proof/src/TProofMgr.cxx @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TProofMgr.cxx,v 1.7 2006/06/21 16:18:26 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TProofMgr.cxx,v 1.8 2006/10/03 13:31:07 rdm Exp $ // Author: G. Ganis, Nov 2005 /************************************************************************* @@ -20,6 +20,7 @@ // // ////////////////////////////////////////////////////////////////////////// +#include "TError.h" #include "TList.h" #include "TProof.h" #include "TProofMgr.h" @@ -27,31 +28,21 @@ ClassImp(TProofMgr) -// Autoloading hooks. -// These are needed to avoid using the plugin manager which may create -// problems in multi-threaded environments. -extern "C" { - TVirtualProofMgr *GetTProofMgr(const char *url, Int_t l, const char *al) - { return ((TVirtualProofMgr *) new TProofMgr(url, l, al)); } -} - -class TProofMgrInit { -public: - TProofMgrInit() { - TVirtualProofMgr::SetTProofMgrHook(&GetTProofMgr); - } -}; -static TProofMgrInit gproofmgr_init; - +// Sub-list of TROOT::fProofs with managers +TList TProofMgr::fgListOfManagers; +TProofMgr_t TProofMgr::fgTXProofMgrHook = 0; //______________________________________________________________________________ TProofMgr::TProofMgr(const char *url, Int_t, const char *alias) - : TVirtualProofMgr(url) + : TNamed("",""), fRemoteProtocol(-1), fServType(kXProofd), fSessions(0) { // Create a PROOF manager for the standard (old) environment. fServType = kProofd; + // AVoid problems with empty URLs + fUrl = (!url || strlen(url) <= 0) ? TUrl("proof://localhost") : TUrl(url); + // Correct URL protocol if (!strcmp(fUrl.GetProtocol(), TUrl("a").GetProtocol())) fUrl.SetProtocol("proof"); @@ -68,13 +59,13 @@ TProofMgr::TProofMgr(const char *url, Int_t, const char *alias) } //______________________________________________________________________________ -TVirtualProof *TProofMgr::AttachSession(Int_t id, Bool_t) +TProof *TProofMgr::AttachSession(Int_t id, Bool_t) { // Dummy version provided for completeness. Just returns a pointer to // existing session 'id' (as shown by TProof::QuerySessions) or 0 if 'id' is // not valid. - TVirtualProofDesc *d = GetProofDesc(id); + TProofDesc *d = GetProofDesc(id); if (d) { if (d->GetProof()) // Nothing to do if already in contact with proofserv @@ -91,7 +82,7 @@ void TProofMgr::DetachSession(Int_t id, Option_t *opt) // Detach session with 'id' from its proofserv. The 'id' is the number // shown by QuerySessions. - TVirtualProofDesc *d = GetProofDesc(id); + TProofDesc *d = GetProofDesc(id); if (d) { if (d->GetProof()) d->GetProof()->Detach(opt); @@ -121,16 +112,16 @@ TList *TProofMgr::QuerySessions(Option_t *opt) if (gROOT->GetListOfProofs()) { // Loop over TIter nxp(gROOT->GetListOfProofs()); - TVirtualProof *p = 0; + TProof *p = 0; Int_t ns = 0; - while ((p = (TVirtualProof *)nxp())) { + while ((p = (TProof *)nxp())) { // Only those belonginh to this server if (MatchUrl(p->GetUrl())) { if (!(fSessions->FindObject(p->GetSessionTag()))) { - Int_t st = (p->IsIdle()) ? TVirtualProofDesc::kIdle - : TVirtualProofDesc::kRunning; - TVirtualProofDesc *d = - new TVirtualProofDesc(p->GetName(), p->GetTitle(), p->GetUrl(), + Int_t st = (p->IsIdle()) ? TProofDesc::kIdle + : TProofDesc::kRunning; + TProofDesc *d = + new TProofDesc(p->GetName(), p->GetTitle(), p->GetUrl(), ++ns, p->GetSessionID(), st, p); fSessions->Add(d); } @@ -141,8 +132,8 @@ TList *TProofMgr::QuerySessions(Option_t *opt) // Drop entries not existing any longer if (fSessions->GetSize() > 0) { TIter nxd(fSessions); - TVirtualProofDesc *d = 0; - while ((d = (TVirtualProofDesc *)nxd())) { + TProofDesc *d = 0; + while ((d = (TProofDesc *)nxd())) { if (d->GetProof()) { if (!(gROOT->GetListOfProofs()->FindObject(d->GetProof()))) { fSessions->Remove(d); @@ -170,3 +161,284 @@ Int_t TProofMgr::Reset(const char *) return -1; } + +//______________________________________________________________________________ +TProofMgr::~TProofMgr() +{ + // Destroy a TProofMgr instance + + SafeDelete(fSessions); + + fgListOfManagers.Remove(this); + gROOT->GetListOfProofs()->Remove(this); +} + +//______________________________________________________________________________ +void TProofMgr::ShowWorkers() +{ + // Show available workers + + AbstractMethod("ShowWorkers"); +} + +//______________________________________________________________________________ +TProofDesc *TProofMgr::GetProofDesc(Int_t id) +{ + // Get TProof instance corresponding to 'id'. + + if (id > 0) { + TProofDesc *d = 0; + // Retrieve an updated list + QuerySessions(""); + if (fSessions) { + TIter nxd(fSessions); + while ((d = (TProofDesc *)nxd())) { + if (d->MatchId(id)) + return d; + } + } + } + + return 0; +} + +//______________________________________________________________________________ +void TProofMgr::ShutdownSession(TProof *p) +{ + // Discard PROOF session 'p' + + if (p) { + TProofDesc *d = 0; + if (fSessions) { + TIter nxd(fSessions); + while ((d = (TProofDesc *)nxd())) { + if (p == d->GetProof()) { + fSessions->Remove(d); + delete d; + break; + } + } + } + } +} + +//______________________________________________________________________________ +TProof *TProofMgr::CreateSession(const char *cfg, + const char *cfgdir, Int_t loglevel) +{ + // Create a new remote session (master and associated workers). + + // Create + if (IsProofd()) + fUrl.SetOptions("std"); + + // Create the instance + TProof *p = new TProof(fUrl.GetUrl(), cfg, cfgdir, loglevel, 0, this); + + if (p && p->IsValid()) { + + // Save record about this session + Int_t ns = 1; + if (fSessions) { + // To avoid ambiguities in case of removal of some elements + if (fSessions->Last()) + ns = ((TProofDesc *)(fSessions->Last()))->GetLocalId() + 1; + } else { + // Create the list + fSessions = new TList; + } + + // Create the description class + Int_t st = (p->IsIdle()) ? TProofDesc::kIdle : TProofDesc::kRunning ; + TProofDesc *d = + new TProofDesc(p->GetName(), p->GetTitle(), p->GetUrl(), + ns, p->GetSessionID(), st, p); + fSessions->Add(d); + + } else { + // Session creation failed + Error("CreateSession", "creating PROOF session"); + SafeDelete(p); + } + + // We are done + return p; +} + +//______________________________________________________________________________ +Bool_t TProofMgr::MatchUrl(const char *url) +{ + // Checks if 'url' refers to the same 'user@host:port' entity as the URL + // in memory + + TUrl u(url); + + // Correct URL protocol + if (!strcmp(u.GetProtocol(), TUrl("a").GetProtocol())) + u.SetProtocol("proof"); + + // Correct port + if (u.GetPort() == TUrl("a").GetPort()) { + Int_t port = gSystem->GetServiceByName("rootd"); + if (port < 0) + port = 1094; + u.SetPort(port); + } + + // Now we can check + if (!strcmp(u.GetHostFQDN(), fUrl.GetHostFQDN())) + if (u.GetPort() == fUrl.GetPort()) + if (strlen(u.GetUser()) <= 0 || !strcmp(u.GetUser(),fUrl.GetUser())) + return kTRUE; + + // Match failed + return kFALSE; +} + +//________________________________________________________________________ +TList *TProofMgr::GetListOfManagers() +{ + // Extract pointers to PROOF managers from TROOT::fProofs. + + // Update the list with new entries + if (gROOT->GetListOfProofs()) { + TIter nxp(gROOT->GetListOfProofs()); + TProofMgr *p = 0; + while ((p = dynamic_cast<TProofMgr *> (nxp()))) + if (!fgListOfManagers.FindObject(p)) + fgListOfManagers.Add(p); + } + + // Get rid of invalid entries and notify + if (fgListOfManagers.GetSize() > 0) { + TIter nxp(&fgListOfManagers); + TObject *o = 0; + Int_t nm = 0; + while ((o = nxp())) { + if (!(gROOT->GetListOfProofs()->FindObject(o))) { + fgListOfManagers.Remove(o); + } else { + TProofMgr *p = (TProofMgr *)o; + Printf("// #%d: \"%s\" (%s)", ++nm, p->GetName(), p->GetTitle()); + } + } + } else { + if (gDebug > 0) + Printf("No managers found"); + } + + // We are done + return &fgListOfManagers; +} + +//______________________________________________________________________________ +TProofMgr *TProofMgr::Create(const char *url, Int_t loglevel, + const char *alias, Bool_t xpd) +{ + // Static method returning the appropriate TProofMgr object using + // the plugin manager. + TProofMgr *m= 0; + + // Make sure we do not have already a manager for this URL + TList *lm = TProofMgr::GetListOfManagers(); + if (lm) { + TIter nxm(lm); + while ((m = (TProofMgr *)nxm())) + if (m->MatchUrl(url)) + if (m->IsValid()) { + return m; + } else { + fgListOfManagers.Remove(m); + SafeDelete(m); + break; + } + } + + m = 0; + Bool_t trystd = kTRUE; + + // If required, we assume first that the remote server is based on XrdProofd + if (xpd) { + TProofMgr_t cm = TProofMgr::GetXProofMgrHook(); + if (cm) { + m = (TProofMgr *) (*cm)(url, loglevel, alias); + // Update trystd flag + trystd = (m && !(m->IsValid()) && m->IsProofd()) ? kTRUE : kFALSE; + } + } + + // If the first attempt failed, we instantiate an old interface + if (trystd) { + SafeDelete(m); + m = new TProofMgr(url, loglevel, alias); + } + + // Record the new manager, if any + if (m) { + fgListOfManagers.Add(m); + if (m->IsValid() && !(m->IsProofd())) { + R__LOCKGUARD2(gROOTMutex); + gROOT->GetListOfProofs()->Add(m); + gROOT->GetListOfSockets()->Add(m); + } + } + + // We are done + return m; +} + +//________________________________________________________________________ +TProofMgr_t TProofMgr::GetXProofMgrHook() +{ + // Get the constructor hook fro TXProofMgr. + // We do this without the plugin manager because it blocks the + // CINT mutex breaking the parallel startup. + + if (!fgTXProofMgrHook) { + // Load the appropriate library ... +#ifdef ROOTLIBDIR + TString prooflib = TString(ROOTLIBDIR); +#else +#ifndef WIN32 + TString prooflib = TString(gRootDir) + "/lib"; +#else + TString prooflib = TString(gRootDir) + "/bin"; +#endif +#endif + prooflib += "/libProofx"; + char *p = 0; + if ((p = gSystem->DynamicPathName(prooflib, kTRUE))) { + delete[] p; + if (gSystem->Load(prooflib) == -1) + ::Error("TProofMgr::GetXProofMgrCtor", + "can't load %s", prooflib.Data()); + } else + ::Error("TProofMgr::GetXProofMgrCtor", + "can't locate %s", prooflib.Data()); + } + + // Done + return fgTXProofMgrHook; +} + +//_____________________________________________________________________________ +void TProofMgr::SetTXProofMgrHook(TProofMgr_t pmh) +{ + // Set hook to TXProofMgr ctor + + fgTXProofMgrHook = pmh; +} + +ClassImp(TProofDesc) + +//________________________________________________________________________ +void TProofDesc::Print(Option_t *) const +{ + // Dump the content to the screen. + const char *st[] = { "unknown", "idle", "processsing", "shutting down"}; + + Printf("// # %d", fLocalId); + Printf("// alias: %s, url: \"%s\"", GetTitle(), GetUrl()); + Printf("// tag: %s", GetName()); + Printf("// status: %s, attached: %s (remote ID: %d)",st[fStatus+1], (fProof ? "YES" : "NO"), fRemoteId); +} diff --git a/proof/src/TProofProgressDialog.cxx b/proof/src/TProofProgressDialog.cxx index 34f88a14c66..c3665841677 100644 --- a/proof/src/TProofProgressDialog.cxx +++ b/proof/src/TProofProgressDialog.cxx @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TProofProgressDialog.cxx,v 1.26 2006/11/21 11:41:46 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TProofProgressDialog.cxx,v 1.27 2006/11/22 16:52:54 rdm Exp $ // Author: Fons Rademakers 21/03/03 /************************************************************************* @@ -49,7 +49,7 @@ TString TProofProgressDialog::fgTextQueryDefault = "last"; ClassImp(TProofProgressDialog) //______________________________________________________________________________ -TProofProgressDialog::TProofProgressDialog(TVirtualProof *proof, +TProofProgressDialog::TProofProgressDialog(TProof *proof, const char *selector, Int_t files, Long64_t first, diff --git a/proof/src/TProofServ.cxx b/proof/src/TProofServ.cxx index 89170c90288..c8595622d6b 100644 --- a/proof/src/TProofServ.cxx +++ b/proof/src/TProofServ.cxx @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TProofServ.cxx,v 1.149 2006/11/20 15:56:35 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TProofServ.cxx,v 1.150 2006/11/27 14:14:24 rdm Exp $ // Author: Fons Rademakers 16/02/97 /************************************************************************* @@ -379,7 +379,7 @@ Int_t TProofServ::CreateServer() master += a.GetPort(); } - // Get plugin manager to load appropriate TVirtualProof from + // Get plugin manager to load appropriate TProof from TPluginManager *pm = gROOT->GetPluginManager(); if (!pm) { Error("CreateServer", "no plugin manager found"); @@ -389,9 +389,9 @@ Int_t TProofServ::CreateServer() } // Find the appropriate handler - TPluginHandler *h = pm->FindHandler("TVirtualProof", fConfFile); + TPluginHandler *h = pm->FindHandler("TProof", fConfFile); if (!h) { - Error("CreateServer", "no plugin found for TVirtualProof with a" + Error("CreateServer", "no plugin found for TProof with a" " config file of '%s'", fConfFile.Data()); SendLogFile(-99); Terminate(0); @@ -400,7 +400,7 @@ Int_t TProofServ::CreateServer() // load the plugin if (h->LoadPlugin() == -1) { - Error("CreateServer", "plugin for TVirtualProof could not be loaded"); + Error("CreateServer", "plugin for TProof could not be loaded"); SendLogFile(-99); Terminate(0); return -1; @@ -412,7 +412,7 @@ Int_t TProofServ::CreateServer() GetConfDir(), fLogLevel)); if (!fProof || !fProof->IsValid()) { - Error("CreateServer", "plugin for TVirtualProof could not be executed"); + Error("CreateServer", "plugin for TProof could not be executed"); delete fProof; fProof = 0; SendLogFile(-99); @@ -622,7 +622,7 @@ void TProofServ::GetOptions(Int_t *argc, char **argv) fMasterServ = kFALSE; fEndMaster = kFALSE; } else { - Fatal("GetOptions", "Must be started as proofmaster or proofslave"); + Fatal("GetOptions", "Must be started as 'proofserv' or 'proofslave'"); exit(1); } @@ -1975,7 +1975,7 @@ Int_t TProofServ::Setup() while (all_vars.Tokenize(name, from, ",")) { if (!name.IsNull()) { TString value = gSystem->Getenv(name); - TVirtualProof::AddEnvVar(name, value); + TProof::AddEnvVar(name, value); } } @@ -3438,7 +3438,7 @@ void TProofServ::HandleCheckFile(TMessage *mess) TString filenam; TMD5 md5; - UInt_t opt = TVirtualProof::kUntar; + UInt_t opt = TProof::kUntar; // Parse message (*mess) >> filenam >> md5; @@ -3456,7 +3456,7 @@ void TProofServ::HandleCheckFile(TMessage *mess) // compare md5's to check if transmission was ok TMD5 *md5local = TMD5::FileChecksum(fPackageDir + "/" + filenam); if (md5local && md5 == (*md5local)) { - if ((opt & TVirtualProof::kRemoveOld)) { + if ((opt & TProof::kRemoveOld)) { // remove any previous package directory with same name st = gSystem->Exec(Form("%s %s/%s", kRM, fPackageDir.Data(), packnam.Data())); diff --git a/proof/src/TSessionDialogs.cxx b/proof/src/TSessionDialogs.cxx index e0f2f9bbbef..8e89ace60f7 100644 --- a/proof/src/TSessionDialogs.cxx +++ b/proof/src/TSessionDialogs.cxx @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TSessionDialogs.cxx,v 1.32 2006/11/17 15:42:13 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TSessionDialogs.cxx,v 1.1 2006/11/17 15:50:17 rdm Exp $ // Author: Marek Biskup, Jakub Madejczyk, Bertrand Bellenot 10/08/2005 /************************************************************************* @@ -39,7 +39,7 @@ #include "TKey.h" #include "TGTableLayout.h" #include "TGFileDialog.h" -#include "TVirtualProof.h" +#include "TProof.h" #include "TFileInfo.h" #include "TGMsgBox.h" #include "TRegexp.h" @@ -1152,17 +1152,17 @@ void TUploadDataSetDlg::UploadDataSet() } // Format upload flags with user selection if (fOverwriteDSet->IsOn()) - flags |= TVirtualProof::kOverwriteDataSet; + flags |= TProof::kOverwriteDataSet; else - flags |= TVirtualProof::kNoOverwriteDataSet; + flags |= TProof::kNoOverwriteDataSet; if (fOverwriteFiles->IsOn()) - flags |= TVirtualProof::kOverwriteAllFiles; + flags |= TProof::kOverwriteAllFiles; else - flags |= TVirtualProof::kOverwriteNoFiles; + flags |= TProof::kOverwriteNoFiles; if (fAppendFiles->IsOn()) { - flags |= TVirtualProof::kAppend; - if (flags & TVirtualProof::kNoOverwriteDataSet) - flags &= ~TVirtualProof::kNoOverwriteDataSet; + flags |= TProof::kAppend; + if (flags & TProof::kNoOverwriteDataSet) + flags &= ~TProof::kNoOverwriteDataSet; } Int_t ret = 0; @@ -1182,7 +1182,7 @@ void TUploadDataSetDlg::UploadDataSet() if (strlen(destination) < 2) destination = 0; ret = fViewer->GetActDesc()->fProof->UploadDataSet(dsetName, datasetFiles, destination, flags, skippedFiles); - if (ret == TVirtualProof::kDataSetExists) { + if (ret == TProof::kDataSetExists) { // ask user what to do : // cancel/overwrite and change option new TGMsgBox(fClient->GetRoot(), this, "Upload DataSet", @@ -1192,19 +1192,19 @@ void TUploadDataSetDlg::UploadDataSet() if (retval == kMBYes) { ret = fViewer->GetActDesc()->fProof->UploadDataSet(dsetName, datasetFiles, destination, - TVirtualProof::kOverwriteDataSet | - TVirtualProof::kOverwriteNoFiles, + TProof::kOverwriteDataSet | + TProof::kOverwriteNoFiles, skippedFiles); } if (retval == kMBAppend) { ret = fViewer->GetActDesc()->fProof->UploadDataSet(dsetName, datasetFiles, destination, - TVirtualProof::kAppend | - TVirtualProof::kOverwriteNoFiles, + TProof::kAppend | + TProof::kOverwriteNoFiles, skippedFiles); } } - if (ret == TVirtualProof::kError) { + if (ret == TProof::kError) { // Inform user new TGMsgBox(fClient->GetRoot(), this, "Upload DataSet", "Failed uploading dataset/files to the cluster", @@ -1227,9 +1227,9 @@ void TUploadDataSetDlg::UploadDataSet() if (retval == kMBYesAll) { ret = fViewer->GetActDesc()->fProof->UploadDataSet(dsetName, skippedFiles, destination, - TVirtualProof::kAppend | - TVirtualProof::kOverwriteAllFiles); - if (ret == TVirtualProof::kError) { + TProof::kAppend | + TProof::kOverwriteAllFiles); + if (ret == TProof::kError) { // Inform user new TGMsgBox(fClient->GetRoot(), this, "Upload DataSet", Form("Failed uploading \"%s\" to the cluster", @@ -1253,8 +1253,8 @@ void TUploadDataSetDlg::UploadDataSet() // Append one file to the dataSet ret = fViewer->GetActDesc()->fProof->UploadDataSet(dsetName, obj->GetFirstUrl()->GetUrl(), destination, - TVirtualProof::kAppend | TVirtualProof::kOverwriteAllFiles); - if (ret == TVirtualProof::kError) { + TProof::kAppend | TProof::kOverwriteAllFiles); + if (ret == TProof::kError) { // Inform user new TGMsgBox(fClient->GetRoot(), this, "Upload DataSet", Form("Failed uploading \"%s\" to the cluster", diff --git a/proof/src/TSessionLogView.cxx b/proof/src/TSessionLogView.cxx index 9f97754c382..84f79acdfc5 100644 --- a/proof/src/TSessionLogView.cxx +++ b/proof/src/TSessionLogView.cxx @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TSessionLogView.cxx,v 1.4 2006/01/30 17:42:06 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TSessionLogView.cxx,v 1.1 2006/11/17 15:50:17 rdm Exp $ // Author: Bertrand Bellenot, Gerri Ganis 15/09/2005 /************************************************************************* @@ -11,7 +11,7 @@ #include "TSessionLogView.h" #include "TSessionViewer.h" -#include "TVirtualProof.h" +#include "TProof.h" #include "KeySymbols.h" //____________________________________________________________________________ diff --git a/proof/src/TSessionViewer.cxx b/proof/src/TSessionViewer.cxx index e0fcf9c760e..6ab7f3b5702 100644 --- a/proof/src/TSessionViewer.cxx +++ b/proof/src/TSessionViewer.cxx @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TSessionViewer.cxx,v 1.1 2006/11/17 15:50:17 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TSessionViewer.cxx,v 1.2 2006/11/27 14:14:24 rdm Exp $ // Author: Marek Biskup, Jakub Madejczyk, Bertrand Bellenot 10/08/2005 /************************************************************************* @@ -42,7 +42,7 @@ #include "TChain.h" #include "TDSet.h" #include "TFileInfo.h" -#include "TVirtualProof.h" +#include "TProof.h" #include "TRandom.h" #include "TSessionViewer.h" #include "TSessionLogView.h" @@ -462,8 +462,8 @@ void TSessionServerFrame::OnBtnConnectClicked() url += fNumPort->GetIntNumber(); } - TVirtualProofDesc *desc; - fViewer->GetActDesc()->fProofMgr = TVirtualProofMgr::Create(url); + TProofDesc *desc; + fViewer->GetActDesc()->fProofMgr = TProofMgr::Create(url); if (!fViewer->GetActDesc()->fProofMgr->IsValid()) { // hide connection progress bar from status bar fViewer->GetStatusBar()->GetBarPart(0)->HideFrame(fViewer->GetConnectProg()); @@ -484,7 +484,7 @@ void TSessionServerFrame::OnBtnConnectClicked() if (sessions) { TIter nextp(sessions); // loop over existing Proof sessions - while ((desc = (TVirtualProofDesc *)nextp())) { + while ((desc = (TProofDesc *)nextp())) { if ((desc->GetName() == fViewer->GetActDesc()->fTag) || (desc->GetTitle() == fViewer->GetActDesc()->fName)) { fViewer->GetActDesc()->fProof = @@ -524,7 +524,7 @@ void TSessionServerFrame::OnBtnConnectClicked() fViewer->GetActDesc()->fProof = fViewer->GetActDesc()->fProofMgr->CreateSession( fViewer->GetActDesc()->fConfigFile); sessions = fViewer->GetActDesc()->fProofMgr->QuerySessions(""); - desc = (TVirtualProofDesc *)sessions->Last(); + desc = (TProofDesc *)sessions->Last(); if (desc) { fViewer->GetActDesc()->fProof->SetAlias(fViewer->GetActDesc()->fName); fViewer->GetActDesc()->fTag = desc->GetName(); @@ -542,7 +542,7 @@ void TSessionServerFrame::OnBtnConnectClicked() fViewer->GetActDesc()->fLogLevel = 0; fViewer->GetActDesc()->fAddress = fViewer->GetActDesc()->fProof->GetMaster(); fViewer->GetActDesc()->fConnected = kTRUE; - fViewer->GetActDesc()->fProof->SetBit(TVirtualProof::kUsingSessionGui); + fViewer->GetActDesc()->fProof->SetBit(TProof::kUsingSessionGui); } fViewer->UpdateListOfSessions(); @@ -553,7 +553,7 @@ void TSessionServerFrame::OnBtnConnectClicked() fViewer->GetActDesc()->fProof->SetLogLevel(fViewer->GetActDesc()->fLogLevel); // set query type (synch / asynch) fViewer->GetActDesc()->fProof->SetQueryType(fViewer->GetActDesc()->fSync ? - TVirtualProof::kSync : TVirtualProof::kAsync); + TProof::kSync : TProof::kAsync); // set connected flag fViewer->GetActDesc()->fConnected = kTRUE; // change list tree item picture to connected pixmap @@ -2429,7 +2429,7 @@ void TSessionQueryFrame::Feedback(TList *objs) (fViewer->GetActDesc()->fActQuery->fStatus != TQueryDescription::kSessionQueryRunning) ) return; - TVirtualProof *sender = dynamic_cast<TVirtualProof*>((TQObject*)gTQSender); + TProof *sender = dynamic_cast<TProof*>((TQObject*)gTQSender); // if Proof sender match actual session one, update feedback histos if (sender && (sender == fViewer->GetActDesc()->fProof)) UpdateHistos(objs); @@ -2486,7 +2486,7 @@ void TSessionQueryFrame::Progress(Long64_t total, Long64_t processed) if (!fViewer->GetActDesc()->fProof) return; // if Proof sender does't match actual session one, return - TVirtualProof *sender = dynamic_cast<TVirtualProof*>((TQObject*)gTQSender); + TProof *sender = dynamic_cast<TProof*>((TQObject*)gTQSender); if (!sender || (sender != fViewer->GetActDesc()->fProof)) return; @@ -2917,7 +2917,7 @@ void TSessionQueryFrame::OnBtnSubmit() // check for proof validity if (fViewer->GetActDesc()->fProof && fViewer->GetActDesc()->fProof->IsValid()) { - fViewer->GetActDesc()->fProof->SetBit(TVirtualProof::kUsingSessionGui); + fViewer->GetActDesc()->fProof->SetBit(TProof::kUsingSessionGui); // set query description status to submitted newquery->fStatus = TQueryDescription::kSessionQuerySubmitted; // if feedback option selected @@ -3678,13 +3678,13 @@ void TSessionViewer::UpdateListOfProofs() TSessionDescription *newdesc; if (proofs) { TObject *o = proofs->First(); - if (o && dynamic_cast<TVirtualProofMgr *>(o)) { - TVirtualProofMgr *mgr = dynamic_cast<TVirtualProofMgr *>(o); + if (o && dynamic_cast<TProofMgr *>(o)) { + TProofMgr *mgr = dynamic_cast<TProofMgr *>(o); if (mgr->QuerySessions("L")) { TIter nxd(mgr->QuerySessions("L")); - TVirtualProofDesc *d = 0; - TVirtualProof *p = 0; - while ((d = (TVirtualProofDesc *)nxd())) { + TProofDesc *d = 0; + TProof *p = 0; + while ((d = (TProofDesc *)nxd())) { TIter nextfs(fSessions); // check if session exists in the list while ((desc = (TSessionDescription *)nextfs())) { @@ -3833,9 +3833,9 @@ void TSessionViewer::UpdateListOfProofs() return; } TIter nextp(proofs); - TVirtualProof *proof; + TProof *proof; // loop over existing Proof sessions - while ((proof = (TVirtualProof *)nextp())) { + while ((proof = (TProof *)nextp())) { TIter nexts(fSessions); found = kFALSE; // check if session is already in the list @@ -3890,11 +3890,11 @@ void TSessionViewer::UpdateListOfSessions() TList *sessions = fActDesc->fProofMgr->QuerySessions(""); if (sessions) { TIter nextp(sessions); - TVirtualProofDesc *pdesc; - TVirtualProof *proof; + TProofDesc *pdesc; + TProof *proof; TSessionDescription *newdesc; // loop over existing Proof sessions - while ((pdesc = (TVirtualProofDesc *)nextp())) { + while ((pdesc = (TProofDesc *)nextp())) { TIter nexts(fSessions); TSessionDescription *desc = 0; Bool_t found = kFALSE; @@ -4905,7 +4905,7 @@ void TSessionViewer::ResetSession() kMBYes | kMBNo | kMBCancel, &result); if (result == kMBYes) { // reset the session - TVirtualProof::Reset(fActDesc->fAddress.Data(), + TProof::Reset(fActDesc->fAddress.Data(), fActDesc->fUserName.Data()); // reset connected flag fActDesc->fAttached = kFALSE; diff --git a/proof/src/TSlave.cxx b/proof/src/TSlave.cxx index 3d4445b9db0..d5eecf3b69a 100644 --- a/proof/src/TSlave.cxx +++ b/proof/src/TSlave.cxx @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TSlave.cxx,v 1.54 2006/11/16 17:17:38 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TSlave.cxx,v 1.55 2006/11/20 15:56:35 rdm Exp $ // Author: Fons Rademakers 14/02/97 /************************************************************************* @@ -146,7 +146,7 @@ void TSlave::Init(const char *host, Int_t port, Int_t stype) if (fSocket->GetRemoteProtocol() >= 14 ) { TMessage m(kPROOF_SETENV); - const TList *envs = TVirtualProof::GetEnvVars(); + const TList *envs = TProof::GetEnvVars(); if (envs != 0 ) { TIter next(envs); for (TObject *o = next(); o != 0; o = next()) { diff --git a/proofplayer/inc/TDrawFeedback.h b/proofplayer/inc/TDrawFeedback.h index cd1eb7542c0..9d4096f84b1 100644 --- a/proofplayer/inc/TDrawFeedback.h +++ b/proofplayer/inc/TDrawFeedback.h @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TDrawFeedback.h,v 1.5 2005/09/16 08:48:38 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TDrawFeedback.h,v 1.6 2006/03/20 21:43:43 pcanal Exp $ // Author: Maarten Ballintijn 28/10/2003 /************************************************************************* @@ -28,7 +28,7 @@ #include "TObject.h" #endif -class TVirtualProof; +class TProof; class TProof; class THashList; class TSeqCollection; @@ -43,7 +43,7 @@ protected: TProof *fProof; //handle to PROOF session public: - TDrawFeedback(TVirtualProof *proof = 0, TSeqCollection *names = 0); + TDrawFeedback(TProof *proof = 0, TSeqCollection *names = 0); ~TDrawFeedback(); void Feedback(TList *objs); diff --git a/proofplayer/src/TDrawFeedback.cxx b/proofplayer/src/TDrawFeedback.cxx index f3c32ad1c61..73c82d8ec6a 100644 --- a/proofplayer/src/TDrawFeedback.cxx +++ b/proofplayer/src/TDrawFeedback.cxx @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TDrawFeedback.cxx,v 1.9 2005/06/07 20:28:32 brun Exp $ +// @(#)root/proof:$Name: $:$Id: TDrawFeedback.cxx,v 1.10 2006/05/15 09:45:03 brun Exp $ // Author: Maarten Ballintijn 28/10/2003 /************************************************************************* @@ -34,7 +34,7 @@ ClassImp(TDrawFeedback) //______________________________________________________________________________ -TDrawFeedback::TDrawFeedback(TVirtualProof *proof, TSeqCollection *names) +TDrawFeedback::TDrawFeedback(TProof *proof, TSeqCollection *names) : fAll(kFALSE) { // Constructor diff --git a/proofplayer/src/TPerfStats.cxx b/proofplayer/src/TPerfStats.cxx index 807e4ae1495..25c17da49a4 100644 --- a/proofplayer/src/TPerfStats.cxx +++ b/proofplayer/src/TPerfStats.cxx @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TPerfStats.cxx,v 1.8 2006/06/01 16:26:57 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TPerfStats.cxx,v 1.9 2006/11/15 17:45:55 rdm Exp $ // Author: Kristjan Gulbrandsen 11/05/04 /************************************************************************* @@ -113,7 +113,7 @@ TPerfStats::TPerfStats(TList *input, TList *output) // Normal Constructor. Int_t nslaves = 0; - TVirtualProof *proof = gProofServ->GetProof(); + TProof *proof = gProofServ->GetProof(); TList *l = proof ? proof->GetSlaveInfo() : 0 ; TIter nextslaveinfo(l); while (TSlaveInfo *si = dynamic_cast<TSlaveInfo*>(nextslaveinfo())) diff --git a/proofx/inc/TXProofMgr.h b/proofx/inc/TXProofMgr.h index 81aa234459f..df0aecce518 100644 --- a/proofx/inc/TXProofMgr.h +++ b/proofx/inc/TXProofMgr.h @@ -1,4 +1,4 @@ -// @(#)root/proofx:$Name: $:$Id: TXProofMgr.h,v 1.5 2006/06/05 22:51:14 rdm Exp $ +// @(#)root/proofx:$Name: $:$Id: TXProofMgr.h,v 1.6 2006/06/21 16:18:26 rdm Exp $ // Author: G. Ganis, Nov 2005 /************************************************************************* @@ -24,8 +24,8 @@ // // ////////////////////////////////////////////////////////////////////////// -#ifndef ROOT_TVirtualProofMgr -#include "TVirtualProofMgr.h" +#ifndef ROOT_TProofMgr +#include "TProofMgr.h" #endif #ifndef ROOT_TUrl #include "TUrl.h" @@ -42,7 +42,7 @@ const Int_t kXPROOF_Protocol = 1; class TXSocket; -class TXProofMgr : public TVirtualProofMgr, public TXHandler { +class TXProofMgr : public TProofMgr, public TXHandler { private: @@ -58,7 +58,7 @@ public: Bool_t IsValid() const { return fSocket; } - TVirtualProof *AttachSession(Int_t id, Bool_t gui = kFALSE); + TProof *AttachSession(Int_t id, Bool_t gui = kFALSE); void DetachSession(Int_t, Option_t * = ""); Bool_t MatchUrl(const char *url); TList *QuerySessions(Option_t *opt = "S"); diff --git a/proofx/src/TXProofMgr.cxx b/proofx/src/TXProofMgr.cxx index a524510735d..736423ab435 100644 --- a/proofx/src/TXProofMgr.cxx +++ b/proofx/src/TXProofMgr.cxx @@ -1,4 +1,4 @@ -// @(#)root/proofx:$Name: $:$Id: TXProofMgr.cxx,v 1.13 2006/10/19 12:38:07 rdm Exp $ +// @(#)root/proofx:$Name: $:$Id: TXProofMgr.cxx,v 1.14 2006/11/15 17:45:55 rdm Exp $ // Author: Gerardo Ganis 12/12/2005 /************************************************************************* @@ -34,27 +34,30 @@ ClassImp(TXProofMgr) // These are needed to avoid using the plugin manager which may create // problems in multi-threaded environments. extern "C" { - TVirtualProofMgr *GetTXProofMgr(const char *url, Int_t l, const char *al) - { return ((TVirtualProofMgr *) new TXProofMgr(url, l, al)); } + TProofMgr *GetTXProofMgr(const char *url, Int_t l, const char *al) + { return ((TProofMgr *) new TXProofMgr(url, l, al)); } } class TXProofMgrInit { public: TXProofMgrInit() { - TVirtualProofMgr::SetTProofMgrHook(&GetTXProofMgr, "xpd"); + TProofMgr::SetTXProofMgrHook(&GetTXProofMgr); }}; static TXProofMgrInit gxproofmgr_init; //______________________________________________________________________________ TXProofMgr::TXProofMgr(const char *url, Int_t dbg, const char *alias) - : TVirtualProofMgr(url) + : TProofMgr(url) { // Create a PROOF manager for the standard (old) environment. + // Set the correct servert type + fServType = kXProofd; + // Correct URL protocol if (!strcmp(fUrl.GetProtocol(), TUrl("a").GetProtocol())) fUrl.SetProtocol("proof"); // Check port - if (fUrl.GetPort() == TUrl("a").GetPort()) { + if (fUrl.GetPort() == TUrl("a").GetPort()) { // For the time being we use 'rootd' service as default. // This will be changed to 'proofd' as soon as XRD will be able to // accept on multiple ports @@ -108,7 +111,7 @@ Int_t TXProofMgr::Init(Int_t) if (!fSocket || !(fSocket->IsServProofd())) Error("Init", "while opening the connection to %s - exit", u.Data()); if (fSocket && fSocket->IsServProofd()) - fServType = TVirtualProofMgr::kProofd; + fServType = TProofMgr::kProofd; return -1; } @@ -135,13 +138,13 @@ TXProofMgr::~TXProofMgr() } //______________________________________________________________________________ -TVirtualProof *TXProofMgr::AttachSession(Int_t id, Bool_t gui) +TProof *TXProofMgr::AttachSession(Int_t id, Bool_t gui) { // Dummy version provided for completeness. Just returns a pointer to // existing session 'id' (as shown by TProof::QuerySessions) or 0 if 'id' is // not valid. The boolena 'gui' should be kTRUE when invoked from the GUI. - TVirtualProofDesc *d = GetProofDesc(id); + TProofDesc *d = GetProofDesc(id); if (d) { if (d->GetProof()) // Nothing to do if already in contact with proofserv @@ -156,15 +159,15 @@ TVirtualProof *TXProofMgr::AttachSession(Int_t id, Bool_t gui) u += "GUI"; // Attach - TVirtualProof *p = new TProof(u); + TProof *p = new TProof(u); if (p && p->IsValid()) { // Set reference manager p->SetManager(this); // Save record about this session - Int_t st = (p->IsIdle()) ? TVirtualProofDesc::kIdle - : TVirtualProofDesc::kRunning; + Int_t st = (p->IsIdle()) ? TProofDesc::kIdle + : TProofDesc::kRunning; d->SetStatus(st); d->SetProof(p); @@ -190,11 +193,11 @@ void TXProofMgr::DetachSession(Int_t id, Option_t *opt) if (id > 0) { // Single session request - TVirtualProofDesc *d = GetProofDesc(id); + TProofDesc *d = GetProofDesc(id); if (d) { if (fSocket) fSocket->DisconnectSession(d->GetRemoteId(), opt); - TVirtualProof *p = d->GetProof(); + TProof *p = d->GetProof(); SafeDelete(p); fSessions->Remove(d); delete d; @@ -209,9 +212,9 @@ void TXProofMgr::DetachSession(Int_t id, Option_t *opt) if (fSessions) { // Delete PROOF sessions TIter nxd(fSessions); - TVirtualProofDesc *d = 0; - while ((d = (TVirtualProofDesc *)nxd())) { - TVirtualProof *p = d->GetProof(); + TProofDesc *d = 0; + while ((d = (TProofDesc *)nxd())) { + TProof *p = d->GetProof(); SafeDelete(p); } fSessions->Delete(); @@ -225,7 +228,7 @@ void TXProofMgr::DetachSession(Int_t id, Option_t *opt) Bool_t TXProofMgr::MatchUrl(const char *url) { // Checks if 'url' refers to the same 'user@host:port' entity as the URL - // in memory. TVirtualProofMgr::MatchUrl cannot be used here because of the + // in memory. TProofMgr::MatchUrl cannot be used here because of the // 'double' default port, implying an additional check on the port effectively // open. @@ -301,7 +304,7 @@ TList *TXProofMgr::QuerySessions(Option_t *opt) if (os) { TObjArray *oa = TString(os->GetName()).Tokenize(TString("|")); if (oa) { - TVirtualProofDesc *d = 0; + TProofDesc *d = 0; TIter nxos(oa); TObjString *to = (TObjString *) nxos(); while ((to = (TObjString *) nxos())) { @@ -311,9 +314,9 @@ TList *TXProofMgr::QuerySessions(Option_t *opt) Int_t id = -1, st = -1, nc = 0; sscanf(to->GetName(),"%d %s %s %d %d", &id, tg, al, &st, &nc); // Add to the list, if not already there - if (!(d = (TVirtualProofDesc *) fSessions->FindObject(tg))) { + if (!(d = (TProofDesc *) fSessions->FindObject(tg))) { Int_t locid = fSessions->GetSize() + 1; - d = new TVirtualProofDesc(tg, al, GetUrl(), locid, id, st, 0); + d = new TProofDesc(tg, al, GetUrl(), locid, id, st, 0); fSessions->Add(d); } else { // Set missing / update info @@ -332,8 +335,8 @@ TList *TXProofMgr::QuerySessions(Option_t *opt) // Printout and Garbage collection if (fSessions->GetSize() > 0) { TIter nxd(fSessions); - TVirtualProofDesc *d = 0; - while ((d = (TVirtualProofDesc *)nxd())) { + TProofDesc *d = 0; + while ((d = (TProofDesc *)nxd())) { if (ocl->FindObject(d->GetName())) { if (opt && !strncasecmp(opt,"S",1)) d->Print(""); @@ -358,8 +361,8 @@ Bool_t TXProofMgr::HandleError(const void *) // Interrupt any PROOF session in Collect if (fSessions && fSessions->GetSize() > 0) { TIter nxd(fSessions); - TVirtualProofDesc *d = 0; - while ((d = (TVirtualProofDesc *)nxd())) { + TProofDesc *d = 0; + while ((d = (TProofDesc *)nxd())) { TProof *p = (TProof *) d->GetProof(); if (p) p->InterruptCurrentMonitor(); diff --git a/proofx/src/TXProofServ.cxx b/proofx/src/TXProofServ.cxx index d20b801d7c2..a131d6e98d7 100644 --- a/proofx/src/TXProofServ.cxx +++ b/proofx/src/TXProofServ.cxx @@ -1,4 +1,4 @@ -// @(#)root/proofx:$Name: $:$Id: TXProofServ.cxx,v 1.20 2006/11/20 10:31:48 rdm Exp $ +// @(#)root/proofx:$Name: $:$Id: TXProofServ.cxx,v 1.21 2006/11/20 15:56:36 rdm Exp $ // Author: Gerardo Ganis 12/12/2005 /************************************************************************* @@ -376,7 +376,7 @@ Int_t TXProofServ::CreateServer() // (it is broken for xpd because of the locks on gCINTMutex) gEnv->SetValue("Proof.ParallelStartup", 0); - // Get plugin manager to load appropriate TVirtualProof from + // Get plugin manager to load appropriate TProof from TPluginManager *pm = gROOT->GetPluginManager(); if (!pm) { Error("CreateServer", "no plugin manager found"); @@ -386,9 +386,9 @@ Int_t TXProofServ::CreateServer() } // Find the appropriate handler - TPluginHandler *h = pm->FindHandler("TVirtualProof", fConfFile); + TPluginHandler *h = pm->FindHandler("TProof", fConfFile); if (!h) { - Error("CreateServer", "no plugin found for TVirtualProof with a" + Error("CreateServer", "no plugin found for TProof with a" " config file of '%s'", fConfFile.Data()); SendLogFile(-99); Terminate(0); @@ -397,7 +397,7 @@ Int_t TXProofServ::CreateServer() // load the plugin if (h->LoadPlugin() == -1) { - Error("CreateServer", "plugin for TVirtualProof could not be loaded"); + Error("CreateServer", "plugin for TProof could not be loaded"); SendLogFile(-99); Terminate(0); return -1; @@ -410,7 +410,7 @@ Int_t TXProofServ::CreateServer() fLogLevel, fSessionTag.Data())); if (!fProof || !fProof->IsValid()) { - Error("CreateServer", "plugin for TVirtualProof could not be executed"); + Error("CreateServer", "plugin for TProof could not be executed"); delete fProof; fProof = 0; SendLogFile(-99); @@ -790,7 +790,7 @@ Int_t TXProofServ::Setup() while (all_vars.Tokenize(name, from, ",")) { if (!name.IsNull()) { TString value = gSystem->Getenv(name); - TVirtualProof::AddEnvVar(name, value); + TProof::AddEnvVar(name, value); } } diff --git a/proofx/src/TXSlave.cxx b/proofx/src/TXSlave.cxx index 0f9ed8ce62e..01c3a74a444 100644 --- a/proofx/src/TXSlave.cxx +++ b/proofx/src/TXSlave.cxx @@ -1,4 +1,4 @@ -// @(#)root/proofx:$Name: $:$Id: TXSlave.cxx,v 1.13 2006/11/20 15:56:36 rdm Exp $ +// @(#)root/proofx:$Name: $:$Id: TXSlave.cxx,v 1.14 2006/11/22 00:25:32 rdm Exp $ // Author: Gerardo Ganis 12/12/2005 /************************************************************************* @@ -196,7 +196,7 @@ void TXSlave::Init(const char *host, Int_t stype) TString envlist; if (!fProof->GetManager() || fProof->GetManager()->GetRemoteProtocol() > 1001) { - const TList *envs = TVirtualProof::GetEnvVars(); + const TList *envs = TProof::GetEnvVars(); if (envs != 0 ) { TIter next(envs); for (TObject *o = next(); o != 0; o = next()) { @@ -209,7 +209,7 @@ void TXSlave::Init(const char *host, Int_t stype) } } } else { - if (fProof->GetManager() && TVirtualProof::GetEnvVars()) + if (fProof->GetManager() && TProof::GetEnvVars()) Info("Init", "** NOT ** sending user envs - RemoteProtocol : %d", fProof->GetManager()->GetRemoteProtocol()); } @@ -248,7 +248,7 @@ void TXSlave::Init(const char *host, Int_t stype) fProtocol = fSocket->GetRemoteProtocol(); // Set server type - fProof->fServType = TVirtualProofMgr::kXProofd; + fProof->fServType = TProofMgr::kXProofd; // Set remote session ID fProof->fSessionID = ((TXSocket *)fSocket)->GetSessionID(); @@ -513,7 +513,7 @@ Bool_t TXSlave::HandleError(const void *) // On clients the proof session should be removed from the lists // and deleted, since it is not valid anymore fProof->GetListOfSlaves()->Remove(this); - TVirtualProofMgr *mgr= fProof->GetManager(); + TProofMgr *mgr= fProof->GetManager(); if (mgr) mgr->ShutdownSession(fProof); } diff --git a/sessionviewer/inc/TProofProgressDialog.h b/sessionviewer/inc/TProofProgressDialog.h index 460cea349a4..a499d8eb39b 100644 --- a/sessionviewer/inc/TProofProgressDialog.h +++ b/sessionviewer/inc/TProofProgressDialog.h @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TProofProgressDialog.h,v 1.10 2006/06/02 15:14:35 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TProofProgressDialog.h,v 1.11 2006/11/15 17:45:54 rdm Exp $ // Author: Fons Rademakers 21/03/03 /************************************************************************* @@ -35,7 +35,7 @@ class TGCheckButton; class TGLabel; class TGTextBuffer; class TGTextEntry; -class TVirtualProof; +class TProof; class TProofProgressLog; class TNtuple; class TGraph; @@ -67,7 +67,7 @@ private: TGLabel *fInit; TGLabel *fSelector; TProofProgressLog *fLogWindow; // transient frame for logs - TVirtualProof *fProof; + TProof *fProof; TTime fStartTime; TTime fEndTime; Long64_t fPrevProcessed; @@ -88,7 +88,7 @@ private: static TString fgTextQueryDefault; public: - TProofProgressDialog(TVirtualProof *proof, const char *selector, + TProofProgressDialog(TProof *proof, const char *selector, Int_t files, Long64_t first, Long64_t entries); virtual ~TProofProgressDialog(); diff --git a/sessionviewer/inc/TSessionViewer.h b/sessionviewer/inc/TSessionViewer.h index 7670e4e3ce4..de625c8ad85 100644 --- a/sessionviewer/inc/TSessionViewer.h +++ b/sessionviewer/inc/TSessionViewer.h @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TSessionViewer.h,v 1.1 2006/11/17 15:50:17 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TSessionViewer.h,v 1.2 2006/11/22 14:16:54 rdm Exp $ // Author: Marek Biskup, Jakub Madejczyk, Bertrand Bellenot 10/08/2005 /************************************************************************* @@ -84,8 +84,8 @@ class TCanvas; class TEnv; struct UserGroup_t; -class TVirtualProofMgr; -class TVirtualProof; +class TProofMgr; +class TProof; class TSessionViewer; class TSessionLogView; class TQueryResult; @@ -164,8 +164,8 @@ public: TList *fQueries; // list of queries in this session TList *fPackages; // list of packages TQueryDescription *fActQuery; // current (actual) query - TVirtualProof *fProof; // pointer on TVirtualProof used by this session - TVirtualProofMgr *fProofMgr; // Proof sessions manager + TProof *fProof; // pointer on TProof used by this session + TProofMgr *fProofMgr; // Proof sessions manager Int_t fNbHistos; // number of feedback histos const char *GetName() const { return fName; } diff --git a/sessionviewer/src/TProofProgressDialog.cxx b/sessionviewer/src/TProofProgressDialog.cxx index 34f88a14c66..c3665841677 100644 --- a/sessionviewer/src/TProofProgressDialog.cxx +++ b/sessionviewer/src/TProofProgressDialog.cxx @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TProofProgressDialog.cxx,v 1.26 2006/11/21 11:41:46 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TProofProgressDialog.cxx,v 1.27 2006/11/22 16:52:54 rdm Exp $ // Author: Fons Rademakers 21/03/03 /************************************************************************* @@ -49,7 +49,7 @@ TString TProofProgressDialog::fgTextQueryDefault = "last"; ClassImp(TProofProgressDialog) //______________________________________________________________________________ -TProofProgressDialog::TProofProgressDialog(TVirtualProof *proof, +TProofProgressDialog::TProofProgressDialog(TProof *proof, const char *selector, Int_t files, Long64_t first, diff --git a/sessionviewer/src/TSessionDialogs.cxx b/sessionviewer/src/TSessionDialogs.cxx index e0f2f9bbbef..8e89ace60f7 100644 --- a/sessionviewer/src/TSessionDialogs.cxx +++ b/sessionviewer/src/TSessionDialogs.cxx @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TSessionDialogs.cxx,v 1.32 2006/11/17 15:42:13 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TSessionDialogs.cxx,v 1.1 2006/11/17 15:50:17 rdm Exp $ // Author: Marek Biskup, Jakub Madejczyk, Bertrand Bellenot 10/08/2005 /************************************************************************* @@ -39,7 +39,7 @@ #include "TKey.h" #include "TGTableLayout.h" #include "TGFileDialog.h" -#include "TVirtualProof.h" +#include "TProof.h" #include "TFileInfo.h" #include "TGMsgBox.h" #include "TRegexp.h" @@ -1152,17 +1152,17 @@ void TUploadDataSetDlg::UploadDataSet() } // Format upload flags with user selection if (fOverwriteDSet->IsOn()) - flags |= TVirtualProof::kOverwriteDataSet; + flags |= TProof::kOverwriteDataSet; else - flags |= TVirtualProof::kNoOverwriteDataSet; + flags |= TProof::kNoOverwriteDataSet; if (fOverwriteFiles->IsOn()) - flags |= TVirtualProof::kOverwriteAllFiles; + flags |= TProof::kOverwriteAllFiles; else - flags |= TVirtualProof::kOverwriteNoFiles; + flags |= TProof::kOverwriteNoFiles; if (fAppendFiles->IsOn()) { - flags |= TVirtualProof::kAppend; - if (flags & TVirtualProof::kNoOverwriteDataSet) - flags &= ~TVirtualProof::kNoOverwriteDataSet; + flags |= TProof::kAppend; + if (flags & TProof::kNoOverwriteDataSet) + flags &= ~TProof::kNoOverwriteDataSet; } Int_t ret = 0; @@ -1182,7 +1182,7 @@ void TUploadDataSetDlg::UploadDataSet() if (strlen(destination) < 2) destination = 0; ret = fViewer->GetActDesc()->fProof->UploadDataSet(dsetName, datasetFiles, destination, flags, skippedFiles); - if (ret == TVirtualProof::kDataSetExists) { + if (ret == TProof::kDataSetExists) { // ask user what to do : // cancel/overwrite and change option new TGMsgBox(fClient->GetRoot(), this, "Upload DataSet", @@ -1192,19 +1192,19 @@ void TUploadDataSetDlg::UploadDataSet() if (retval == kMBYes) { ret = fViewer->GetActDesc()->fProof->UploadDataSet(dsetName, datasetFiles, destination, - TVirtualProof::kOverwriteDataSet | - TVirtualProof::kOverwriteNoFiles, + TProof::kOverwriteDataSet | + TProof::kOverwriteNoFiles, skippedFiles); } if (retval == kMBAppend) { ret = fViewer->GetActDesc()->fProof->UploadDataSet(dsetName, datasetFiles, destination, - TVirtualProof::kAppend | - TVirtualProof::kOverwriteNoFiles, + TProof::kAppend | + TProof::kOverwriteNoFiles, skippedFiles); } } - if (ret == TVirtualProof::kError) { + if (ret == TProof::kError) { // Inform user new TGMsgBox(fClient->GetRoot(), this, "Upload DataSet", "Failed uploading dataset/files to the cluster", @@ -1227,9 +1227,9 @@ void TUploadDataSetDlg::UploadDataSet() if (retval == kMBYesAll) { ret = fViewer->GetActDesc()->fProof->UploadDataSet(dsetName, skippedFiles, destination, - TVirtualProof::kAppend | - TVirtualProof::kOverwriteAllFiles); - if (ret == TVirtualProof::kError) { + TProof::kAppend | + TProof::kOverwriteAllFiles); + if (ret == TProof::kError) { // Inform user new TGMsgBox(fClient->GetRoot(), this, "Upload DataSet", Form("Failed uploading \"%s\" to the cluster", @@ -1253,8 +1253,8 @@ void TUploadDataSetDlg::UploadDataSet() // Append one file to the dataSet ret = fViewer->GetActDesc()->fProof->UploadDataSet(dsetName, obj->GetFirstUrl()->GetUrl(), destination, - TVirtualProof::kAppend | TVirtualProof::kOverwriteAllFiles); - if (ret == TVirtualProof::kError) { + TProof::kAppend | TProof::kOverwriteAllFiles); + if (ret == TProof::kError) { // Inform user new TGMsgBox(fClient->GetRoot(), this, "Upload DataSet", Form("Failed uploading \"%s\" to the cluster", diff --git a/sessionviewer/src/TSessionLogView.cxx b/sessionviewer/src/TSessionLogView.cxx index 9f97754c382..84f79acdfc5 100644 --- a/sessionviewer/src/TSessionLogView.cxx +++ b/sessionviewer/src/TSessionLogView.cxx @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TSessionLogView.cxx,v 1.4 2006/01/30 17:42:06 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TSessionLogView.cxx,v 1.1 2006/11/17 15:50:17 rdm Exp $ // Author: Bertrand Bellenot, Gerri Ganis 15/09/2005 /************************************************************************* @@ -11,7 +11,7 @@ #include "TSessionLogView.h" #include "TSessionViewer.h" -#include "TVirtualProof.h" +#include "TProof.h" #include "KeySymbols.h" //____________________________________________________________________________ diff --git a/sessionviewer/src/TSessionViewer.cxx b/sessionviewer/src/TSessionViewer.cxx index e0fcf9c760e..6ab7f3b5702 100644 --- a/sessionviewer/src/TSessionViewer.cxx +++ b/sessionviewer/src/TSessionViewer.cxx @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TSessionViewer.cxx,v 1.1 2006/11/17 15:50:17 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TSessionViewer.cxx,v 1.2 2006/11/27 14:14:24 rdm Exp $ // Author: Marek Biskup, Jakub Madejczyk, Bertrand Bellenot 10/08/2005 /************************************************************************* @@ -42,7 +42,7 @@ #include "TChain.h" #include "TDSet.h" #include "TFileInfo.h" -#include "TVirtualProof.h" +#include "TProof.h" #include "TRandom.h" #include "TSessionViewer.h" #include "TSessionLogView.h" @@ -462,8 +462,8 @@ void TSessionServerFrame::OnBtnConnectClicked() url += fNumPort->GetIntNumber(); } - TVirtualProofDesc *desc; - fViewer->GetActDesc()->fProofMgr = TVirtualProofMgr::Create(url); + TProofDesc *desc; + fViewer->GetActDesc()->fProofMgr = TProofMgr::Create(url); if (!fViewer->GetActDesc()->fProofMgr->IsValid()) { // hide connection progress bar from status bar fViewer->GetStatusBar()->GetBarPart(0)->HideFrame(fViewer->GetConnectProg()); @@ -484,7 +484,7 @@ void TSessionServerFrame::OnBtnConnectClicked() if (sessions) { TIter nextp(sessions); // loop over existing Proof sessions - while ((desc = (TVirtualProofDesc *)nextp())) { + while ((desc = (TProofDesc *)nextp())) { if ((desc->GetName() == fViewer->GetActDesc()->fTag) || (desc->GetTitle() == fViewer->GetActDesc()->fName)) { fViewer->GetActDesc()->fProof = @@ -524,7 +524,7 @@ void TSessionServerFrame::OnBtnConnectClicked() fViewer->GetActDesc()->fProof = fViewer->GetActDesc()->fProofMgr->CreateSession( fViewer->GetActDesc()->fConfigFile); sessions = fViewer->GetActDesc()->fProofMgr->QuerySessions(""); - desc = (TVirtualProofDesc *)sessions->Last(); + desc = (TProofDesc *)sessions->Last(); if (desc) { fViewer->GetActDesc()->fProof->SetAlias(fViewer->GetActDesc()->fName); fViewer->GetActDesc()->fTag = desc->GetName(); @@ -542,7 +542,7 @@ void TSessionServerFrame::OnBtnConnectClicked() fViewer->GetActDesc()->fLogLevel = 0; fViewer->GetActDesc()->fAddress = fViewer->GetActDesc()->fProof->GetMaster(); fViewer->GetActDesc()->fConnected = kTRUE; - fViewer->GetActDesc()->fProof->SetBit(TVirtualProof::kUsingSessionGui); + fViewer->GetActDesc()->fProof->SetBit(TProof::kUsingSessionGui); } fViewer->UpdateListOfSessions(); @@ -553,7 +553,7 @@ void TSessionServerFrame::OnBtnConnectClicked() fViewer->GetActDesc()->fProof->SetLogLevel(fViewer->GetActDesc()->fLogLevel); // set query type (synch / asynch) fViewer->GetActDesc()->fProof->SetQueryType(fViewer->GetActDesc()->fSync ? - TVirtualProof::kSync : TVirtualProof::kAsync); + TProof::kSync : TProof::kAsync); // set connected flag fViewer->GetActDesc()->fConnected = kTRUE; // change list tree item picture to connected pixmap @@ -2429,7 +2429,7 @@ void TSessionQueryFrame::Feedback(TList *objs) (fViewer->GetActDesc()->fActQuery->fStatus != TQueryDescription::kSessionQueryRunning) ) return; - TVirtualProof *sender = dynamic_cast<TVirtualProof*>((TQObject*)gTQSender); + TProof *sender = dynamic_cast<TProof*>((TQObject*)gTQSender); // if Proof sender match actual session one, update feedback histos if (sender && (sender == fViewer->GetActDesc()->fProof)) UpdateHistos(objs); @@ -2486,7 +2486,7 @@ void TSessionQueryFrame::Progress(Long64_t total, Long64_t processed) if (!fViewer->GetActDesc()->fProof) return; // if Proof sender does't match actual session one, return - TVirtualProof *sender = dynamic_cast<TVirtualProof*>((TQObject*)gTQSender); + TProof *sender = dynamic_cast<TProof*>((TQObject*)gTQSender); if (!sender || (sender != fViewer->GetActDesc()->fProof)) return; @@ -2917,7 +2917,7 @@ void TSessionQueryFrame::OnBtnSubmit() // check for proof validity if (fViewer->GetActDesc()->fProof && fViewer->GetActDesc()->fProof->IsValid()) { - fViewer->GetActDesc()->fProof->SetBit(TVirtualProof::kUsingSessionGui); + fViewer->GetActDesc()->fProof->SetBit(TProof::kUsingSessionGui); // set query description status to submitted newquery->fStatus = TQueryDescription::kSessionQuerySubmitted; // if feedback option selected @@ -3678,13 +3678,13 @@ void TSessionViewer::UpdateListOfProofs() TSessionDescription *newdesc; if (proofs) { TObject *o = proofs->First(); - if (o && dynamic_cast<TVirtualProofMgr *>(o)) { - TVirtualProofMgr *mgr = dynamic_cast<TVirtualProofMgr *>(o); + if (o && dynamic_cast<TProofMgr *>(o)) { + TProofMgr *mgr = dynamic_cast<TProofMgr *>(o); if (mgr->QuerySessions("L")) { TIter nxd(mgr->QuerySessions("L")); - TVirtualProofDesc *d = 0; - TVirtualProof *p = 0; - while ((d = (TVirtualProofDesc *)nxd())) { + TProofDesc *d = 0; + TProof *p = 0; + while ((d = (TProofDesc *)nxd())) { TIter nextfs(fSessions); // check if session exists in the list while ((desc = (TSessionDescription *)nextfs())) { @@ -3833,9 +3833,9 @@ void TSessionViewer::UpdateListOfProofs() return; } TIter nextp(proofs); - TVirtualProof *proof; + TProof *proof; // loop over existing Proof sessions - while ((proof = (TVirtualProof *)nextp())) { + while ((proof = (TProof *)nextp())) { TIter nexts(fSessions); found = kFALSE; // check if session is already in the list @@ -3890,11 +3890,11 @@ void TSessionViewer::UpdateListOfSessions() TList *sessions = fActDesc->fProofMgr->QuerySessions(""); if (sessions) { TIter nextp(sessions); - TVirtualProofDesc *pdesc; - TVirtualProof *proof; + TProofDesc *pdesc; + TProof *proof; TSessionDescription *newdesc; // loop over existing Proof sessions - while ((pdesc = (TVirtualProofDesc *)nextp())) { + while ((pdesc = (TProofDesc *)nextp())) { TIter nexts(fSessions); TSessionDescription *desc = 0; Bool_t found = kFALSE; @@ -4905,7 +4905,7 @@ void TSessionViewer::ResetSession() kMBYes | kMBNo | kMBCancel, &result); if (result == kMBYes) { // reset the session - TVirtualProof::Reset(fActDesc->fAddress.Data(), + TProof::Reset(fActDesc->fAddress.Data(), fActDesc->fUserName.Data()); // reset connected flag fActDesc->fAttached = kFALSE; -- GitLab