Logo ROOT  
Reference Guide
TBasket Class Reference

Manages buffers for branches of a Tree.

See picture in TTree.

Definition at line 34 of file TBasket.h.

Public Types

enum  EIOBits : Char_t { EIOBits::kGenerateOffsetMap = BIT(0), EIOBits::kSupported = kGenerateOffsetMap }
 
enum  EUnsupportedIOBits : Char_t { EUnsupportedIOBits::kUnsupported = 0 }
 
- Public Types inherited from TObject
enum  {
  kIsOnHeap = 0x01000000, kNotDeleted = 0x02000000, kZombie = 0x04000000, kInconsistent = 0x08000000,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = BIT(0), kOverwrite = BIT(1), kWriteDelete = BIT(2) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = BIT(3) }
 
enum  EStatusBits {
  kCanDelete = BIT(0), kMustCleanup = BIT(3), kIsReferenced = BIT(4), kHasUUID = BIT(5),
  kCannotPick = BIT(6), kNoContextMenu = BIT(8), kInvalidObject = BIT(13)
}
 

Public Member Functions

 TBasket ()
 Default contructor. More...
 
 TBasket (const char *name, const char *title, TBranch *branch)
 Basket normal constructor, used during writing. More...
 
 TBasket (TDirectory *motherDir)
 Constructor used during reading. More...
 
virtual ~TBasket ()
 Basket destructor. More...
 
virtual void AdjustSize (Int_t newsize)
 Increase the size of the current fBuffer up to newsize. More...
 
Long64_t CopyTo (TFile *to)
 Copy the basket of this branch onto the file to. More...
 
virtual void DeleteEntryOffset ()
 Delete fEntryOffset array. More...
 
virtual Int_t DropBuffers ()
 Drop buffers of this basket if it is not the current basket. More...
 
TBranchGetBranch () const
 
Int_t GetBufferSize () const
 
Int_tGetDisplacement () const
 
Int_tGetEntryOffset ()
 
Int_t GetEntryPointer (Int_t Entry)
 Get pointer to buffer for internal entry. More...
 
Int_t GetLast () const
 
Int_t GetNevBuf () const
 
Int_t GetNevBufSize () const
 
Bool_t GetResetAllocationCount () const
 
Int_t LoadBasketBuffers (Long64_t pos, Int_t len, TFile *file, TTree *tree=0)
 Load basket buffers in memory without unziping. More...
 
virtual void MoveEntries (Int_t dentries)
 Remove the first dentries of this basket, moving entries at dentries to the start of the buffer. More...
 
virtual void PrepareBasket (Long64_t)
 
Int_t ReadBasketBuffers (Long64_t pos, Int_t len, TFile *file)
 Read basket buffers in memory and cleanup. More...
 
Int_t ReadBasketBytes (Long64_t pos, TFile *file)
 Read basket buffers in memory and cleanup. More...
 
void SetBranch (TBranch *branch)
 
void SetNevBufSize (Int_t n)
 
virtual void SetReadMode ()
 Set read mode of basket. More...
 
virtual void SetWriteMode ()
 Set write mode of basket. More...
 
void Update (Int_t newlast)
 
virtual void Update (Int_t newlast, Int_t skipped)
 Update basket header and EntryOffset table. More...
 
virtual Int_t WriteBuffer ()
 Write buffer of this basket on the current file. More...
 
virtual void WriteReset ()
 Reset the write basket to the starting state. More...
 
