Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TBufferIO Class Referenceabstract

Direct subclass of TBuffer, implements common methods for TBufferFile and TBufferText classes.

Definition at line 30 of file TBufferIO.h.

Public Types

enum  { kMapSize = 503 }
 
enum  EStatusBits {
  kNotDecompressed = (1ULL << ( 15 )) , kTextBasedStreaming = (1ULL << ( 18 )) , kUser1 = (1ULL << ( 21 )) , kUser2 = (1ULL << ( 22 )) ,
  kUser3 = (1ULL << ( 23 ))
}
 
- Public Types inherited from TBuffer
enum  { kInitialSize = 1024 , kMinimalSize = 128 }
 
enum  EMode { kRead = 0 , kWrite = 1 }
 
enum  EStatusBits { kIsOwner = (1ULL << ( 16 )) , kCannotHandleMemberWiseStreaming = (1ULL << ( 17 )) }
 
- Public Types inherited from TObject
enum  {
  kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 ,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = (1ULL << ( 0 )) , kOverwrite = (1ULL << ( 1 )) , kWriteDelete = (1ULL << ( 2 )) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = (1ULL << ( 3 )) }
 
enum  EStatusBits {
  kCanDelete = (1ULL << ( 0 )) , kMustCleanup = (1ULL << ( 3 )) , kIsReferenced = (1ULL << ( 4 )) , kHasUUID = (1ULL << ( 5 )) ,
  kCannotPick = (1ULL << ( 6 )) , kNoContextMenu = (1ULL << ( 8 )) , kInvalidObject = (1ULL << ( 13 ))
}
 

Public Member Functions

 ~TBufferIO () override
 destructor
 
Bool_t CheckObject (const TObject *obj) override
 Check if the specified object is already in the buffer.
 
Bool_t CheckObject (const void *obj, const TClass *ptrClass) override
 Check if the specified object of the specified class is already in the buffer.
 
void ForceWriteInfo (TVirtualStreamerInfo *info, Bool_t force) override
 force writing the TStreamerInfo to the file
 
void ForceWriteInfoClones (TClonesArray *a) override
 Make sure TStreamerInfo is not optimized, otherwise it will not be possible to support schema evolution in read mode.
 
Int_t GetBufferDisplacement () const override
 
TProcessIDGetLastProcessID (TRefTable *reftable) const override
 Return the last TProcessID in the file.
 
Int_t GetMapCount () const override
 
void GetMappedObject (UInt_t tag, void *&ptr, TClass *&ClassPtr) const override
 Retrieve the object stored in the buffer's object map at 'tag' Set ptr and ClassPtr respectively to the address of the object and a pointer to its TClass.
 
UShort_t GetPidOffset () const override
 
UInt_t GetTRefExecId () override
 Return the exec id stored in the current TStreamerInfo element.
 
Int_t GetVersionOwner () const override
 Return the version number of the owner file.
 
void InitMap () override
 Create the fMap container and initialize them with the null object.
 
TClassIsA () const override
 
void MapObject (const TObject *obj, UInt_t offset=1) override
 Add object to the fMap container.
 
void MapObject (const void *obj, const TClass *cl, UInt_t offset=1) override
 Add object to the fMap container.
 
Int_t ReadClones (TClonesArray *a, Int_t nobjects, Version_t objvers) override
 Interface to TStreamerInfo::ReadBufferClones.
 
TProcessIDReadProcessID (UShort_t pidf) override
 The TProcessID with number pidf is read from file.
 
void Reset () override
 Reset buffer object. Resets map and buffer offset.
 
void ResetMap () override
 Delete existing fMap and reset map counter.
 
void SetBufferDisplacement () override
 
void SetBufferDisplacement (Int_t skipped) override
 
void SetPidOffset (UShort_t offset) override
 This offset is used when a key (or basket) is transfered from one file to the other.
 
void SetReadParam (Int_t mapsize) override
 Set the initial size of the map used to store object and class references during reading.
 
void SetWriteParam (Int_t mapsize) override
 Set the initial size of the hashtable used to store object and class references during writing.
 
void Streamer (TBuffer &) override
 Stream an object of class TObject.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
void TagStreamerInfo (TVirtualStreamerInfo *info) override
 Mark the classindex of the current file as using this TStreamerInfo.
 
Int_t WriteClones (TClonesArray *a, Int_t nobjects) override
 Interface to TStreamerInfo::WriteBufferClones.
 
template<class T >
Int_t WriteObject (const T *objptr, Bool_t cacheReuse=kTRUE)
 
virtual void WriteObject (const TObject *obj, Bool_t cacheReuse)=0
 
void WriteObject (const TObject *obj, Bool_t cacheReuse=kTRUE) override
 Write object to I/O buffer.
 
Int_t WriteObjectAny (const void *obj, const TClass *ptrClass, Bool_t cacheReuse=kTRUE) override
 Write object to I/O buffer.
 
UShort_t WriteProcessID (TProcessID *pid) override
 Check if the ProcessID pid is already in the file.
 
- Public Member Functions inherited from TBuffer
 TBuffer (EMode mode)
 Create an I/O buffer object.
 
 TBuffer (EMode mode, Int_t bufsiz)
 Create an I/O buffer object.
 
 TBuffer (EMode mode, Int_t bufsiz, void *buf, Bool_t adopt=kTRUE, ReAllocCharFun_t reallocfunc=nullptr)
 Create an I/O buffer object.
 
virtual ~TBuffer ()
 Delete an I/O buffer object.
 
