12 #ifndef ROOT_TVirtualProofPlayer
13 #define ROOT_TVirtualProofPlayer
38 class TVirtualPacketizer;
39 class TProofProgressStatus;
40 class TProofProgressInfo;
43 class TVirtualProofPlayer :
public TObject,
public TQObject {
46 enum EStatusBits { kIsSubmerger = BIT(14) };
48 enum EExitStatus { kFinished, kStopped, kAborted };
50 TVirtualProofPlayer() { ResetBit(TVirtualProofPlayer::kIsSubmerger); }
51 virtual ~TVirtualProofPlayer() { }
53 virtual Long64_t Process(TDSet *set,
54 const char *selector, Option_t *option =
"",
55 Long64_t nentries = -1, Long64_t firstentry = 0) = 0;
56 virtual Long64_t Process(TDSet *set,
57 TSelector *selector, Option_t *option =
"",
58 Long64_t nentries = -1, Long64_t firstentry = 0) = 0;
59 virtual Bool_t JoinProcess(TList *workers) = 0;
60 virtual Long64_t Finalize(Bool_t force = kFALSE, Bool_t sync = kFALSE) = 0;
61 virtual Long64_t Finalize(TQueryResult *qr) = 0;
62 virtual Long64_t DrawSelect(TDSet *set,
const char *varexp,
63 const char *selection, Option_t *option =
"",
64 Long64_t nentries = -1, Long64_t firstentry = 0) = 0;
65 virtual Int_t GetDrawArgs(
const char *var,
const char *sel, Option_t *opt,
66 TString &selector, TString &objname) = 0;
67 virtual void HandleGetTreeHeader(TMessage *mess) = 0;
68 virtual void HandleRecvHisto(TMessage *mess) = 0;
70 virtual void StopProcess(Bool_t abort, Int_t timeout = -1) = 0;
71 virtual void AddInput(TObject *inp) = 0;
72 virtual void ClearInput() = 0;
73 virtual TObject *GetOutput(
const char *name)
const = 0;
74 virtual TList *GetOutputList()
const = 0;
75 virtual TList *GetInputList()
const = 0;
76 virtual TList *GetListOfResults()
const = 0;
77 virtual void AddQueryResult(TQueryResult *q) = 0;
78 virtual TQueryResult *GetCurrentQuery()
const = 0;
79 virtual TQueryResult *GetQueryResult(
const char *ref) = 0;
80 virtual void RemoveQueryResult(
const char *ref) = 0;
81 virtual void SetCurrentQuery(TQueryResult *q) = 0;
82 virtual void SetMaxDrawQueries(Int_t max) = 0;
83 virtual void RestorePreviousQuery() =0 ;
84 virtual Int_t AddOutputObject(TObject *obj) = 0;
85 virtual void AddOutput(TList *out) = 0;
86 virtual void StoreOutput(TList *out) = 0;
87 virtual void StoreFeedback(TObject *slave, TList *out) = 0;
88 virtual void Progress(Long64_t total, Long64_t processed) = 0;
89 virtual void Progress(TSlave *, Long64_t total, Long64_t processed) = 0;
90 virtual void Progress(Long64_t total, Long64_t processed, Long64_t bytesread,
91 Float_t initTime, Float_t procTime,
92 Float_t evtrti, Float_t mbrti) = 0;
93 virtual void Progress(TSlave *, Long64_t total, Long64_t processed,
94 Long64_t bytesread, Float_t initTime, Float_t procTime,
95 Float_t evtrti, Float_t mbrti) = 0;
96 virtual void Progress(TProofProgressInfo *) = 0;
97 virtual void Progress(TSlave *, TProofProgressInfo *) = 0;
98 virtual void Feedback(TList *objs) = 0;
100 virtual TDrawFeedback *CreateDrawFeedback(TProof *p) = 0;
101 virtual void SetDrawFeedbackOption(TDrawFeedback *f, Option_t *opt) = 0;
102 virtual void DeleteDrawFeedback(TDrawFeedback *f) = 0;
104 virtual TDSetElement *GetNextPacket(TSlave *slave, TMessage *r) = 0;
106 virtual Int_t ReinitSelector(TQueryResult *qr) = 0;
108 virtual void UpdateAutoBin(
const char *name,
109 Double_t& xmin, Double_t& xmax,
110 Double_t& ymin, Double_t& ymax,
111 Double_t& zmin, Double_t& zmax) = 0;
113 virtual void MergeOutput(Bool_t = kFALSE) = 0;
115 virtual Bool_t IsClient()
const = 0;
117 virtual EExitStatus GetExitStatus()
const = 0;
118 virtual void SetExitStatus(EExitStatus) = 0;
119 virtual Long64_t GetEventsProcessed()
const = 0;
120 virtual void AddEventsProcessed(Long64_t ev) = 0;
121 virtual TProofProgressStatus* GetProgressStatus()
const = 0;
123 virtual void SetDispatchTimer(Bool_t on = kTRUE) = 0;
124 virtual void SetStopTimer(Bool_t on = kTRUE,
125 Bool_t abort = kFALSE, Int_t timeout = 0) = 0;
126 virtual void SetInitTime() = 0;
128 virtual void SetMerging(Bool_t on = kTRUE) = 0;
130 virtual Long64_t GetCacheSize() = 0;
131 virtual Int_t GetLearnEntries() = 0;
133 virtual void UpdateProgressInfo() = 0;
135 virtual TVirtualPacketizer *GetPacketizer()
const {
return 0; }
137 virtual void SetOutputFilePath(
const char *fp) = 0;
138 virtual Int_t SavePartialResults(Bool_t queryend = kFALSE, Bool_t force = kFALSE) = 0;
140 static TVirtualProofPlayer *Create(
const char *player, TProof *p, TSocket *s = 0);
142 ClassDef(TVirtualProofPlayer,0)