- Public Member Functions inherited from TKey
 TKey ()
 TKey default constructor. More...
 
 TKey (const char *name, const char *title, const TClass *cl, Int_t nbytes, TDirectory *motherDir)
 Create a TKey object with the specified name, title for the given class. More...
 
 TKey (const TObject *obj, const char *name, Int_t bufsize, TDirectory *motherDir)
 Create a TKey object for a TObject* and fill output buffer. More...
 
 TKey (const TString &name, const TString &title, const TClass *cl, Int_t nbytes, TDirectory *motherDir)
 Create a TKey object with the specified name, title for the given class. More...
 
 TKey (const void *obj, const TClass *cl, const char *name, Int_t bufsize, TDirectory *motherDir)
 Create a TKey object for any object obj of class cl d and fill output buffer. More...
 
 TKey (Long64_t pointer, Int_t nbytes, TDirectory *motherDir=0)
 Create a TKey object to read keys. More...
 
 TKey (TDirectory *motherDir)
 TKey default constructor. More...
 
 TKey (TDirectory *motherDir, const TKey &orig, UShort_t pidOffset)
 Copy a TKey from its original directory to the new 'motherDir'. More...
 
virtual ~TKey ()
 TKey default destructor. More...
 
virtual void Browse (TBrowser *b)
 Read object from disk and call its Browse() method. More...
 
virtual void Delete (Option_t *option="")
 Delete an object from the file. More...
 
virtual void DeleteBuffer ()
 Delete key buffer(s). More...
 
virtual void FillBuffer (char *&buffer)
 Encode key header into output buffer. More...
 
virtual char * GetBuffer () const
 
TBufferGetBufferRef () const
 
virtual const char * GetClassName () const
 
Short_t GetCycle () const
 Return cycle number associated to this key. More...
 
const TDatimeGetDatime () const
 
TFileGetFile () const
 Returns file to which key belong. More...
 
virtual const char * GetIconName () const
 Title can keep 32x32 xpm thumbnail/icon of the parent object. More...
 
Short_t GetKeep () const
 Returns the "KEEP" status. More...
 
Int_t GetKeylen () const
 
TDirectoryGetMotherDir () const
 
Int_t GetNbytes () const
 
Int_t GetObjlen () const
 
virtual Long64_t GetSeekKey () const
 
virtual Long64_t GetSeekPdir () const
 
virtual const char * GetTitle () const
 Returns title (title can contain 32x32 xpm thumbnail/icon). More...
 
Int_t GetVersion () const
 
virtual void IncrementPidOffset (UShort_t offset)
 Increment fPidOffset by 'offset'. More...
 
Bool_t IsFolder () const
 Check if object referenced by the key is a folder. More...
 
virtual void Keep ()
 Set the "KEEP" status. More...
 
virtual void ls (Bool_t current) const
 List Key contents. More...
 
virtual void ls (Option_t *option="") const
 List Key contents. More...
 
virtual void Print (Option_t *option="") const
 Print key contents. More...
 
virtual Int_t Read (TObject *obj)
 To read an object from the file. More...
 
virtual void ReadBuffer (char *&buffer)
 Decode input buffer. More...
 
virtual Bool_t ReadFile ()
 Read the key structure from the file. More...
 
void ReadKeyBuffer (char *&buffer)
 Decode input buffer. More...
 
virtual TObjectReadObj ()
 To read a TObject* from the file. More...
 
template<typename T >
T * ReadObject ()
 To read an object (non deriving from TObject) from the file. More...
 
virtual voidReadObjectAny (const TClass *expectedClass)
 To read an object (non deriving from TObject) from the file. More...
 
virtual TObjectReadObjWithBuffer (char *bufferRead)
 To read a TObject* from bufferRead. More...
 
virtual void SetBuffer ()
 
void SetMotherDir (TDirectory *dir)
 
virtual void SetParent (const TObject *parent)
 Set parent in key buffer. More...
 
virtual Int_t Sizeof () const
 Return the size in bytes of the key header structure. More...
 
virtual Int_t WriteFile (Int_t cycle=1, TFile *f=0)
 Write the encoded object supported by this key. More...
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TNamed &named)
 TNamed copy ctor. More...
 
 TNamed (const TString &name, const TString &title)
 
virtual ~TNamed ()
 TNamed destructor. More...
 
virtual void Clear (Option_t *option="")
 Set name and title to empty strings (""). More...
 