virtual Int_t ApplySequence (const TStreamerInfoActions::TActionSequence &sequence, void *object)=0
 
virtual Int_t ApplySequence (const TStreamerInfoActions::TActionSequence &sequence, void *start_collection, void *end_collection)=0
 
virtual Int_t ApplySequenceVecPtr (const TStreamerInfoActions::TActionSequence &sequence, void *start_collection, void *end_collection)=0
 
void AutoExpand (Int_t size_needed)
 Automatically calculate a new size and expand the buffer to fit at least size_needed.
 
char * Buffer () const
 
Int_t BufferSize () const
 
Bool_t ByteSwapBuffer (Long64_t n, EDataType type)
 Byte-swap N primitive-elements in the buffer.
 
virtual Int_t CheckByteCount (UInt_t startpos, UInt_t bcnt, const char *classname)=0
 
virtual Int_t CheckByteCount (UInt_t startpos, UInt_t bcnt, const TClass *clss)=0
 
virtual void ClassBegin (const TClass *, Version_t=-1)=0
 
virtual void ClassEnd (const TClass *)=0
 
virtual void ClassMember (const char *, const char *=nullptr, Int_t=-1, Int_t=-1)=0
 
virtual void DecrementLevel (TVirtualStreamerInfo *)=0
 
void DetachBuffer ()
 
void Expand (Int_t newsize, Bool_t copy=kTRUE)
 Expand (or shrink) the I/O buffer to newsize bytes.
 
Int_t GetBufferVersion () const
 
char * GetCurrent () const
 
virtual TVirtualStreamerInfoGetInfo ()=0
 
TObjectGetParent () const
 Return pointer to parent of this buffer.
 
ReAllocCharFun_t GetReAllocFunc () const
 Return the reallocation method currently used.
 
virtual void IncrementLevel (TVirtualStreamerInfo *info)=0
 
Bool_t IsReading () const
 
Bool_t IsWriting () const
 
Int_t Length () const
 
virtual TVirtualArrayPeekDataCache () const
 Return the 'current' data cache area from the list of area to be used for temporarily store 'missing' data members.
 
virtual TVirtualArrayPopDataCache ()
 Pop and Return the 'current' data cache area from the list of area to be used for temporarily store 'missing' data members.
 
virtual void PushDataCache (TVirtualArray *)
 Push a new data cache area onto the list of area to be used for temporarily store 'missing' data members.
 
virtual Int_t ReadArray (Bool_t *&b)=0
 
virtual Int_t ReadArray (Char_t *&c)=0
 
virtual Int_t ReadArray (Double_t *&d)=0
 
virtual Int_t ReadArray (Float_t *&f)=0
 
virtual Int_t ReadArray (Int_t *&i)=0
 
virtual Int_t ReadArray (Long64_t *&l)=0
 
virtual Int_t ReadArray (Long_t *&l)=0
 
virtual Int_t ReadArray (Short_t *&h)=0
 
virtual Int_t ReadArray (UChar_t *&c)=0
 
virtual Int_t ReadArray (UInt_t *&i)=0
 
virtual Int_t ReadArray (ULong64_t *&l)=0
 
virtual Int_t ReadArray (ULong_t *&l)=0
 
virtual Int_t ReadArray (UShort_t *&h)=0
 
virtual Int_t ReadArrayDouble32 (Double_t *&d, TStreamerElement *ele=nullptr)=0
 
virtual Int_t ReadArrayFloat16 (Float_t *&f, TStreamerElement *ele=nullptr)=0
 
virtual void ReadBool (Bool_t &b)=0
 
virtual Int_t ReadBuf (void *buf, Int_t max)=0
 
virtual void ReadChar (Char_t &c)=0
 
virtual void ReadCharP (Char_t *c)=0
 
virtual void ReadCharStar (char *&s)=0
 
virtual TClassReadClass (const TClass *cl=nullptr, UInt_t *objTag=nullptr)=0
 
virtual Int_t ReadClassBuffer (const TClass *cl, void *pointer, const TClass *onfile_class=nullptr)=0
 
virtual Int_t ReadClassBuffer (const TClass *cl, void *pointer, Int_t version, UInt_t start, UInt_t count, const TClass *onfile_class=nullptr)=0
 
virtual Int_t ReadClassEmulated (const TClass *cl, void *object, const TClass *onfile_class=nullptr)=0
 
virtual void ReadDouble (Double_t &d)=0
 
virtual void ReadDouble32 (Double_t *d, TStreamerElement *ele=nullptr)=0
 
virtual void ReadFastArray (Bool_t *b, Int_t n)=0
 
virtual void ReadFastArray (Char_t *c, Int_t n)=0
 
virtual void ReadFastArray (Double_t *d, Int_t n)=0
 
virtual void ReadFastArray (Float_t *f, Int_t n)=0
 
virtual void ReadFastArray (Int_t *i, Int_t n)=0
 
virtual void ReadFastArray (Long64_t *l, Int_t n)=0
 
virtual void ReadFastArray (Long_t *l, Int_t n)=0
 
virtual void ReadFastArray (Short_t *h, Int_t n)=0
 
virtual void ReadFastArray (UChar_t *c, Int_t n)=0
 
virtual void ReadFastArray (UInt_t *i, Int_t n)=0
 
virtual void ReadFastArray (ULong64_t *l, Int_t n)=0
 
virtual void ReadFastArray (ULong_t *l, Int_t n)=0
 
virtual void ReadFastArray (UShort_t *h, Int_t n)=0
 
