#ifndef ROOT_TProofPlayer
#define ROOT_TProofPlayer
#ifndef ROOT_TVirtualProofPlayer
#include "TVirtualProofPlayer.h"
#endif
#ifndef ROOT_TArrayL64
#include "TArrayL64.h"
#endif
#ifndef ROOT_TList
#include "TList.h"
#endif
#ifndef ROOT_TSystem
#include "TSystem.h"
#endif
#ifndef ROOT_TQueryResult
#include "TQueryResult.h"
#endif
class TSelector;
class TProof;
class TSocket;
class TVirtualPacketizer;
class TSlave;
class TEventIter;
class TProofStats;
class TMutex;
class TStatus;
class TTimer;
class TProofPlayer : public TVirtualProofPlayer {
private:
TList *fAutoBins;
protected:
TList *fInput;
TList *fOutput;
TSelector *fSelector;
TClass *fSelectorClass;
TTimer *fFeedbackTimer;
Long_t fFeedbackPeriod;
TEventIter *fEvIter;
TStatus *fSelStatus;
EExitStatus fExitStatus;
Long64_t fEventsProcessed;
Long64_t fTotalEvents;
TList *fQueryResults;
TQueryResult *fQuery;
TQueryResult *fPreviousQuery;
Int_t fDrawQueries;
Int_t fMaxDrawQueries;
TTimer *fStopTimer;
TMutex *fStopTimerMtx;
TTimer *fDispatchTimer;
void *GetSender() { return this; }
virtual void SetupFeedback();
public:
virtual void StopFeedback();
protected:
class TCleanup {
private:
TProofPlayer *fPlayer;
public:
TCleanup(TProofPlayer *p) : fPlayer(p) { }
~TCleanup() { gSystem->Syslog(kLogErr, "!!!cleanup!!!"); fPlayer->StopFeedback(); }
};
public:
enum EStatusBits { kDispatchOneEvent = BIT(15) };
TProofPlayer(TProof *proof = 0);
virtual ~TProofPlayer();
Long64_t Process(TDSet *set,
const char *selector, Option_t *option = "",
Long64_t nentries = -1, Long64_t firstentry = 0,
TEventList *evl = 0);
Long64_t Finalize(Bool_t force = kFALSE, Bool_t sync = kFALSE);
Long64_t Finalize(TQueryResult *qr);
Long64_t DrawSelect(TDSet *set, const char *varexp,
const char *selection, Option_t *option = "",
Long64_t nentries = -1, Long64_t firstentry = 0);
void HandleGetTreeHeader(TMessage *mess);
void HandleRecvHisto(TMessage *mess);
void StopProcess(Bool_t abort, Int_t timeout = -1);
void AddInput(TObject *inp);
void ClearInput();
TObject *GetOutput(const char *name) const;
TList *GetOutputList() const;
TList *GetInputList() const { return fInput; }
TList *GetListOfResults() const { return fQueryResults; }
void AddQueryResult(TQueryResult *q);
TQueryResult *GetCurrentQuery() const { return fQuery; }
TQueryResult *GetQueryResult(const char *ref);
void RemoveQueryResult(const char *ref);
void SetCurrentQuery(TQueryResult *q);
void SetMaxDrawQueries(Int_t max) { fMaxDrawQueries = max; }
void RestorePreviousQuery() { fQuery = fPreviousQuery; }
Int_t AddOutputObject(TObject *obj);
void AddOutput(TList *out);
void StoreOutput(TList *out);
void StoreFeedback(TObject *slave, TList *out);
void Progress(Long64_t total, Long64_t processed);
void Progress(TSlave *, Long64_t total, Long64_t processed)
{ Progress(total, processed); }
void Progress(Long64_t total, Long64_t processed, Long64_t bytesread,
Float_t initTime, Float_t procTime,
Float_t evtrti, Float_t mbrti);
void Feedback(TList *objs);
TDrawFeedback *CreateDrawFeedback(TProof *p);
void SetDrawFeedbackOption(TDrawFeedback *f, Option_t *opt);
void DeleteDrawFeedback(TDrawFeedback *f);
TDSetElement *GetNextPacket(TSlave *slave, TMessage *r);
Int_t ReinitSelector(TQueryResult *qr);
void UpdateAutoBin(const char *name,
Double_t& xmin, Double_t& xmax,
Double_t& ymin, Double_t& ymax,
Double_t& zmin, Double_t& zmax);
Bool_t IsClient() const { return kFALSE; }
EExitStatus GetExitStatus() const { return fExitStatus; }
Long64_t GetEventsProcessed() const { return fEventsProcessed; }
void AddEventsProcessed(Long64_t ev) { fEventsProcessed += ev; }
void SetDispatchTimer(Bool_t on = kTRUE);
void SetStopTimer(Bool_t on = kTRUE,
Bool_t abort = kFALSE, Int_t timeout = 0);
ClassDef(TProofPlayer,0)
};
class TProofPlayerLocal : public TProofPlayer {
public:
TProofPlayerLocal(TProof *) { }
ClassDef(TProofPlayerLocal,0)
};
class TProofPlayerRemote : public TProofPlayer {
private:
TProof *fProof;
TList *fOutputLists;
TList *fFeedback;
TList *fFeedbackLists;
TVirtualPacketizer *fPacketizer;
TDSet *fDSet;
TList *MergeFeedback();
protected:
virtual Bool_t HandleTimer(TTimer *timer);
virtual Bool_t SendSelector(const char *selector_file);
TProof *GetProof() const { return fProof; }
void SetupFeedback();
void StopFeedback();
public:
TProofPlayerRemote(TProof *proof = 0) : fProof(proof), fOutputLists(0), fFeedback(0),
fFeedbackLists(0), fPacketizer(0) {}
virtual ~TProofPlayerRemote();
Long64_t Process(TDSet *set, const char *selector,
Option_t *option = "", Long64_t nentries = -1,
Long64_t firstentry = 0, TEventList *evl = 0);
Long64_t Finalize(Bool_t force = kFALSE, Bool_t sync = kFALSE);
Long64_t Finalize(TQueryResult *qr);
Long64_t DrawSelect(TDSet *set, const char *varexp,
const char *selection, Option_t *option = "",
Long64_t nentries = -1, Long64_t firstentry = 0);
void StopProcess(Bool_t abort, Int_t timeout = -1);
void StoreOutput(TList *out);
void StoreFeedback(TObject *slave, TList *out);
Int_t Incorporate(TObject *obj, TList *out, Bool_t &merged);
Int_t AddOutputObject(TObject *obj);
void AddOutput(TList *out);
void MergeOutput();
void Progress(Long64_t total, Long64_t processed);
void Progress(TSlave*, Long64_t total, Long64_t processed)
{ Progress(total, processed); }
void Progress(Long64_t total, Long64_t processed, Long64_t bytesread,
Float_t initTime, Float_t procTime,
Float_t evtrti, Float_t mbrti);
void Feedback(TList *objs);
TDSetElement *GetNextPacket(TSlave *slave, TMessage *r);
Bool_t IsClient() const;
ClassDef(TProofPlayerRemote,0)
};
class TProofPlayerSlave : public TProofPlayer {
private:
TSocket *fSocket;
TList *fFeedback;
Bool_t HandleTimer(TTimer *timer);
protected:
void SetupFeedback();
void StopFeedback();
public:
TProofPlayerSlave(TSocket *socket = 0) : fSocket(socket), fFeedback(0) { }
void HandleGetTreeHeader(TMessage *mess);
ClassDef(TProofPlayerSlave,0)
};
class TProofPlayerSuperMaster : public TProofPlayerRemote {
private:
TArrayL64 fSlaveProgress;
TArrayL64 fSlaveTotals;
TList fSlaves;
Bool_t fReturnFeedback;
protected:
Bool_t HandleTimer(TTimer *timer);
void SetupFeedback();
public:
TProofPlayerSuperMaster(TProof *proof = 0) :
TProofPlayerRemote(proof), fReturnFeedback(kFALSE) { }
virtual ~TProofPlayerSuperMaster() { }
Long64_t Process(TDSet *set, const char *selector,
Option_t *option = "", Long64_t nentries = -1,
Long64_t firstentry = 0, TEventList *evl = 0);
void Progress(Long64_t total, Long64_t processed)
{ TProofPlayerRemote::Progress(total, processed); }
void Progress(Long64_t total, Long64_t processed, Long64_t bytesread,
Float_t initTime, Float_t procTime,
Float_t evtrti, Float_t mbrti)
{ TProofPlayerRemote::Progress(total, processed, bytesread,
initTime, procTime, evtrti, mbrti); }
void Progress(TSlave *sl, Long64_t total, Long64_t processed);
ClassDef(TProofPlayerSuperMaster,0)
};
#endif
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.