virtual TObjectClone (const char *newname="") const
 Make a clone of an object using the Streamer facility. More...
 
virtual Int_t Compare (const TObject *obj) const
 Compare two TNamed objects. More...
 
virtual void Copy (TObject &named) const
 Copy this to obj. More...
 
virtual const char * GetName () const
 Returns name of object. More...
 
virtual ULong_t Hash () const
 Return hash value for this object. More...
 
virtual Bool_t IsSortable () const
 
TNamedoperator= (const TNamed &rhs)
 TNamed assignment operator. More...
 
virtual void SetName (const char *name)
 Set the name of the TNamed. More...
 
virtual void SetNameTitle (const char *name, const char *title)
 Set all the TNamed parameters (name and title). More...
 
virtual void SetTitle (const char *title="")
 Set the title of the TNamed. More...
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor. More...
 
 TObject (const TObject &object)
 TObject copy ctor. More...
 
virtual ~TObject ()
 TObject destructor. More...
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract. More...
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad. More...
 
ULong_t CheckedHash ()
 Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object. More...
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs. More...
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object. More...
 
virtual void Draw (Option_t *option="")
 Default Draw method for all objects. More...
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs. More...
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad). More...
 
virtual void Dump () const
 Dump contents of object on stdout. More...
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message. More...
 
virtual void Execute (const char *method, const char *params, Int_t *error=0)
 Execute method on this object with the given parameter string, e.g. More...
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=0)
 Execute method on this object with parameters stored in the TObjArray. More...
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py). More...
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message. More...
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes. More...
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes. More...
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object. More...
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py). More...
 
virtual Option_tGetOption () const
 
virtual UInt_t GetUniqueID () const
 Return the unique object id. More...
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out. More...
 
Bool_t HasInconsistentHash () const
 Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e. More...
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message. More...
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname". More...
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl. More...
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas. More...
 
void InvertBit (UInt_t f)
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory). More...
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
void MayNotUse (const char *method) const
 Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). More...
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification. More...
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete. More...
 
void operator delete (void *ptr)
 Operator delete. More...
 
void operator delete[] (void *ptr)
 Operator delete []. More...
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator. More...
 
virtual void Paint (Option_t *option="")
 This method must be overridden if a class wants to paint itself. More...
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list. More...
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list. More...
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename. More...
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out". More...
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f. More...
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object. More...
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id. More...
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message. More...
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
virtual void UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. More...
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0)
 Write this object to the current directory. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const
 Write this object to the current directory. More...
 

Static Public Attributes

static constexpr int kIOBitCount = 1
 

Protected Member Functions

virtual void ReadResetBuffer (Int_t basketnumber)
 Reset the read basket TBuffer memory allocation if needed. More...
 
- Protected Member Functions inherited from TKey
void Build (TDirectory *motherDir, const char *classname, Long64_t filepos)
 Method used in all TKey constructor to initialize basic data fields. More...
 
virtual void Create (Int_t nbytes, TFile *f=0)
 Create a TKey object of specified size. More...
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory. More...
 
void Reset ()
 Reset the key as it had not been 'filled' yet. More...
 
virtual Int_t WriteFileKeepBuffer (TFile *f=0)
 Write the encoded object supported by this key. More...
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected). More...
 
void MakeZombie ()
 

Protected Attributes

TBranchfBranch {nullptr}
 Pointer to the basket support branch. More...
 
Int_t fBufferSize {0}
 fBuffer length in bytes More...
 
TBufferfCompressedBufferRef {nullptr}
 ! Compressed buffer. More...
 
Int_tfDisplacement {nullptr}
 ![fNevBuf] Displacement of entries in fBuffer(TKey) More...
 
Int_tfEntryOffset {nullptr}
 [fNevBuf] Offset of entries in fBuffer(TKey); generated at runtime. More...
 
Bool_t fHeaderOnly {kFALSE}
 True when only the basket header must be read/written. More...
 