virtual void ReadFastArray (void **startp, const TClass *cl, Int_t n=1, Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=nullptr, const TClass *onFileClass=nullptr)=0
 
virtual void ReadFastArray (void *start, const TClass *cl, Int_t n=1, TMemberStreamer *s=nullptr, const TClass *onFileClass=nullptr)=0
 
virtual void ReadFastArrayDouble32 (Double_t *d, Int_t n, TStreamerElement *ele=nullptr)=0
 
virtual void ReadFastArrayFloat16 (Float_t *f, Int_t n, TStreamerElement *ele=nullptr)=0
 
virtual void ReadFastArrayString (Char_t *c, Int_t n)=0
 
virtual void ReadFastArrayWithFactor (Double_t *ptr, Int_t n, Double_t factor, Double_t minvalue)=0
 
virtual void ReadFastArrayWithFactor (Float_t *ptr, Int_t n, Double_t factor, Double_t minvalue)=0
 
virtual void ReadFastArrayWithNbits (Double_t *ptr, Int_t n, Int_t nbits)=0
 
virtual void ReadFastArrayWithNbits (Float_t *ptr, Int_t n, Int_t nbits)=0
 
virtual void ReadFloat (Float_t &f)=0
 
virtual void ReadFloat16 (Float_t *f, TStreamerElement *ele=nullptr)=0
 
virtual void ReadInt (Int_t &i)=0
 
virtual void ReadLong (Long_t &l)=0
 
virtual void ReadLong64 (Long64_t &l)=0
 
virtual TObjectReadObject (const TClass *cl)=0
 
virtual void * ReadObjectAny (const TClass *cast)=0
 
virtual void ReadShort (Short_t &s)=0
 
virtual Int_t ReadStaticArray (Bool_t *b)=0
 
virtual Int_t ReadStaticArray (Char_t *c)=0
 
virtual Int_t ReadStaticArray (Double_t *d)=0
 
virtual Int_t ReadStaticArray (Float_t *f)=0
 
virtual Int_t ReadStaticArray (Int_t *i)=0
 
virtual Int_t ReadStaticArray (Long64_t *l)=0
 
virtual Int_t ReadStaticArray (Long_t *l)=0
 
virtual Int_t ReadStaticArray (Short_t *h)=0
 
virtual Int_t ReadStaticArray (UChar_t *c)=0
 
virtual Int_t ReadStaticArray (UInt_t *i)=0
 
virtual Int_t ReadStaticArray (ULong64_t *l)=0
 
virtual Int_t ReadStaticArray (ULong_t *l)=0
 
virtual Int_t ReadStaticArray (UShort_t *h)=0
 
virtual Int_t ReadStaticArrayDouble32 (Double_t *d, TStreamerElement *ele=nullptr)=0
 
virtual Int_t ReadStaticArrayFloat16 (Float_t *f, TStreamerElement *ele=nullptr)=0
 
virtual void ReadStdString (std::string &s)
 
virtual void ReadStdString (std::string *s)=0
 
virtual char * ReadString (char *s, Int_t max)=0
 
virtual void ReadTString (TString &s)=0
 
virtual void ReadUChar (UChar_t &c)=0
 
virtual void ReadUInt (UInt_t &i)=0
 
virtual void ReadULong (ULong_t &l)=0
 
virtual void ReadULong64 (ULong64_t &l)=0
 
virtual void ReadUShort (UShort_t &s)=0
 
virtual Version_t ReadVersion (UInt_t *start=nullptr, UInt_t *bcnt=nullptr, const TClass *cl=nullptr)=0
 
virtual Version_t ReadVersionForMemberWise (const TClass *cl=nullptr)=0
 
virtual Version_t ReadVersionNoCheckSum (UInt_t *start=nullptr, UInt_t *bcnt=nullptr)=0
 
virtual void ReadWithFactor (Double_t *ptr, Double_t factor, Double_t minvalue)=0
 
virtual void ReadWithFactor (Float_t *ptr, Double_t factor, Double_t minvalue)=0
 
virtual void ReadWithNbits (Double_t *ptr, Int_t nbits)=0
 
virtual void ReadWithNbits (Float_t *ptr, Int_t nbits)=0
 
void SetBuffer (void *buf, UInt_t bufsiz=0, Bool_t adopt=kTRUE, ReAllocCharFun_t reallocfunc=nullptr)
 Sets a new buffer in an existing TBuffer object.
 
void SetBufferOffset (Int_t offset=0)
 
virtual void SetByteCount (UInt_t cntpos, Bool_t packInVersion=kFALSE)=0
 
void SetParent (TObject *parent)
 Set parent owning this buffer.
 
void SetReadMode ()
 Set buffer in read mode.
 
void SetReAllocFunc (ReAllocCharFun_t reallocfunc=nullptr)
 Set which memory reallocation method to use.
 
virtual void SetStreamerElementNumber (TStreamerElement *elem, Int_t comp_type)=0
 
void SetWriteMode ()
 Set buffer in write mode.
 
virtual void SkipObjectAny ()=0
 
virtual void SkipVersion (const TClass *cl=nullptr)=0
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
virtual void StreamObject (TObject *obj)=0
 
virtual void StreamObject (void *obj, const char *className, const TClass *onFileClass=nullptr)=0
 
virtual void StreamObject (void *obj, const std::type_info &typeinfo, const TClass *onFileClass=nullptr)=0
 
virtual void StreamObject (void *obj, const TClass *cl, const TClass *onFileClass=nullptr)=0
 
