12 #ifndef ROOT_TProofOutputFile
13 #define ROOT_TProofOutputFile
30 class TFileCollection;
33 class TProofOutputFile :
public TNamed {
36 friend class TProofPlayer;
37 friend class TProofPlayerRemote;
40 enum ERunType { kMerge = 1,
42 enum ETypeOpt { kRemote = 1,
50 TProofOutputFile(
const TProofOutputFile&);
51 TProofOutputFile& operator=(
const TProofOutputFile&);
56 TString fOptionsAnchor;
57 TString fOutputFileName;
58 TString fWorkerOrdinal;
64 Bool_t fMergeHistosOneGo;
66 TFileCollection *fDataSet;
69 void Init(
const char *path,
const char *dsname);
70 void SetFileName(
const char* name) { fFileName = name; }
71 void SetDir(
const char* dir, Bool_t raw = kFALSE) {
if (raw) { fRawDir = dir; }
else { fDir = dir; } }
72 void SetMerged(Bool_t merged = kTRUE) { fMerged = merged; }
73 void SetWorkerOrdinal(
const char* ordinal) { fWorkerOrdinal = ordinal; }
75 void AddFile(TFileMerger *merger,
const char *path);
76 void NotifyError(
const char *errmsg);
77 void Unlink(
const char *path);
83 kOutputFileNameSet = BIT(16),
88 TProofOutputFile() : fDir(), fRawDir(), fFileName(), fOptionsAnchor(), fOutputFileName(),
89 fWorkerOrdinal(), fLocalHost(), fIsLocal(kFALSE), fMerged(kFALSE),
90 fRunType(kMerge), fTypeOpt(kRemote), fMergeHistosOneGo(kFALSE),
91 fDataSet(0), fMerger(0) { }
92 TProofOutputFile(
const char *path,
const char *option =
"M",
const char *dsname = 0);
93 TProofOutputFile(
const char *path, ERunType type, UInt_t opt = kRemote,
const char *dsname = 0);
94 virtual ~TProofOutputFile();
96 const char *GetDir(Bool_t raw = kFALSE)
const {
return (raw) ? fRawDir : fDir; }
97 TFileCollection *GetFileCollection();
98 TFileMerger *GetFileMerger(Bool_t local = kFALSE);
99 const char *GetFileName()
const {
return fFileName; }
100 const char *GetLocalHost()
const {
return fLocalHost; }
101 const char *GetOptionsAnchor()
const {
return fOptionsAnchor; }
102 const char *GetOutputFileName()
const {
return fOutputFileName; }
103 const char *GetWorkerOrdinal()
const {
return fWorkerOrdinal; }
105 ERunType GetRunType()
const {
return fRunType; }
106 UInt_t GetTypeOpt()
const {
return fTypeOpt; }
107 Bool_t IsMerge()
const {
return (fRunType == kMerge) ? kTRUE : kFALSE; }
108 Bool_t IsMerged()
const {
return fMerged; }
109 Bool_t IsRegister()
const {
return ((fTypeOpt & kRegister) || (fTypeOpt & kVerify)) ? kTRUE : kFALSE; }
111 Bool_t IsRetrieve()
const {
return (TestBit(TProofOutputFile::kRetrieve)) ? kTRUE : kFALSE; }
112 void SetRetrieve(Bool_t on = kTRUE) {
if (on) { SetBit(TProofOutputFile::kRetrieve);
113 }
else { ResetBit(TProofOutputFile::kRetrieve); }}
115 Int_t AdoptFile(TFile *f);
116 TFile* OpenFile(
const char *opt);
117 Long64_t Merge(TCollection *list);
118 void Print(Option_t *option =
"")
const;
119 void SetOutputFileName(
const char *name);
120 void ResetFileCollection() { fDataSet = 0; }
122 static Int_t AssertDir(
const char *dirpath);
124 ClassDef(TProofOutputFile,5)