UChar_t fIOBits {0}
 !IO feature flags. Serialized in custom portion of streamer to avoid forward compat issues unless needed. More...
 
Int_t fLast {0}
 Pointer to last used byte in basket. More...
 
Int_t fLastWriteBufferSize [3] = {0,0,0}
 ! Size of the buffer last three buffers we wrote it to disk More...
 
Int_t fNevBuf {0}
 Number of entries in basket. More...
 
Int_t fNevBufSize {0}
 Length in Int_t of fEntryOffset OR fixed length of each entry if fEntryOffset is null! More...
 
UChar_t fNextBufferSizeRecord {0}
 ! Index into fLastWriteBufferSize of the last buffer written to disk More...
 
Bool_t fOwnsCompressedBuffer {kFALSE}
 ! Whether or not we own the compressed buffer. More...
 
Bool_t fReadEntryOffset {kFALSE}
 !Set to true if offset array was read from a file. More...
 
Bool_t fResetAllocation {false}
 ! True if last reset re-allocated the memory More...
 
- Protected Attributes inherited from TKey
char * fBuffer
 Object buffer. More...
 
TBufferfBufferRef
 Pointer to the TBuffer object. More...
 
TString fClassName
 Object Class name. More...
 
Short_t fCycle
 Cycle number. More...
 
TDatime fDatime
 Date/Time of insertion in file. More...
 
Short_t fKeylen
 Number of bytes for the key itself. More...
 
Int_t fLeft
 Number of bytes left in current segment. More...
 
TDirectoryfMotherDir
 !pointer to mother directory More...
 
Int_t fNbytes
 Number of bytes for the object on file. More...
 
Int_t fObjlen
 Length of uncompressed object in bytes. More...
 
UShort_t fPidOffset
 !Offset to be added to the pid index in this key/buffer. This is actually saved in the high bits of fSeekPdir More...
 
Long64_t fSeekKey
 Location of object on file. More...
 
Long64_t fSeekPdir
 Location of parent directory on file. More...
 
Int_t fVersion
 Key version identifier. More...
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 

Private Member Functions

 TBasket (const TBasket &)
 TBasket objects are not copiable. More...
 
void AdoptBuffer (TBuffer *user_buffer)
 Adopt a buffer from an external entity. More...
 
Bool_t CanGenerateOffsetArray ()
 Determine whether we can generate the offset array when this branch is read. More...
 
void DisownBuffer ()
 Disown all references to the internal buffer - some other object likely now owns it. More...
 
Int_tGetCalculatedEntryOffset ()
 Calculates the entry offset array, if possible. More...
 
void InitializeCompressedBuffer (Int_t len, TFile *file)
 Initialize the compressed buffer; either from the TTree or create a local one. More...
 
TBasketoperator= (const TBasket &)
 TBasket objects are not copiable. More...
 
Int_t ReadBasketBuffersUncompressedCase ()
 By-passing buffer unzipping has been requested and is possible (only 1 entry in this basket). More...
 
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. More...
 
void ResetEntryOffset ()
 

Friends

class TBranch
 

Additional Inherited Members

- Static Public Member Functions inherited from TObject
static Long_t GetDtorOnly ()
 Return destructor only flag. More...
 
static Bool_t GetObjectStat ()
 Get status of object stat flag. More...
 
static void SetDtorOnly (void *obj)
 Set destructor only flag. More...
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable. More...
 

#include <TBasket.h>

Inheritance diagram for TBasket:
[legend]

Member Enumeration Documentation

◆ EIOBits

enum TBasket::EIOBits : Char_t
strong
Enumerator
kGenerateOffsetMap 
kSupported 

Definition at line 97 of file TBasket.h.

◆ EUnsupportedIOBits

Enumerator
kUnsupported 

Definition at line 109 of file TBasket.h.

Constructor & Destructor Documentation

◆ TBasket() [1/4]

TBasket::TBasket ( const TBasket )
private

TBasket objects are not copiable.

◆ TBasket() [2/4]