virtual void WriteArray (const Bool_t *b, Int_t n)=0
 
virtual void WriteArray (const Char_t *c, Int_t n)=0
 
virtual void WriteArray (const Double_t *d, Int_t n)=0
 
virtual void WriteArray (const Float_t *f, Int_t n)=0
 
virtual void WriteArray (const Int_t *i, Int_t n)=0
 
virtual void WriteArray (const Long64_t *l, Int_t n)=0
 
virtual void WriteArray (const Long_t *l, Int_t n)=0
 
virtual void WriteArray (const Short_t *h, Int_t n)=0
 
virtual void WriteArray (const UChar_t *c, Int_t n)=0
 
virtual void WriteArray (const UInt_t *i, Int_t n)=0
 
virtual void WriteArray (const ULong64_t *l, Int_t n)=0
 
virtual void WriteArray (const ULong_t *l, Int_t n)=0
 
virtual void WriteArray (const UShort_t *h, Int_t n)=0
 
virtual void WriteArrayDouble32 (const Double_t *d, Int_t n, TStreamerElement *ele=nullptr)=0
 
virtual void WriteArrayFloat16 (const Float_t *f, Int_t n, TStreamerElement *ele=nullptr)=0
 
virtual void WriteBool (Bool_t b)=0
 
virtual void WriteBuf (const void *buf, Int_t max)=0
 
virtual void WriteChar (Char_t c)=0
 
virtual void WriteCharP (const Char_t *c)=0
 
virtual void WriteCharStar (char *s)=0
 
virtual void WriteClass (const TClass *cl)=0
 
virtual Int_t WriteClassBuffer (const TClass *cl, void *pointer)=0
 
virtual void WriteDouble (Double_t d)=0
 
virtual void WriteDouble32 (Double_t *d, TStreamerElement *ele=nullptr)=0
 
virtual void WriteFastArray (const Bool_t *b, Long64_t n)=0
 
virtual void WriteFastArray (const Char_t *c, Long64_t n)=0
 
virtual void WriteFastArray (const Double_t *d, Long64_t n)=0
 
virtual void WriteFastArray (const Float_t *f, Long64_t n)=0
 
virtual void WriteFastArray (const Int_t *i, Long64_t n)=0
 
virtual void WriteFastArray (const Long64_t *l, Long64_t n)=0
 
virtual void WriteFastArray (const Long_t *l, Long64_t n)=0
 
virtual void WriteFastArray (const Short_t *h, Long64_t n)=0
 
virtual void WriteFastArray (const UChar_t *c, Long64_t n)=0
 
virtual void WriteFastArray (const UInt_t *i, Long64_t n)=0
 
virtual void WriteFastArray (const ULong64_t *l, Long64_t n)=0
 
virtual void WriteFastArray (const ULong_t *l, Long64_t n)=0
 
virtual void WriteFastArray (const UShort_t *h, Long64_t n)=0
 
virtual Int_t WriteFastArray (void **startp, const TClass *cl, Long64_t n=1, Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=nullptr)=0
 
virtual void WriteFastArray (void *start, const TClass *cl, Long64_t n=1, TMemberStreamer *s=nullptr)=0
 
virtual void WriteFastArrayDouble32 (const Double_t *d, Long64_t n, TStreamerElement *ele=nullptr)=0
 
virtual void WriteFastArrayFloat16 (const Float_t *f, Long64_t n, TStreamerElement *ele=nullptr)=0
 
virtual void WriteFastArrayString (const Char_t *c, Long64_t n)=0
 
virtual void WriteFloat (Float_t f)=0
 
virtual void WriteFloat16 (Float_t *f, TStreamerElement *ele=nullptr)=0
 
virtual void WriteInt (Int_t i)=0
 
virtual void WriteLong (Long_t l)=0
 
virtual void WriteLong64 (Long64_t l)=0
 
template<class T >
Int_t WriteObject (const T *objptr, Bool_t cacheReuse=kTRUE)
 
virtual void WriteShort (Short_t s)=0
 
virtual void WriteStdString (const std::string *s)=0
 
virtual void WriteStdString (std::string &s)
 
virtual void WriteString (const char *s)=0
 
virtual void WriteTString (const TString &s)=0
 
virtual void WriteUChar (UChar_t c)=0
 
virtual void WriteUInt (UInt_t i)=0
 
virtual void WriteULong (ULong_t l)=0
 
virtual void WriteULong64 (ULong64_t l)=0
 
virtual void WriteUShort (UShort_t s)=0
 
virtual UInt_t WriteVersion (const TClass *cl, Bool_t useBcnt=kFALSE)=0
 
virtual UInt_t WriteVersionMemberWise (const TClass *cl, Bool_t useBcnt=kFALSE)=0
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor.
 
 TObject (const TObject &object)
 TObject copy ctor.
 
virtual ~TObject ()
 TObject destructor.
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract.
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad.
 
virtual void Browse (TBrowser *b)
 Browse object. May be overridden for another default action.
 
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.
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs.
 
virtual void Clear (Option_t *="")
 
virtual TObjectClone (const char *newname="") const
 Make a clone of an object using the Streamer facility.
 
virtual Int_t Compare (const TObject *obj) const
 Compare abstract method.
 
virtual void Copy (TObject &object) const
 Copy this to obj.
 
virtual void Delete (Option_t *option="")
 Delete this object.
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object.
 
virtual void Draw (Option_t *option="")
 Default Draw method for all objects.
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs.
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1).
 
virtual void Dump () const
 Dump contents of object on stdout.
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message.
 
