78#ifdef R__TRACK_BASKET_ALLOC_TIME
100 kGenerateOffsetMap =
BIT(0),
102 kSupported = kGenerateOffsetMap
139#ifdef R__TRACK_BASKET_ALLOC_TIME
140 ULong64_t GetResetAllocationTime()
const {
return fResetAllocationTime; }
unsigned long long ULong64_t
#define ClassDef(name, id)
Manages buffers for branches of a Tree.
Int_t * fEntryOffset
[fNevBuf] Offset of entries in fBuffer(TKey); generated at runtime.
Int_t GetEntryPointer(Int_t Entry)
Get pointer to buffer for internal entry.
void AdoptBuffer(TBuffer *user_buffer)
Adopt a buffer from an external entity.
Bool_t fOwnsCompressedBuffer
! Whether or not we own the compressed buffer.
TBranch * fBranch
Pointer to the basket support branch.
Int_t GetNevBufSize() const
Long64_t CopyTo(TFile *to)
Copy the basket of this branch onto the file to.
Int_t * GetDisplacement() const
void InitializeCompressedBuffer(Int_t len, TFile *file)
Initialize the compressed buffer; either from the TTree or create a local one.
UChar_t fNextBufferSizeRecord
! Index into fLastWriteBufferSize of the last buffer written to disk
Bool_t CanGenerateOffsetArray()
Determine whether we can generate the offset array when this branch is read.
Bool_t fHeaderOnly
True when only the basket header must be read/written.
void DisownBuffer()
Disown all references to the internal buffer - some other object likely now owns it.
Int_t fLastWriteBufferSize[3]
! Size of the buffer last three buffers we wrote it to disk
void SetBranch(TBranch *branch)
Int_t ReadBasketBuffers(Long64_t pos, Int_t len, TFile *file)
Read basket buffers in memory and cleanup.
UChar_t fIOBits
!IO feature flags. Serialized in custom portion of streamer to avoid forward compat issues unless nee...
virtual Int_t DropBuffers()
Drop buffers of this basket if it is not the current basket.
virtual void PrepareBasket(Long64_t)
virtual void MoveEntries(Int_t dentries)
Remove the first dentries of this basket, moving entries at dentries to the start of the buffer.
void SetNevBufSize(Int_t n)
static constexpr int kIOBitCount
Int_t GetBufferSize() const
TBranch * GetBranch() const
TBasket()
Default contructor.
virtual void AdjustSize(Int_t newsize)
Increase the size of the current fBuffer up to newsize.
Int_t LoadBasketBuffers(Long64_t pos, Int_t len, TFile *file, TTree *tree=0)
Load basket buffers in memory without unziping.
Bool_t fResetAllocation
! True if last reset re-allocated the memory
virtual void SetReadMode()
Set read mode of basket.
virtual void SetWriteMode()
Set write mode of basket.
Int_t ReadBasketBuffersUncompressedCase()
By-passing buffer unzipping has been requested and is possible (only 1 entry in this basket).
Bool_t GetResetAllocationCount() const
Int_t fBufferSize
fBuffer length in bytes
Int_t ReadBasketBuffersUnzip(char *, Int_t, Bool_t, TFile *)
We always create the TBuffer for the basket but it hold the buffer from the cache.
Int_t ReadBasketBytes(Long64_t pos, TFile *file)
Read basket buffers in memory and cleanup.
virtual void ReadResetBuffer(Int_t basketnumber)
Reset the read basket TBuffer memory allocation if needed.
TBasket & operator=(const TBasket &)
TBasket objects are not copiable.
virtual Int_t WriteBuffer()
Write buffer of this basket on the current file.
void Update(Int_t newlast)
TBasket(const TBasket &)
TBasket objects are not copiable.
Int_t fNevBufSize
Length in Int_t of fEntryOffset OR fixed length of each entry if fEntryOffset is null!
Int_t fNevBuf
Number of entries in basket.
Int_t * GetCalculatedEntryOffset()
Calculates the entry offset array, if possible.
Bool_t fReadEntryOffset
!Set to true if offset array was read from a file.
virtual ~TBasket()
Basket destructor.
virtual void DeleteEntryOffset()
Delete fEntryOffset array.
TBuffer * fCompressedBufferRef
! Compressed buffer.
Int_t fLast
Pointer to last used byte in basket.
Int_t * fDisplacement
![fNevBuf] Displacement of entries in fBuffer(TKey)
virtual void WriteReset()
Reset the write basket to the starting state.
A TTree is a list of TBranches.
Buffer base class used for serializing objects.
Describe directory structure in memory.
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format.
Book space in a file, create I/O buffers, to fill them, (un)compress them.
A TTree represents a columnar dataset.