TBasket::TBasket ( )

Default contructor.

Definition at line 47 of file TBasket.cxx.

◆ TBasket() [3/4]

TBasket::TBasket ( TDirectory motherDir)

Constructor used during reading.

Definition at line 54 of file TBasket.cxx.

◆ TBasket() [4/4]

TBasket::TBasket ( const char *  name,
const char *  title,
TBranch branch 
)

Basket normal constructor, used during writing.

Definition at line 61 of file TBasket.cxx.

◆ ~TBasket()

TBasket::~TBasket ( )
virtual

Basket destructor.

Definition at line 104 of file TBasket.cxx.

Member Function Documentation

◆ AdjustSize()

void TBasket::AdjustSize ( Int_t  newsize)
virtual

Increase the size of the current fBuffer up to newsize.

Definition at line 127 of file TBasket.cxx.

◆ AdoptBuffer()

void TBasket::AdoptBuffer ( TBuffer user_buffer)
private

Adopt a buffer from an external entity.

Definition at line 721 of file TBasket.cxx.

◆ CanGenerateOffsetArray()

Bool_t TBasket::CanGenerateOffsetArray ( )
private

Determine whether we can generate the offset array when this branch is read.

Definition at line 218 of file TBasket.cxx.

◆ CopyTo()

Long64_t TBasket::CopyTo ( TFile to)

Copy the basket of this branch onto the file to.

Definition at line 146 of file TBasket.cxx.

◆ DeleteEntryOffset()

void TBasket::DeleteEntryOffset ( )
virtual

Delete fEntryOffset array.

Definition at line 164 of file TBasket.cxx.

◆ DisownBuffer()

void TBasket::DisownBuffer ( )
private

Disown all references to the internal buffer - some other object likely now owns it.

This TBasket is now useless and invalid until it is told to adopt a buffer.

Definition at line 713 of file TBasket.cxx.

◆ DropBuffers()

Int_t TBasket::DropBuffers ( )
virtual

Drop buffers of this basket if it is not the current basket.

Definition at line 173 of file TBasket.cxx.

◆ GetBranch()

TBranch* TBasket::GetBranch ( ) const
inline

Definition at line 121 of file TBasket.h.

◆ GetBufferSize()

Int_t TBasket::GetBufferSize ( ) const
inline

Definition at line 122 of file TBasket.h.

◆ GetCalculatedEntryOffset()

Int_t * TBasket::GetCalculatedEntryOffset ( )
private

Calculates the entry offset array, if possible.

Result is cached, meaning that this should only be invoked once per basket.

Definition at line 195 of file TBasket.cxx.

◆ GetDisplacement()

Int_t* TBasket::GetDisplacement ( ) const
inline

Definition at line 123 of file TBasket.h.

◆ GetEntryOffset()

Int_t* TBasket::GetEntryOffset ( )
inline

Definition at line 124 of file TBasket.h.

◆ GetEntryPointer()

Int_t TBasket::GetEntryPointer ( Int_t  Entry)

Get pointer to buffer for internal entry.

Definition at line 230 of file TBasket.cxx.

◆ GetLast()

Int_t TBasket::GetLast ( ) const
inline

Definition at line 131 of file TBasket.h.

◆ GetNevBuf()

Int_t TBasket::GetNevBuf ( ) const
inline

Definition at line 129 of file TBasket.h.

◆ GetNevBufSize()

Int_t TBasket::GetNevBufSize ( ) const
inline

Definition at line 130 of file TBasket.h.

◆ GetResetAllocationCount()

Bool_t TBasket::GetResetAllocationCount ( ) const
inline

Definition at line 143 of file TBasket.h.

◆ InitializeCompressedBuffer()

void TBasket::InitializeCompressedBuffer ( Int_t  len,
TFile file 
)
inlineprivate

Initialize the compressed buffer; either from the TTree or create a local one.

Definition at line 432 of file TBasket.cxx.

◆ LoadBasketBuffers()