virtual void Execute (const char *method, const char *params, Int_t *error=nullptr)
 Execute method on this object with the given parameter string, e.g.
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr)
 Execute method on this object with parameters stored in the TObjArray.
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py).
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message.
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes.
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes.
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object.
 
virtual const char * GetIconName () const
 Returns mime type name of object.
 
virtual const char * GetName () const
 Returns name of object.
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py).
 
virtual Option_tGetOption () const
 
virtual const char * GetTitle () const
 Returns title of object.
 
virtual UInt_t GetUniqueID () const
 Return the unique object id.
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out.
 
virtual ULong_t Hash () const
 Return hash value for this object.
 
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.
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message.
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname".
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl.
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas.
 
void InvertBit (UInt_t f)
 
Bool_t IsDestructed () const
 IsDestructed.
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory).
 
virtual Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
virtual Bool_t IsSortable () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
virtual void ls (Option_t *option="") const
 The ls function lists the contents of a class on stdout.
 
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).
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification (the base implementation is no-op).
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete.
 
void operator delete (void *ptr)
 Operator delete.
 
void operator delete[] (void *ptr)
 Operator delete [].
 
void * operator new (size_t sz)
 
void * operator new (size_t sz, void *vp)
 
void * operator new[] (size_t sz)
 
void * operator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator.
 
virtual void Paint (Option_t *option="")
 This method must be overridden if a class wants to paint itself.
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list.
 
virtual void Print (Option_t *option="") const
 This method must be overridden when a class wants to print itself.
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list.
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename.
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out".
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f.
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object.
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message.
 
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.
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message.
 

Static Public Member Functions

static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
static Int_t GetGlobalReadParam ()
 Get default read map size.
 
static Int_t GetGlobalWriteParam ()
 Get default write map size.
 
static void SetGlobalReadParam (Int_t mapsize)
 Set the initial size of the map used to store object and class references during reading.
 
static void SetGlobalWriteParam (Int_t mapsize)
 Set the initial size of the map used to store object and class references during reading.
 
- Static Public Member Functions inherited from TBuffer
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
static TClassGetClass (const char *className)
 Forward to TROOT::GetClass().
 
static TClassGetClass (const std::type_info &typeinfo)
 Forward to TROOT::GetClass().
 
- Static Public Member Functions inherited from TObject
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
static Longptr_t GetDtorOnly ()
 Return destructor only flag.
 
static Bool_t GetObjectStat ()
 Get status of object stat flag.
 
static void SetDtorOnly (void *obj)
 Set destructor only flag.
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable.
 

Protected Types

enum  { kNullTag = 0 }
 
- Protected Types inherited from TBuffer
typedef std::vector< TVirtualArray * > CacheList_t
 
- Protected Types inherited from TObject
enum  { kOnlyPrepStep = (1ULL << ( 3 )) }
 

Protected Member Functions

 TBufferIO ()
 
 TBufferIO (TBuffer::EMode mode)
 constructor
 
 TBufferIO (TBuffer::EMode mode, Int_t bufsiz)
 constructor
 
 TBufferIO (TBuffer::EMode mode, Int_t bufsiz, void *buf, Bool_t adopt=kTRUE, ReAllocCharFun_t reallocfunc=nullptr)
 constructor
 
virtual void CheckCount (UInt_t)
 
Long64_t GetObjectTag (const void *obj)
 Returns tag for specified object from objects map (if exists) Returns 0 if object not included into objects map.
 
virtual void WriteObjectClass (const void *actualObjStart, const TClass *actualClass, Bool_t cacheReuse)=0
 
- Protected Member Functions inherited from TBuffer
 TBuffer ()
 
 TBuffer (const TBuffer &)=delete
 
void operator= (const TBuffer &)=delete
 
Int_t Read (const char *name) override
 Read contents of object with specified name from the current directory.
 
Int_t Write (const char *name, Int_t opt, Int_t bufs) const override
 Write this object to the current directory.
 
Int_t Write (const char *name, Int_t opt, Int_t bufs) override
 Write this object to the current directory.
 
- 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).
 
void MakeZombie ()
 

Static Protected Member Functions

static R__ALWAYS_INLINE ULong_t Void_Hash (const void *ptr)
 Return hash value for provided object.
 

Protected Attributes

TExMapfClassMap {nullptr}
 Map containing object,class pairs for reading.
 
Int_t fDisplacement {0}
 Value to be added to the map offsets.
 
TExMapfMap {nullptr}
 Map containing object,offset pairs for reading/writing.
 
Int_t fMapCount {0}
 Number of objects or classes in map.
 
Int_t fMapSize {0}
 Default size of map.
 
UShort_t fPidOffset {0}
 Offset to be added to the pid index in this key/buffer.
 
- Protected Attributes inherited from TBuffer
char * fBufCur
 
char * fBuffer
 
char * fBufMax
 
Int_t fBufSize
 
CacheList_t fCacheStack
 Realloc function to be used when extending the buffer.
 
Bool_t fMode
 
TObjectfParent
 
ReAllocCharFun_t fReAllocFunc
 
Int_t fVersion
 

Static Protected Attributes

static Int_t fgMapSize = kMapSize
 Default map size for all TBuffer objects.
 

#include <TBufferIO.h>

Inheritance diagram for TBufferIO:
[legend]

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protected
Enumerator
kNullTag 

Definition at line 33 of file TBufferIO.h.

◆ anonymous enum

anonymous enum
Enumerator
kMapSize 

