library: libCore
#include "TFileCacheRead.h"

TFileCacheRead


class description - header file - source file
viewCVS header - viewCVS source

class TFileCacheRead: public TObject

Inheritance Inherited Members Includes Libraries
Class Charts

Function Members (Methods)

Display options:
Show inherited
Show non-public
public:
TFileCacheRead()
TFileCacheRead(TFile* file, Int_t buffersize)
virtual~TFileCacheRead()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() const
virtual TObject*TObject::DrawClone(Option_t* option = "") const
virtual voidTObject::Dump() const
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() const
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrefetch(Long64_t pos, Int_t len)
virtual voidPrint(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual Int_tReadBuffer(char* buf, Long64_t pos, Int_t len)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") const
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")
static voidTObject::SetDtorOnly(void* obj)
virtual voidSetFile(TFile* file)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidSort()
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = "0", Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = "0", Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
TFileCacheRead(const TFileCacheRead&)
TFileCacheRead&operator=(const TFileCacheRead&)

Data Members

public:
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
Int_tfBufferSizeMinOriginal size of fBuffer
Int_tfBufferSizeAllocated size of fBuffer (at a given time)
Int_tfBufferLenCurrent buffer length (<= fBufferSize)
Int_tfNseekNumber of blocks to be prefetched
Int_tfNtotTotal size of prefetched blocks
Int_tfNbNumber of long buffers
Int_tfSeekSizeAllocated size of fSeek
Long64_t*fSeek[fNseek] Position on file of buffers to be prefetched
Long64_t*fSeekIndex[fNseek] sorted index table of fSeek
Long64_t*fSeekSort[fNseek] Position on file of buffers to be prefetched (sorted)
Long64_t*fPos[fNb] start of long buffers
Int_t*fSeekLen[fNseek] Length of buffers to be prefetched
Int_t*fSeekSortLen[fNseek] Length of buffers to be prefetched (sorted)
Int_t*fSeekPos[fNseek] Position of sorted blocks in fBuffer
Int_t*fLen[fNb] Length of long buffers
TFile*fFilePointer to file
char*fBuffer[fBufferSize] buffer of contiguous prefetched blocks
Bool_tfIsSortedTrue if fSeek array is sorted

Class Description

                                                                      
 TFileCacheRead : a cache when reading files over the network         
                                                                      
 A caching system to speed up network I/O, i.e. when there is         
 no operating system caching support (like the buffer cache for       
 local disk I/O). The cache makes sure that every I/O is done with    
 a (large) fixed length buffer thereby avoiding many small I/O's.     
 Currently the read cache system is used by the classes TNetFile,     
 TXNetFile and TWebFile (via TFile::ReadBuffers()).                   
                                                                      
 When processing TTree, TChain, a specialized class TTreeCache that   
 derives from this class is automatically created.                    
                                                                      

TFileCacheRead()
 Default Constructor.
TFileCacheRead(TFile *file, Int_t buffersize)
 Creates a TFileCacheRead data structure.
~TFileCacheRead()
 Destructor.
void Prefetch(Long64_t pos, Int_t len)
 Add block of length len at position pos in the list of blocks to
 be prefetched. If pos <= 0 the current blocks (if any) are reset.
void Print(Option_t *option)
 Print class internal structure.
Int_t ReadBuffer(char *buf, Long64_t pos, Int_t len)
 Read buffer at position pos.
 If pos is in the list of prefetched blocks read from fBuffer,
 otherwise need to make a normal read from file. Returns -1 in case of
 read error, 0 in case not in cache, 1 in case read from cache.
void SetFile(TFile *file)
 Set the file using this cache and reset the current blocks (if any).
void Sort()
 Sort buffers to be prefetched in increasing order of positions.
 Merge consecutive blocks if necessary.
TFileCacheRead(const TFileCacheRead &)
TFileCacheRead& operator=(const TFileCacheRead &)

Author: Rene Brun 18/05/2006
Last update: root/base:$Name: $:$Id: TFileCacheRead.cxx,v 1.6 2006/10/25 14:38:38 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *


ROOT page - Class index - Class Hierarchy - Top of the page

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.