Int_t TBasket::LoadBasketBuffers ( Long64_t  pos,
Int_t  len,
TFile file,
TTree tree = 0 
)

Load basket buffers in memory without unziping.

This function is called by TTreeCloner. The function returns 0 in case of success, 1 in case of error.

Definition at line 245 of file TBasket.cxx.

◆ MoveEntries()

void TBasket::MoveEntries ( Int_t  dentries)
virtual

Remove the first dentries of this basket, moving entries at dentries to the start of the buffer.

Definition at line 310 of file TBasket.cxx.

◆ operator=()

TBasket& TBasket::operator= ( const TBasket )
private

TBasket objects are not copiable.

◆ PrepareBasket()

virtual void TBasket::PrepareBasket ( Long64_t  )
inlinevirtual

Reimplemented in TBasketSQL.

Definition at line 133 of file TBasket.h.

◆ ReadBasketBuffers()

Int_t TBasket::ReadBasketBuffers ( Long64_t  pos,
Int_t  len,
TFile file 
)

Read basket buffers in memory and cleanup.

Read a basket buffer. Check if buffers of previous ReadBasket should not be dropped. Remember, we keep buffers in memory up to fMaxVirtualSize. The function returns 0 in case of success, 1 in case of error This function was modified with the addition of the parallel unzipping, it will try to get the unzipped file from the cache receiving only a pointer to that buffer (so we shall not delete that pointer), although we get a new buffer in case it's not found in the cache. There is a lot of code duplication but it was necesary to assure the expected behavior when there is no cache.

Definition at line 464 of file TBasket.cxx.

◆ ReadBasketBuffersUncompressedCase()

Int_t TBasket::ReadBasketBuffersUncompressedCase ( )
private

By-passing buffer unzipping has been requested and is possible (only 1 entry in this basket).

Definition at line 358 of file TBasket.cxx.

◆ ReadBasketBuffersUnzip()

Int_t TBasket::ReadBasketBuffersUnzip ( char *  buffer,
Int_t  size,
Bool_t  mustFree,
TFile file 
)
private

We always create the TBuffer for the basket but it hold the buffer from the cache.

Definition at line 380 of file TBasket.cxx.

◆ ReadBasketBytes()

Int_t TBasket::ReadBasketBytes ( Long64_t  pos,
TFile file 
)

Read basket buffers in memory and cleanup.

Read first bytes of a logical record starting at position pos return record length (first 4 bytes of record).

Definition at line 698 of file TBasket.cxx.

◆ ReadResetBuffer()

void TBasket::ReadResetBuffer ( Int_t  basketnumber)
protectedvirtual

Reset the read basket TBuffer memory allocation if needed.

This allows to reduce the number of memory allocation while avoiding to always use the maximum size.

Definition at line 733 of file TBasket.cxx.

◆ ResetEntryOffset()

void TBasket::ResetEntryOffset ( )
private

Definition at line 441 of file TBasket.cxx.

◆ SetBranch()

void TBasket::SetBranch ( TBranch branch)
inline

Definition at line 148 of file TBasket.h.

◆ SetNevBufSize()

void TBasket::SetNevBufSize ( Int_t  n)
inline

Definition at line 149 of file TBasket.h.

◆ SetReadMode()

void TBasket::SetReadMode ( )
virtual

Set read mode of basket.

Definition at line 925 of file TBasket.cxx.

◆ SetWriteMode()

void TBasket::SetWriteMode ( )
virtual

Set write mode of basket.

Definition at line 934 of file TBasket.cxx.

◆ Update() [1/2]

void TBasket::Update ( Int_t  newlast)
inline

Definition at line 152 of file TBasket.h.

◆ Update() [2/2]

void TBasket::Update ( Int_t  newlast,
Int_t  skipped 
)
virtual

Update basket header and EntryOffset table.

Reimplemented in TBasketSQL.

Definition at line 1088 of file TBasket.cxx.