Definition at line 63 of file TBufferIO.h.

◆ EStatusBits

Enumerator
kNotDecompressed 
kTextBasedStreaming 
kUser1 
kUser2 
kUser3 

Definition at line 65 of file TBufferIO.h.

Constructor & Destructor Documentation

◆ TBufferIO() [1/4]

TBufferIO::TBufferIO ( )
inlineprotected

Definition at line 44 of file TBufferIO.h.

◆ TBufferIO() [2/4]

TBufferIO::TBufferIO ( TBuffer::EMode  mode)
protected

constructor

Definition at line 43 of file TBufferIO.cxx.

◆ TBufferIO() [3/4]

TBufferIO::TBufferIO ( TBuffer::EMode  mode,
Int_t  bufsiz 
)
protected

constructor

Definition at line 51 of file TBufferIO.cxx.

◆ TBufferIO() [4/4]

TBufferIO::TBufferIO ( TBuffer::EMode  mode,
Int_t  bufsiz,
void *  buf,
Bool_t  adopt = kTRUE,
ReAllocCharFun_t  reallocfunc = nullptr 
)
protected

constructor

Definition at line 59 of file TBufferIO.cxx.

◆ ~TBufferIO()

TBufferIO::~TBufferIO ( )
override

destructor

Definition at line 68 of file TBufferIO.cxx.

Member Function Documentation

◆ CheckCount()

virtual void TBufferIO::CheckCount ( UInt_t  )
inlineprotectedvirtual

Reimplemented in TBufferFile.

Definition at line 56 of file TBufferIO.h.

◆ CheckObject() [1/2]

Bool_t TBufferIO::CheckObject ( const TObject obj)
overridevirtual

Check if the specified object is already in the buffer.

Returns kTRUE if object already in the buffer, kFALSE otherwise (also if obj is 0 or TBuffer not in writing mode).

Implements TBuffer.

Definition at line 225 of file TBufferIO.cxx.

◆ CheckObject() [2/2]

Bool_t TBufferIO::CheckObject ( const void *  obj,
const TClass ptrClass 
)
overridevirtual

Check if the specified object of the specified class is already in the buffer.

Returns kTRUE if object already in the buffer, kFALSE otherwise (also if obj is 0 ).

Implements TBuffer.

Definition at line 235 of file TBufferIO.cxx.

◆ Class()

static TClass * TBufferIO::Class ( )
static
Returns
TClass describing this class

◆ Class_Name()

static const char * TBufferIO::Class_Name ( )
static
Returns
Name of this class

◆ Class_Version()

static constexpr Version_t TBufferIO::Class_Version ( )
inlinestaticconstexpr
Returns
Version of this class

Definition at line 120 of file TBufferIO.h.

◆ DeclFileName()

static const char * TBufferIO::DeclFileName ( )
inlinestatic
Returns
Name of the file containing the class declaration

Definition at line 120 of file TBufferIO.h.

◆ ForceWriteInfo()

void TBufferIO::ForceWriteInfo ( TVirtualStreamerInfo info,
Bool_t  force 
)
overridevirtual

force writing the TStreamerInfo to the file

Implements TBuffer.

Reimplemented in TMessage.

Definition at line 329 of file TBufferIO.cxx.

◆ ForceWriteInfoClones()

void TBufferIO::ForceWriteInfoClones ( TClonesArray a)
overridevirtual

Make sure TStreamerInfo is not optimized, otherwise it will not be possible to support schema evolution in read mode.

In case the StreamerInfo has already been computed and optimized, one must disable the option BypassStreamer.

Implements TBuffer.

Definition at line 341 of file TBufferIO.cxx.

◆ GetBufferDisplacement()

Int_t TBufferIO::GetBufferDisplacement ( ) const
inlineoverridevirtual

Implements TBuffer.

Definition at line 81 of file TBufferIO.h.

◆ GetGlobalReadParam()

Int_t TBufferIO::GetGlobalReadParam ( )
static

Get default read map size.

Definition at line 572 of file TBufferIO.cxx.

◆ GetGlobalWriteParam()

Int_t TBufferIO::GetGlobalWriteParam ( )
static

Get default write map size.

Definition at line 580 of file TBufferIO.cxx.

◆ GetLastProcessID()

TProcessID * TBufferIO::GetLastProcessID ( TRefTable reftable) const
overridevirtual

Return the last TProcessID in the file.

Implements TBuffer.

Definition at line 399 of file TBufferIO.cxx.

◆ GetMapCount()

Int_t TBufferIO::GetMapCount ( ) const
inlineoverridevirtual

Implements TBuffer.

Definition at line 91 of file TBufferIO.h.

◆ GetMappedObject()

void TBufferIO::GetMappedObject ( UInt_t  tag,
void *&  ptr,
TClass *&  ClassPtr 
) const
overridevirtual

Retrieve the object stored in the buffer's object map at 'tag' Set ptr and ClassPtr respectively to the address of the object and a pointer to its TClass.

Implements TBuffer.

Definition at line 260 of file TBufferIO.cxx.

◆ GetObjectTag()

Long64_t TBufferIO::GetObjectTag ( const void *  obj)
protected

Returns tag for specified object from objects map (if exists) Returns 0 if object not included into objects map.

Definition at line 277 of file TBufferIO.cxx.

◆ GetPidOffset()

UShort_t TBufferIO::GetPidOffset ( ) const
inlineoverridevirtual

Implements TBuffer.

Definition at line 79 of file TBufferIO.h.

◆ GetTRefExecId()

