#ifndef ROOT_TPacketizerAdaptive
#define ROOT_TPacketizerAdaptive
#ifndef ROOT_TVirtualPacketizer
#include "TVirtualPacketizer.h"
#endif
class TMessage;
class TTree;
class TMap;
class TNtupleD;
class TProofStats;
class TRandom;
class TSortedList;
class TPacketizerAdaptive : public TVirtualPacketizer {
public:
class TFileNode;
class TFileStat;
class TSlaveStat;
private:
TList *fFileNodes;
TList *fUnAllocated;
TList *fActive;
Int_t fMaxPerfIdx;
TList *fPartitions;
TSortedList *fFilesToProcess;
Bool_t fCachePacketSync;
Double_t fMaxEntriesRatio;
Float_t fFractionOfRemoteFiles;
Long64_t fNEventsOnRemLoc;
Float_t fBaseLocalPreference;
Bool_t fForceLocal;
Long_t fMaxSlaveCnt;
Int_t fPacketAsAFraction;
Int_t fStrategy;
Int_t fTryReassign;
TPacketizerAdaptive();
TPacketizerAdaptive(const TPacketizerAdaptive&);
void InitStats();
void operator=(const TPacketizerAdaptive&);
TFileNode *NextNode();
void RemoveUnAllocNode(TFileNode *);
TFileNode *NextActiveNode();
void RemoveActiveNode(TFileNode *);
TFileStat *GetNextUnAlloc(TFileNode *node = 0, const char *nodeHostName = 0);
TFileStat *GetNextActive();
void RemoveActive(TFileStat *file);
void Reset();
void ValidateFiles(TDSet *dset, TList *slaves, Long64_t maxent = -1, Bool_t byfile = kFALSE);
Int_t ReassignPacket(TDSetElement *e, TList **listOfMissingFiles);
void SplitPerHost(TList *elements, TList **listOfMissingFiles);
public:
TPacketizerAdaptive(TDSet *dset, TList *slaves, Long64_t first, Long64_t num,
TList *input, TProofProgressStatus *st);
virtual ~TPacketizerAdaptive();
Int_t AddProcessed(TSlave *sl, TProofProgressStatus *st,
Double_t latency, TList **listOfMissingFiles = 0);
Int_t GetEstEntriesProcessed(Float_t, Long64_t &ent, Long64_t &bytes, Long64_t &calls);
Float_t GetCurrentRate(Bool_t &all);
Int_t CalculatePacketSize(TObject *slstat, Long64_t cachesz, Int_t learnent);
TDSetElement *GetNextPacket(TSlave *sl, TMessage *r);
void MarkBad(TSlave *s, TProofProgressStatus *status, TList **missingFiles);
Int_t GetActiveWorkers();
ClassDef(TPacketizerAdaptive,0)
};
#endif
TPacketizerAdaptive.h:100 TPacketizerAdaptive.h:101 TPacketizerAdaptive.h:102 TPacketizerAdaptive.h:103 TPacketizerAdaptive.h:104 TPacketizerAdaptive.h:105 TPacketizerAdaptive.h:106 TPacketizerAdaptive.h:107 TPacketizerAdaptive.h:108 TPacketizerAdaptive.h:109 TPacketizerAdaptive.h:110 TPacketizerAdaptive.h:111 TPacketizerAdaptive.h:112 TPacketizerAdaptive.h:113 TPacketizerAdaptive.h:114 TPacketizerAdaptive.h:115 TPacketizerAdaptive.h:116 TPacketizerAdaptive.h:117 TPacketizerAdaptive.h:118 TPacketizerAdaptive.h:119 TPacketizerAdaptive.h:120 TPacketizerAdaptive.h:121 TPacketizerAdaptive.h:122 TPacketizerAdaptive.h:123 TPacketizerAdaptive.h:124 TPacketizerAdaptive.h:125