#ifndef ROOT_TVirtualPacketizer
#define ROOT_TVirtualPacketizer
#ifndef ROOT_TObject
#include "TObject.h"
#endif
class TDSet;
class TDSetElement;
class TSlave;
class TMessage;
class TNtupleD;
class TVirtualPacketizer : public TObject {
friend class TPacketizer;
friend class TPacketizerAdaptive;
friend class TPacketizerProgressive;
friend class TPacketizerUnit;
private:
enum EUseEstOpt {
kEstOff = 0,
kEstCurrent = 1,
kEstAverage = 2
};
Long64_t fProcessed;
Long64_t fBytesRead;
TTimer *fProgress;
Long64_t fTotalEntries;
TList *fFailedPackets;
Long_t fStartTime;
Float_t fInitTime;
Float_t fProcTime;
Float_t fTimeUpdt;
TNtupleD *fCircProg;
Long_t fCircN;
EUseEstOpt fUseEstOpt;
TVirtualPacketizer(const TVirtualPacketizer &);
void operator=(const TVirtualPacketizer &);
virtual Bool_t HandleTimer(TTimer *timer);
TDSetElement *CreateNewPacket(TDSetElement* base, Long64_t first, Long64_t num);
protected:
Bool_t fValid;
Bool_t fStop;
TVirtualPacketizer(TList *input);
Long64_t GetEntries(Bool_t tree, TDSetElement *e);
public:
enum EStatusBits { kIsInitializing = BIT(16), kIsDone = BIT(17) };
virtual ~TVirtualPacketizer();
Bool_t IsValid() const { return fValid; }
Long64_t GetEntriesProcessed() const { return fProcessed; }
virtual Long64_t GetEntriesProcessed(TSlave *sl) const;
virtual Int_t GetEstEntriesProcessed(Float_t, Long64_t &ent, Long64_t &bytes)
{ ent = fProcessed; bytes = fBytesRead; return 0; }
Long64_t GetTotalEntries() const { return fTotalEntries; }
virtual TDSetElement *GetNextPacket(TSlave *sl, TMessage *r);
virtual void SetInitTime();
virtual void StopProcess(Bool_t abort);
TList *GetFailedPackets() { return fFailedPackets; }
void SetFailedPackets(TList *list) { fFailedPackets = list; }
Long64_t GetBytesRead() const { return fBytesRead; }
Float_t GetInitTime() const { return fInitTime; }
Float_t GetProcTime() const { return fProcTime; }
ClassDef(TVirtualPacketizer,0)
};
#endif
Last change: Wed Jun 25 08:54:55 2008
Last generated: 2008-06-25 08:54
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.