UInt_t TBufferIO::GetTRefExecId ( )
overridevirtual

Return the exec id stored in the current TStreamerInfo element.

The execid has been saved in the unique id of the TStreamerElement being read by TStreamerElement::Streamer. The current element (fgElement) is set as a static global by TStreamerInfo::ReadBuffer (Clones) when reading this TRef.

Implements TBuffer.

Definition at line 447 of file TBufferIO.cxx.

◆ GetVersionOwner()

Int_t TBufferIO::GetVersionOwner ( ) const
overridevirtual

Return the version number of the owner file.

Implements TBuffer.

Definition at line 77 of file TBufferIO.cxx.

◆ InitMap()

void TBufferIO::InitMap ( )
overridevirtual

Create the fMap container and initialize them with the null object.

Implements TBuffer.

Definition at line 129 of file TBufferIO.cxx.

◆ IsA()

TClass * TBufferIO::IsA ( ) const
inlineoverridevirtual
Returns
TClass describing current object

Reimplemented from TBuffer.

Reimplemented in TBufferJSON, TBufferText, TBufferSQL2, TBufferXML, TMessage, and TBufferSQL.

Definition at line 120 of file TBufferIO.h.

◆ MapObject() [1/2]

void TBufferIO::MapObject ( const TObject obj,
UInt_t  offset = 1 
)
overridevirtual

Add object to the fMap container.

If obj is not 0 add object to the map (in read mode also add 0 objects to the map). This method may only be called outside this class just before calling obj->Streamer() to prevent self reference of obj, in case obj contains (via via) a pointer to itself. In that case offset must be 1 (default value for offset).

Implements TBuffer.

Definition at line 163 of file TBufferIO.cxx.

◆ MapObject() [2/2]

void TBufferIO::MapObject ( const void *  obj,
const TClass cl,
UInt_t  offset = 1 
)
overridevirtual

Add object to the fMap container.

If obj is not 0 add object to the map (in read mode also add 0 objects to the map). This method may only be called outside this class just before calling obj->Streamer() to prevent self reference of obj, in case obj contains (via via) a pointer to itself. In that case offset must be 1 (default value for offset).

Implements TBuffer.

Definition at line 196 of file TBufferIO.cxx.

◆ ReadClones()

Int_t TBufferIO::ReadClones ( TClonesArray a,
Int_t  nobjects,
Version_t  objvers 
)
overridevirtual

Interface to TStreamerInfo::ReadBufferClones.

Implements TBuffer.

Definition at line 372 of file TBufferIO.cxx.

◆ ReadProcessID()

TProcessID * TBufferIO::ReadProcessID ( UShort_t  pidf)
overridevirtual

The TProcessID with number pidf is read from file.

If the object is not already entered in the gROOT list, it is added.

Implements TBuffer.

Definition at line 422 of file TBufferIO.cxx.

◆ Reset()

void TBufferIO::Reset ( )
overridevirtual

Reset buffer object. Resets map and buffer offset.

Implements TBuffer.

Reimplemented in TMessage.

Definition at line 305 of file TBufferIO.cxx.

◆ ResetMap()

void TBufferIO::ResetMap ( )
overridevirtual

Delete existing fMap and reset map counter.

Implements TBuffer.

Definition at line 288 of file TBufferIO.cxx.

◆ SetBufferDisplacement() [1/2]

void TBufferIO::SetBufferDisplacement ( )
inlineoverridevirtual

Implements TBuffer.

Definition at line 82 of file TBufferIO.h.

◆ SetBufferDisplacement() [2/2]

void TBufferIO::SetBufferDisplacement ( Int_t  skipped)
inlineoverridevirtual

Implements TBuffer.

Definition at line 83 of file TBufferIO.h.

◆ SetGlobalReadParam()

void TBufferIO::SetGlobalReadParam ( Int_t  mapsize)
static

Set the initial size of the map used to store object and class references during reading.

The default size is kMapSize. Increasing the default has the benefit that when reading many small objects the array does not need to be resized too often (the system is always dynamic, even with the default everything will work, only the initial resizing will cost some time). Per TBuffer object this option can be changed using SetReadParam().

Definition at line 548 of file TBufferIO.cxx.

◆ SetGlobalWriteParam()

void TBufferIO::SetGlobalWriteParam ( Int_t  mapsize)
static

Set the initial size of the map used to store object and class references during reading.

The default size is kMapSize. Increasing the default has the benefit that when reading many small objects the array does not need to be resized too often (the system is always dynamic, even with the default everything will work, only the initial resizing will cost some time). Per TBuffer object this option can be changed using SetReadParam().

Definition at line 564 of file TBufferIO.cxx.

◆ SetPidOffset()

void TBufferIO::SetPidOffset ( UShort_t  offset)
overridevirtual

This offset is used when a key (or basket) is transfered from one file to the other.

In this case the TRef and TObject might have stored a pid index (to retrieve TProcessIDs) which referred to their order on the original file, the fPidOffset is to be added to those values to correctly find the TProcessID. This fPidOffset needs to be increment if the key/basket is copied and need to be zero for new key/basket.

Implements TBuffer.

Definition at line 319 of file TBufferIO.cxx.

◆ SetReadParam()

void TBufferIO::SetReadParam ( Int_t  mapsize)
overridevirtual

Set the initial size of the map used to store object and class references during reading.

The default size is TBufferFile::kMapSize. Increasing the default has the benefit that when reading many small objects the map does not need to be resized too often (the system is always dynamic, even with the default everything will work, only the initial resizing will cost some time). This method can only be called directly after the creation of the TBuffer, before any reading is done. Globally this option can be changed using SetGlobalReadParam().

