60 :
TBuffer(mode, bufsiz, buf, adopt, reallocfunc)
81 return file->GetVersion();
237 if (!obj || !
fMap || !ptrClass)
244 if (clActual && (ptrClass != clActual)) {
245 const char *temp = (
const char *)obj;
357 if (number < 0 || number >= nindex) {
358 Error(
"TagStreamerInfo",
"StreamerInfo: %s number: %d out of range[0,%d] in file: %s", info->
GetName(), number,
359 nindex,
file->GetName());
362 if (cindex->
fArray[number] == 0) {
364 cindex->
fArray[number] = 1;
374 char **arr = (
char **)
a->GetObjectRef(0);
375 char **end = arr + nobjects;
387 char **arr =
reinterpret_cast<char **
>(
a->GetObjectRef(0));
391 char **end = arr + nobjects;
404 Warning(
"ReadBuffer",
"The file was written during several processes with an "
405 "older ROOT version; the TRefTable entries might be inconsistent.");
411 if (
file &&
file->GetNProcessIDs() > 0) {
413 fileProcessID = (
TProcessID *)
file->GetListOfProcessIDs()->Last();
415 return fileProcessID;
434 pid =
file->ReadProcessID(pidf);
461 return file->WriteProcessID(pid);
471 virtual ~DynamicType() {}
500 Error(
"WriteObjectAny",
"ptrClass argument may not be 0");
510 DynamicType *d_ptr = (DynamicType *)obj;
511 Warning(
"WriteObjectAny",
"An object of type %s (from type_info) passed through a %s pointer was truncated (due "
512 "a missing dictionary)!!!",
513 typeid(*d_ptr).name(), ptrClass->
GetName());
516 }
else if (clActual && (clActual != ptrClass)) {
517 const char *temp = (
const char *)obj;
R__EXTERN TVirtualMutex * gInterpreterMutex
char *(* ReAllocCharFun_t)(char *, size_t, size_t)
#define R__LOCKGUARD_IMT(mutex)
Array of chars or bytes (8 bits per element).
Direct subclass of TBuffer, implements common methods for TBufferFile and TBufferText classes.
static void SetGlobalReadParam(Int_t mapsize)
Set the initial size of the map used to store object and class references during reading.
virtual UInt_t GetTRefExecId()
Return the exec id stored in the current TStreamerInfo element.
virtual void ResetMap()
Delete existing fMap and reset map counter.
static void SetGlobalWriteParam(Int_t mapsize)
Set the initial size of the map used to store object and class references during reading.
virtual void GetMappedObject(UInt_t tag, void *&ptr, TClass *&ClassPtr) const
Retrieve the object stored in the buffer's object map at 'tag' Set ptr and ClassPtr respectively to t...
virtual Int_t WriteClones(TClonesArray *a, Int_t nobjects)
Interface to TStreamerInfo::WriteBufferClones.
virtual UShort_t WriteProcessID(TProcessID *pid)
Check if the ProcessID pid is already in the file.
virtual void WriteObjectClass(const void *actualObjStart, const TClass *actualClass, Bool_t cacheReuse)=0
TExMap * fMap
Map containing object,offset pairs for reading/writing.
virtual void SetWriteParam(Int_t mapsize)
Set the initial size of the hashtable used to store object and class references during writing.
virtual Int_t ReadClones(TClonesArray *a, Int_t nobjects, Version_t objvers)
Interface to TStreamerInfo::ReadBufferClones.
virtual void MapObject(const TObject *obj, UInt_t offset=1)
Add object to the fMap container.
virtual void SetPidOffset(UShort_t offset)
This offset is used when a key (or basket) is transfered from one file to the other.
virtual void ForceWriteInfo(TVirtualStreamerInfo *info, Bool_t force)
force writing the TStreamerInfo to the file
Long64_t GetObjectTag(const void *obj)
Returns tag for specified object from objects map (if exists) Returns 0 if object not included into o...
virtual Int_t GetVersionOwner() const
Return the version number of the owner file.
virtual TProcessID * GetLastProcessID(TRefTable *reftable) const
Return the last TProcessID in the file.
virtual void TagStreamerInfo(TVirtualStreamerInfo *info)
Mark the classindex of the current file as using this TStreamerInfo.
TExMap * fClassMap
Map containing object,class pairs for reading.
virtual Bool_t CheckObject(const TObject *obj)
Check if the specified object is already in the buffer.
Int_t fDisplacement
Value to be added to the map offsets.
virtual void ForceWriteInfoClones(TClonesArray *a)
Make sure TStreamerInfo is not optimized, otherwise it will not be possible to support schema evoluti...
static R__ALWAYS_INLINE ULong_t Void_Hash(const void *ptr)
Return hash value for provided object.
virtual ~TBufferIO()
destructor
virtual void WriteObject(const TObject *obj, Bool_t cacheReuse=kTRUE)
Write object to I/O buffer.
virtual void Reset()
Reset buffer object. Resets map and buffer offset.
virtual Int_t WriteObjectAny(const void *obj, const TClass *ptrClass, Bool_t cacheReuse=kTRUE)
Write object to I/O buffer.
virtual TProcessID * ReadProcessID(UShort_t pidf)
The TProcessID with number pidf is read from file.
virtual void CheckCount(UInt_t)
Int_t fMapCount
Number of objects or classes in map.
static Int_t GetGlobalReadParam()
Get default read map size.
virtual void SetReadParam(Int_t mapsize)
Set the initial size of the map used to store object and class references during reading.
static Int_t fgMapSize
Default map size for all TBuffer objects.
UShort_t fPidOffset
Offset to be added to the pid index in this key/buffer.
virtual void InitMap()
Create the fMap container and initialize them with the null object.
Int_t fMapSize
Default size of map.
static Int_t GetGlobalWriteParam()
Get default write map size.
Buffer base class used for serializing objects.
virtual Int_t ApplySequenceVecPtr(const TStreamerInfoActions::TActionSequence &sequence, void *start_collection, void *end_collection)=0
TObject * GetParent() const
Return pointer to parent of this buffer.
void SetBufferOffset(Int_t offset=0)
The ROOT global object gROOT contains a list of all defined classes.
Int_t GetBaseClassOffset(const TClass *toBase, void *address=0, bool isDerivedObject=true)
TClass * GetActualClass(const void *object) const
Return a pointer the the real class of the object.
An array of clone (identical) objects.
This class stores a (key,value) pair using an external hash.
void Delete(Option_t *opt="")
Delete all entries stored in the TExMap.
void Add(ULong64_t hash, Long64_t key, Long64_t value)
Add an (key,value) pair to the table. The key should be unique.
Long64_t GetValue(ULong64_t hash, Long64_t key)
Return the value belonging to specified key and hash value.
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format.
virtual const char * GetName() const
Returns name of object.
Mother of all ROOT objects.
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual UInt_t GetUniqueID() const
Return the unique object id.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
A TProcessID identifies a ROOT job in a unique way in time and space.
static TProcessID * GetProcessID(UShort_t pid)
static function returning a pointer to TProcessID number pid in fgPIDs
static TProcessID * GetPID()
static: returns pointer to current TProcessID
A TRefTable maintains the association between a referenced object and the parent object supporting th...
Describe Streamer information for one class version.
TStreamerInfoActions::TActionSequence * GetWriteMemberWiseActions(Bool_t forCollection)
static TStreamerElement * GetCurrentElement()
static function returning a pointer to the current TStreamerElement fgElement points to the current T...
TStreamerInfoActions::TActionSequence * GetReadMemberWiseActions(Bool_t forCollection)
Abstract Interface class describing Streamer information for one class.
virtual void ForceWriteInfo(TFile *file, Bool_t force=kFALSE)=0
virtual Int_t GetNumber() const =0