12 #ifndef ROOT_TPacketizerAdaptive
13 #define ROOT_TPacketizerAdaptive
48 class TPacketizerAdaptive :
public TVirtualPacketizer {
62 TSortedList *fFilesToProcess;
64 Bool_t fCachePacketSync;
65 Double_t fMaxEntriesRatio;
67 Float_t fFractionOfRemoteFiles;
68 Long64_t fNEventsOnRemLoc;
70 Float_t fBaseLocalPreference;
76 Int_t fPacketAsAFraction;
85 TPacketizerAdaptive();
86 TPacketizerAdaptive(
const TPacketizerAdaptive&);
88 void operator=(
const TPacketizerAdaptive&);
90 TFileNode *NextNode();
91 void RemoveUnAllocNode(TFileNode *);
93 TFileNode *NextActiveNode();
94 void RemoveActiveNode(TFileNode *);
96 TFileStat *GetNextUnAlloc(TFileNode *node = 0,
const char *nodeHostName = 0);
97 TFileStat *GetNextActive();
98 void RemoveActive(TFileStat *file);
101 void ValidateFiles(TDSet *dset, TList *slaves, Long64_t maxent = -1, Bool_t byfile = kFALSE);
102 Int_t ReassignPacket(TDSetElement *e, TList **listOfMissingFiles);
103 void SplitPerHost(TList *elements, TList **listOfMissingFiles);
106 TPacketizerAdaptive(TDSet *dset, TList *slaves, Long64_t first, Long64_t num,
107 TList *input, TProofProgressStatus *st);
108 virtual ~TPacketizerAdaptive();
110 Int_t AddProcessed(TSlave *sl, TProofProgressStatus *st,
111 Double_t latency, TList **listOfMissingFiles = 0);
112 Int_t GetEstEntriesProcessed(Float_t, Long64_t &ent, Long64_t &bytes, Long64_t &calls);
113 Float_t GetCurrentRate(Bool_t &all);
114 Int_t CalculatePacketSize(TObject *slstat, Long64_t cachesz, Int_t learnent);
115 TDSetElement *GetNextPacket(TSlave *sl, TMessage *r);
116 void MarkBad(TSlave *s, TProofProgressStatus *status, TList **missingFiles);
118 Int_t GetActiveWorkers();
120 ClassDef(TPacketizerAdaptive,0)