Implements TBuffer.

Definition at line 97 of file TBufferIO.cxx.

◆ SetWriteParam()

void TBufferIO::SetWriteParam ( Int_t  mapsize)
overridevirtual

Set the initial size of the hashtable used to store object and class references during writing.

The default size is TBufferFile::kMapSize. Increasing the default has the benefit that when writing many small objects the hashtable does not get too many collisions (the system is always dynamic, even with the default everything will work, only a large number of collisions will cost performance). For optimal performance hashsize should always be a prime. This method can only be called directly after the creation of the TBuffer, before any writing is done. Globally this option can be changed using SetGlobalWriteParam().

Implements TBuffer.

Definition at line 117 of file TBufferIO.cxx.

◆ Streamer()

void TBufferIO::Streamer ( TBuffer R__b)
overridevirtual

Stream an object of class TObject.

Reimplemented from TBuffer.

Reimplemented in TBufferJSON, TBufferText, TBufferSQL2, TBufferXML, TMessage, and TBufferSQL.

◆ StreamerNVirtual()

void TBufferIO::StreamerNVirtual ( TBuffer ClassDef_StreamerNVirtual_b)
inline

Definition at line 120 of file TBufferIO.h.

◆ TagStreamerInfo()

void TBufferIO::TagStreamerInfo ( TVirtualStreamerInfo info)
overridevirtual

Mark the classindex of the current file as using this TStreamerInfo.

Implements TBuffer.

Reimplemented in TMessage.

Definition at line 350 of file TBufferIO.cxx.

◆ Void_Hash()

static R__ALWAYS_INLINE ULong_t TBufferIO::Void_Hash ( const void *  ptr)
inlinestaticprotected

Return hash value for provided object.

Definition at line 53 of file TBufferIO.h.

◆ WriteClones()

Int_t TBufferIO::WriteClones ( TClonesArray a,
Int_t  nobjects 
)
overridevirtual

Interface to TStreamerInfo::WriteBufferClones.

Implements TBuffer.

Definition at line 385 of file TBufferIO.cxx.

◆ WriteObject() [1/3]

template<class T >
Int_t TBuffer::WriteObject ( const T *  objptr,
Bool_t  cacheReuse = kTRUE 
)
inline

Definition at line 159 of file TBuffer.h.

◆ WriteObject() [2/3]

virtual void TBuffer::WriteObject ( const TObject obj,
Bool_t  cacheReuse 
)
virtual

Implements TBuffer.

◆ WriteObject() [3/3]

void TBufferIO::WriteObject ( const TObject obj,
Bool_t  cacheReuse = kTRUE 
)
overridevirtual

Write object to I/O buffer.

Implements TBuffer.

Definition at line 530 of file TBufferIO.cxx.

◆ WriteObjectAny()

Int_t TBufferIO::WriteObjectAny ( const void *  obj,
const TClass ptrClass,
Bool_t  cacheReuse = kTRUE 
)
overridevirtual

Write object to I/O buffer.

This function assumes that the value in 'obj' is the value stored in a pointer to a "ptrClass". The actual type of the object pointed to can be any class derived from "ptrClass". Return:

  • 0: failure
  • 1: success
  • 2: truncated success (i.e actual class is missing. Only ptrClass saved.)

If 'cacheReuse' is true (default) upon seeing an object address a second time, we record the offset where its was written the first time rather than streaming the object a second time. If 'cacheReuse' is false, we always stream the object. This allows the (re)use of temporary object to store different data in the same buffer.

Implements TBuffer.

Definition at line 492 of file TBufferIO.cxx.

◆ WriteObjectClass()

virtual void TBufferIO::WriteObjectClass ( const void *  actualObjStart,
const TClass actualClass,
Bool_t  cacheReuse 
)
protectedpure virtual

◆ WriteProcessID()

UShort_t TBufferIO::WriteProcessID ( TProcessID pid)
overridevirtual

Check if the ProcessID pid is already in the file.

If not, add it and return the index number in the local file list.

Implements TBuffer.

Reimplemented in TMessage.

Definition at line 456 of file TBufferIO.cxx.

Member Data Documentation

◆ fClassMap

TExMap* TBufferIO::fClassMap {nullptr}
protected

Map containing object,class pairs for reading.

Definition at line 40 of file TBufferIO.h.

◆ fDisplacement

Int_t TBufferIO::fDisplacement {0}
protected

Value to be added to the map offsets.

Definition at line 37 of file TBufferIO.h.

◆ fgMapSize

Int_t TBufferIO::fgMapSize = kMapSize
staticprotected

Default map size for all TBuffer objects.

Definition at line 42 of file TBufferIO.h.

◆ fMap

TExMap* TBufferIO::fMap {nullptr}
protected

Map containing object,offset pairs for reading/writing.

Definition at line 39 of file TBufferIO.h.

◆ fMapCount

Int_t TBufferIO::fMapCount {0}
protected

Number of objects or classes in map.

Definition at line 35 of file TBufferIO.h.

◆ fMapSize

Int_t TBufferIO::fMapSize {0}
protected

Default size of map.

Definition at line 36 of file TBufferIO.h.

◆ fPidOffset

UShort_t TBufferIO::fPidOffset {0}
protected

Offset to be added to the pid index in this key/buffer.

Definition at line 38 of file TBufferIO.h.

Libraries for TBufferIO:

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