◆ WriteBuffer()

Int_t TBasket::WriteBuffer ( )
virtual

Write buffer of this basket on the current file.

The function returns the number of bytes committed to the memory. If a write error occurs, the number of bytes returned is -1. If no data are written, the number of bytes returned is 0.

Definition at line 1131 of file TBasket.cxx.

◆ WriteReset()

void TBasket::WriteReset ( )
virtual

Reset the write basket to the starting state.

i.e. as it was after calling the constructor (and potentially attaching a TBuffer.) Reduce memory used by fEntryOffset and the TBuffer if needed ..

Definition at line 806 of file TBasket.cxx.

Friends And Related Function Documentation

◆ TBranch

friend class TBranch
friend

Definition at line 35 of file TBasket.h.

Member Data Documentation

◆ fBranch

TBranch* TBasket::fBranch {nullptr}
protected

Pointer to the basket support branch.

Definition at line 73 of file TBasket.h.

◆ fBufferSize

Int_t TBasket::fBufferSize {0}
protected

fBuffer length in bytes

Definition at line 62 of file TBasket.h.

◆ fCompressedBufferRef

TBuffer* TBasket::fCompressedBufferRef {nullptr}
protected

! Compressed buffer.

Definition at line 74 of file TBasket.h.

◆ fDisplacement

Int_t* TBasket::fDisplacement {nullptr}
protected

![fNevBuf] Displacement of entries in fBuffer(TKey)

Definition at line 70 of file TBasket.h.

◆ fEntryOffset

Int_t* TBasket::fEntryOffset {nullptr}
protected

[fNevBuf] Offset of entries in fBuffer(TKey); generated at runtime.

Special value of -1 indicates that the offset generation MUST be performed on first read.

Definition at line 71 of file TBasket.h.

◆ fHeaderOnly

Bool_t TBasket::fHeaderOnly {kFALSE}
protected

True when only the basket header must be read/written.

Definition at line 66 of file TBasket.h.

◆ fIOBits

UChar_t TBasket::fIOBits {0}
protected

!IO feature flags. Serialized in custom portion of streamer to avoid forward compat issues unless needed.

Definition at line 67 of file TBasket.h.

◆ fLast

Int_t TBasket::fLast {0}
protected

Pointer to last used byte in basket.

Definition at line 65 of file TBasket.h.

◆ fLastWriteBufferSize

Int_t TBasket::fLastWriteBufferSize[3] = {0,0,0}
protected

! Size of the buffer last three buffers we wrote it to disk

Definition at line 75 of file TBasket.h.

◆ fNevBuf

Int_t TBasket::fNevBuf {0}
protected

Number of entries in basket.

Definition at line 64 of file TBasket.h.

◆ fNevBufSize

Int_t TBasket::fNevBufSize {0}
protected

Length in Int_t of fEntryOffset OR fixed length of each entry if fEntryOffset is null!

Definition at line 63 of file TBasket.h.

◆ fNextBufferSizeRecord

UChar_t TBasket::fNextBufferSizeRecord {0}
protected

! Index into fLastWriteBufferSize of the last buffer written to disk

Definition at line 77 of file TBasket.h.

◆ fOwnsCompressedBuffer

Bool_t TBasket::fOwnsCompressedBuffer {kFALSE}
protected

! Whether or not we own the compressed buffer.

Definition at line 68 of file TBasket.h.

◆ fReadEntryOffset

Bool_t TBasket::fReadEntryOffset {kFALSE}
protected

!Set to true if offset array was read from a file.

Definition at line 69 of file TBasket.h.

◆ fResetAllocation

Bool_t TBasket::fResetAllocation {false}
protected

! True if last reset re-allocated the memory

Definition at line 76 of file TBasket.h.

◆ kIOBitCount

constexpr int TBasket::kIOBitCount = 1
staticconstexpr

Definition at line 111 of file TBasket.h.

Libraries for TBasket:
[legend]

The documentation for this class was generated from the following files: