#ifndef ROOT_TFileCacheRead
#define ROOT_TFileCacheRead
#ifndef ROOT_TObject
#include "TObject.h"
#endif
class TFile;
class TBranch;
class TFilePrefetch;
class TFileCacheRead : public TObject {
protected:
TFilePrefetch* fPrefetch;
Int_t fBufferSizeMin;
Int_t fBufferSize;
Int_t fBufferLen;
Bool_t fAsyncReading;
Bool_t fEnablePrefetching;
Int_t fNseek;
Int_t fNtot;
Int_t fNb;
Int_t fSeekSize;
Long64_t *fSeek;
Long64_t *fSeekSort;
Int_t *fSeekIndex;
Long64_t *fPos;
Int_t *fSeekLen;
Int_t *fSeekSortLen;
Int_t *fSeekPos;
Int_t *fLen;
TFile *fFile;
char *fBuffer;
Bool_t fIsSorted;
Bool_t fIsTransferred;
Long64_t fPrefetchedBlocks;
Int_t fBNseek;
Int_t fBNtot;
Int_t fBNb;
Int_t fBSeekSize;
Long64_t *fBSeek;
Long64_t *fBSeekSort;
Int_t *fBSeekIndex;
Long64_t *fBPos;
Int_t *fBSeekLen;
Int_t *fBSeekSortLen;
Int_t *fBSeekPos;
Int_t *fBLen;
Bool_t fBIsSorted;
Bool_t fBIsTransferred;
private:
TFileCacheRead(const TFileCacheRead &);
TFileCacheRead& operator=(const TFileCacheRead &);
public:
TFileCacheRead();
TFileCacheRead(TFile *file, Int_t buffersize);
virtual ~TFileCacheRead();
virtual void AddBranch(TBranch * , Bool_t = kFALSE) {}
virtual void AddBranch(const char * , Bool_t = kFALSE) {}
virtual Int_t GetBufferSize() const { return fBufferSize; };
virtual Int_t GetUnzipBuffer(char ** , Long64_t , Int_t , Bool_t * ) { return -1; }
Long64_t GetPrefetchedBlocks() const { return fPrefetchedBlocks; }
virtual Bool_t IsAsyncReading() const { return fAsyncReading; };
virtual void SetEnablePrefetching(Bool_t setPrefetching = kFALSE) { fEnablePrefetching = setPrefetching; }
virtual Bool_t IsEnablePrefetching() const { return fEnablePrefetching; };
virtual Bool_t IsLearning() const {return kFALSE;}
virtual void Prefetch(Long64_t pos, Int_t len);
virtual void Print(Option_t *option="") const;
virtual Int_t ReadBufferExt(char *buf, Long64_t pos, Int_t len, Int_t &loc);
virtual Int_t ReadBufferExtNormal(char *buf, Long64_t pos, Int_t len, Int_t &loc);
virtual Int_t ReadBufferExtPrefetch(char *buf, Long64_t pos, Int_t len, Int_t &loc);
virtual Int_t ReadBuffer(char *buf, Long64_t pos, Int_t len);
virtual void SetFile(TFile *file);
virtual void SetSkipZip(Bool_t = kTRUE) {}
virtual void Sort();
virtual void SecondSort();
virtual void SecondPrefetch(Long64_t, Int_t);
virtual TFilePrefetch* GetPrefetchObj();
ClassDef(TFileCacheRead,1)
};
#endif