library: libCore #include "TBuffer.h" |
TBuffer
class description - header file - source file
viewCVS header - viewCVS source
class TBuffer: public TObject
Function Members (Methods)
Display options:
public:
| TBuffer(TBuffer::EMode mode) |
| TBuffer(TBuffer::EMode mode, Int_t bufsiz) |
| TBuffer(TBuffer::EMode mode, Int_t bufsiz, void* buf, Bool_t adopt = kTRUE) |
virtual | ~TBuffer() |
void | TObject::AbstractMethod(const char* method) const |
virtual void | TObject::AppendPad(Option_t* option = "") |
virtual void | TObject::Browse(TBrowser* b) |
char* | Buffer() const |
Int_t | BufferSize() const |
virtual Int_t | CheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass* clss) |
virtual Int_t | CheckByteCount(UInt_t startpos, UInt_t bcnt, const char* classname) |
Bool_t | CheckObject(const TObject* obj) |
Bool_t | CheckObject(const void* obj, const TClass* ptrClass) |
static TClass* | Class() |
virtual void | ClassBegin(const TClass*, Version_t = -1) |
virtual void | ClassEnd(const TClass*) |
virtual void | ClassMember(const char*, const char* = "0", Int_t = -1, Int_t = -1) |
virtual const char* | TObject::ClassName() const |
virtual void | TObject::Clear(Option_t* = "") |
virtual TObject* | TObject::Clone(const char* newname = "") const |
virtual Int_t | TObject::Compare(const TObject* obj) const |
virtual void | TObject::Copy(TObject& object) const |
virtual void | DecrementLevel(TStreamerInfo*) |
virtual void | TObject::Delete(Option_t* option = "") |
void | DetachBuffer() |
virtual Int_t | TObject::DistancetoPrimitive(Int_t px, Int_t py) |
virtual void | TObject::Draw(Option_t* option = "") |
virtual void | TObject::DrawClass() const |
virtual TObject* | TObject::DrawClone(Option_t* option = "") const |
virtual void | TObject::Dump() const |
virtual void | TObject::Error(const char* method, const char* msgfmt) const |
virtual void | TObject::Execute(const char* method, const char* params, Int_t* error = 0) |
virtual void | TObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0) |
virtual void | TObject::ExecuteEvent(Int_t event, Int_t px, Int_t py) |
virtual void | TObject::Fatal(const char* method, const char* msgfmt) const |
virtual TObject* | TObject::FindObject(const char* name) const |
virtual TObject* | TObject::FindObject(const TObject* obj) const |
Int_t | GetBufferDisplacement() const |
Int_t | GetBufferVersion() const |
static TClass* | GetClass(const type_info& typeinfo) |
static TClass* | GetClass(const char* className) |
virtual Option_t* | TObject::GetDrawOption() const |
static Long_t | TObject::GetDtorOnly() |
static Int_t | GetGlobalReadParam() |
static Int_t | GetGlobalWriteParam() |
virtual const char* | TObject::GetIconName() const |
TStreamerInfo* | GetInfo() |
Int_t | GetMapCount() const |
void | GetMappedObject(UInt_t tag, void*& ptr, TClass*& ClassPtr) const |
virtual const char* | TObject::GetName() const |
virtual char* | TObject::GetObjectInfo(Int_t px, Int_t py) const |
static Bool_t | TObject::GetObjectStat() |
virtual Option_t* | TObject::GetOption() const |
TObject* | GetParent() const |
UShort_t | GetPidOffset() const |
virtual const char* | TObject::GetTitle() const |
virtual UInt_t | TObject::GetUniqueID() const |
virtual Bool_t | TObject::HandleTimer(TTimer* timer) |
virtual ULong_t | TObject::Hash() const |
virtual void | IncrementLevel(TStreamerInfo* info) |
virtual void | TObject::Info(const char* method, const char* msgfmt) const |
virtual Bool_t | TObject::InheritsFrom(const char* classname) const |
virtual Bool_t | TObject::InheritsFrom(const TClass* cl) const |
void | InitMap() |
virtual void | TObject::Inspect() const |
void | TObject::InvertBit(UInt_t f) |
virtual TClass* | IsA() const |
virtual Bool_t | TObject::IsEqual(const TObject* obj) const |
virtual Bool_t | TObject::IsFolder() const |
Bool_t | TObject::IsOnHeap() const |
Bool_t | IsReading() const |
virtual Bool_t | TObject::IsSortable() const |
Bool_t | IsWriting() const |
Bool_t | TObject::IsZombie() const |
Int_t | Length() const |
virtual void | TObject::ls(Option_t* option = "") const |
void | MapObject(const TObject* obj, UInt_t offset = 1) |
void | MapObject(const void* obj, const TClass* cl, UInt_t offset = 1) |
void | TObject::MayNotUse(const char* method) const |
virtual Bool_t | TObject::Notify() |
static void | TObject::operator delete(void* ptr) |
static void | TObject::operator delete(void* ptr, void* vp) |
static void | TObject::operator delete[](void* ptr) |
static void | TObject::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 TBuffer& | operator<<(Bool_t b) |
virtual TBuffer& | operator<<(Char_t c) |
virtual TBuffer& | operator<<(UChar_t c) |
virtual TBuffer& | operator<<(Short_t h) |
virtual TBuffer& | operator<<(UShort_t h) |
virtual TBuffer& | operator<<(Int_t i) |
virtual TBuffer& | operator<<(UInt_t i) |
virtual TBuffer& | operator<<(Long_t l) |
virtual TBuffer& | operator<<(ULong_t l) |
virtual TBuffer& | operator<<(Long64_t ll) |
virtual TBuffer& | operator<<(ULong64_t ll) |
virtual TBuffer& | operator<<(Float_t f) |
virtual TBuffer& | operator<<(Double_t d) |
virtual TBuffer& | operator<<(const Char_t* c) |
virtual TBuffer& | operator>>(Bool_t& b) |
virtual TBuffer& | operator>>(Char_t& c) |
virtual TBuffer& | operator>>(UChar_t& c) |
virtual TBuffer& | operator>>(Short_t& h) |
virtual TBuffer& | operator>>(UShort_t& h) |
virtual TBuffer& | operator>>(Int_t& i) |
virtual TBuffer& | operator>>(UInt_t& i) |
virtual TBuffer& | operator>>(Long_t& l) |
virtual TBuffer& | operator>>(ULong_t& l) |
virtual TBuffer& | operator>>(Long64_t& ll) |
virtual TBuffer& | operator>>(ULong64_t& ll) |
virtual TBuffer& | operator>>(Float_t& f) |
virtual TBuffer& | operator>>(Double_t& d) |
virtual TBuffer& | operator>>(Char_t* c) |
virtual void | TObject::Paint(Option_t* option = "") |
virtual void | TObject::Pop() |
virtual void | TObject::Print(Option_t* option = "") const |
virtual Int_t | ReadArray(Bool_t*& b) |
virtual Int_t | ReadArray(Char_t*& c) |
virtual Int_t | ReadArray(UChar_t*& c) |
virtual Int_t | ReadArray(Short_t*& h) |
virtual Int_t | ReadArray(UShort_t*& h) |
virtual Int_t | ReadArray(Int_t*& i) |
virtual Int_t | ReadArray(UInt_t*& i) |
virtual Int_t | ReadArray(Long_t*& l) |
virtual Int_t | ReadArray(ULong_t*& l) |
virtual Int_t | ReadArray(Long64_t*& l) |
virtual Int_t | ReadArray(ULong64_t*& ll) |
virtual Int_t | ReadArray(Float_t*& f) |
virtual Int_t | ReadArray(Double_t*& d) |
virtual Int_t | ReadArrayDouble32(Double_t*& d, TStreamerElement* ele = 0) |
Int_t | ReadBuf(void* buf, Int_t max) |
virtual TClass* | ReadClass(const TClass* cl = 0, UInt_t* objTag = 0) |
virtual void | ReadDouble32(Double_t* d, TStreamerElement* ele = 0) |
virtual void | ReadFastArray(Bool_t* b, Int_t n) |
virtual void | ReadFastArray(Char_t* c, Int_t n) |
virtual void | ReadFastArray(UChar_t* c, Int_t n) |
virtual void | ReadFastArray(Short_t* h, Int_t n) |
virtual void | ReadFastArray(UShort_t* h, Int_t n) |
virtual void | ReadFastArray(Int_t* i, Int_t n) |
virtual void | ReadFastArray(UInt_t* i, Int_t n) |
virtual void | ReadFastArray(Long_t* l, Int_t n) |
virtual void | ReadFastArray(ULong_t* l, Int_t n) |
virtual void | ReadFastArray(Long64_t* l, Int_t n) |
virtual void | ReadFastArray(ULong64_t* ll, Int_t n) |
virtual void | ReadFastArray(Float_t* f, Int_t n) |
virtual void | ReadFastArray(Double_t* d, Int_t n) |
virtual void | ReadFastArray(void* start, const TClass* cl, Int_t n = 1, TMemberStreamer* s = 0) |
virtual void | ReadFastArray(void** startp, const TClass* cl, Int_t n = 1, Bool_t isPreAlloc = kFALSE, TMemberStreamer* s = 0) |
virtual void | ReadFastArrayDouble32(Double_t* d, Int_t n, TStreamerElement* ele = 0) |
virtual void | ReadFastArrayString(Char_t* c, Int_t n) |
virtual TObject* | ReadObject(const TClass* cl) |
virtual void* | ReadObjectAny(const TClass* cast) |
virtual Int_t | ReadStaticArray(Bool_t* b) |
virtual Int_t | ReadStaticArray(Char_t* c) |
virtual Int_t | ReadStaticArray(UChar_t* c) |
virtual Int_t | ReadStaticArray(Short_t* h) |
virtual Int_t | ReadStaticArray(UShort_t* h) |
virtual Int_t | ReadStaticArray(Int_t* i) |
virtual Int_t | ReadStaticArray(UInt_t* i) |
virtual Int_t | ReadStaticArray(Long_t* l) |
virtual Int_t | ReadStaticArray(ULong_t* l) |
virtual Int_t | ReadStaticArray(Long64_t* l) |
virtual Int_t | ReadStaticArray(ULong64_t* ll) |
virtual Int_t | ReadStaticArray(Float_t* f) |
virtual Int_t | ReadStaticArray(Double_t* d) |
virtual Int_t | ReadStaticArrayDouble32(Double_t* d, TStreamerElement* ele = 0) |
char* | ReadString(char* s, Int_t max) |
virtual Version_t | ReadVersion(UInt_t* start = 0, UInt_t* bcnt = 0, const TClass* cl = 0) |
virtual void | TObject::RecursiveRemove(TObject* obj) |
virtual void | Reset() |
void | TObject::ResetBit(UInt_t f) |
void | ResetMap() |
virtual void | TObject::SaveAs(const char* filename = "", Option_t* option = "") const |
virtual void | TObject::SavePrimitive(ostream& out, Option_t* option = "") |
void | TObject::SetBit(UInt_t f) |
void | TObject::SetBit(UInt_t f, Bool_t set) |
void | SetBuffer(void* buf, UInt_t bufsiz = 0, Bool_t adopt = kTRUE) |
void | SetBufferDisplacement() |
void | SetBufferDisplacement(Int_t skipped) |
void | SetBufferOffset(Int_t offset = 0) |
virtual void | SetByteCount(UInt_t cntpos, Bool_t packInVersion = kFALSE) |
virtual void | TObject::SetDrawOption(Option_t* option = "") |
static void | TObject::SetDtorOnly(void* obj) |
static void | SetGlobalReadParam(Int_t mapsize) |
static void | SetGlobalWriteParam(Int_t mapsize) |
static void | TObject::SetObjectStat(Bool_t stat) |
void | SetParent(TObject* parent) |
void | SetPidOffset(UShort_t offset) |
void | SetReadMode() |
void | SetReadParam(Int_t mapsize) |
virtual void | SetStreamerElementNumber(Int_t) |
virtual void | TObject::SetUniqueID(UInt_t uid) |
void | SetWriteMode() |
void | SetWriteParam(Int_t mapsize) |
virtual void | ShowMembers(TMemberInspector& insp, char* parent) |
virtual void | SkipObjectAny() |
virtual void | Streamer(TBuffer& b) |
void | StreamerNVirtual(TBuffer& b) |
virtual void | StreamObject(TObject* obj) |
virtual void | StreamObject(void* obj, const type_info& typeinfo) |
virtual void | StreamObject(void* obj, const char* className) |
virtual void | StreamObject(void* obj, const TClass* cl) |
virtual void | TObject::SysError(const char* method, const char* msgfmt) const |
Bool_t | TObject::TestBit(UInt_t f) const |
Int_t | TObject::TestBits(UInt_t f) const |
virtual void | TObject::UseCurrentStyle() |
virtual void | TObject::Warning(const char* method, const char* msgfmt) const |
virtual void | WriteArray(const Bool_t* b, Int_t n) |
virtual void | WriteArray(const Char_t* c, Int_t n) |
virtual void | WriteArray(const UChar_t* c, Int_t n) |
virtual void | WriteArray(const Short_t* h, Int_t n) |
virtual void | WriteArray(const UShort_t* h, Int_t n) |
virtual void | WriteArray(const Int_t* i, Int_t n) |
virtual void | WriteArray(const UInt_t* i, Int_t n) |
virtual void | WriteArray(const Long_t* l, Int_t n) |
virtual void | WriteArray(const ULong_t* l, Int_t n) |
virtual void | WriteArray(const Long64_t* l, Int_t n) |
virtual void | WriteArray(const ULong64_t* ll, Int_t n) |
virtual void | WriteArray(const Float_t* f, Int_t n) |
virtual void | WriteArray(const Double_t* d, Int_t n) |
virtual void | WriteArrayDouble32(const Double_t* d, Int_t n, TStreamerElement* ele = 0) |
void | WriteBuf(const void* buf, Int_t max) |
virtual void | WriteClass(const TClass* cl) |
virtual void | WriteDouble32(Double_t* d, TStreamerElement* ele = 0) |
virtual void | WriteFastArray(const Bool_t* b, Int_t n) |
virtual void | WriteFastArray(const Char_t* c, Int_t n) |
virtual void | WriteFastArray(const UChar_t* c, Int_t n) |
virtual void | WriteFastArray(const Short_t* h, Int_t n) |
virtual void | WriteFastArray(const UShort_t* h, Int_t n) |
virtual void | WriteFastArray(const Int_t* i, Int_t n) |
virtual void | WriteFastArray(const UInt_t* i, Int_t n) |
virtual void | WriteFastArray(const Long_t* l, Int_t n) |
virtual void | WriteFastArray(const ULong_t* l, Int_t n) |
virtual void | WriteFastArray(const Long64_t* l, Int_t n) |
virtual void | WriteFastArray(const ULong64_t* ll, Int_t n) |
virtual void | WriteFastArray(const Float_t* f, Int_t n) |
virtual void | WriteFastArray(const Double_t* d, Int_t n) |
virtual void | WriteFastArray(void* start, const TClass* cl, Int_t n = 1, TMemberStreamer* s = 0) |
virtual Int_t | WriteFastArray(void** startp, const TClass* cl, Int_t n = 1, Bool_t isPreAlloc = kFALSE, TMemberStreamer* s = 0) |
virtual void | WriteFastArrayDouble32(const Double_t* d, Int_t n, TStreamerElement* ele = 0) |
virtual void | WriteFastArrayString(const Char_t* c, Int_t n) |
virtual void | WriteObject(const TObject* obj) |
virtual Int_t | WriteObjectAny(const void* obj, const TClass* ptrClass) |
void | WriteString(const char* s) |
virtual UInt_t | WriteVersion(const TClass* cl, Bool_t useBcnt = kFALSE) |
virtual UInt_t | WriteVersionMemberWise(const TClass* cl, Bool_t useBcnt = kFALSE) |
protected:
| TBuffer() |
| TBuffer(const TBuffer&) |
Int_t | CheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass* clss, const char* classname) |
void | CheckCount(UInt_t offset) |
UInt_t | CheckObject(UInt_t offset, const TClass* cl, Bool_t readClass = kFALSE) |
virtual void | TObject::DoError(int level, const char* location, const char* fmt, va_list va) const |
void | Expand(Int_t newsize) |
void | TObject::MakeZombie() |
void | operator=(const TBuffer&) |
virtual Int_t | Read(const char* name) |
virtual Int_t | Write(const char* name, Int_t opt, Int_t bufs) |
virtual Int_t | Write(const char* name, Int_t opt, Int_t bufs) const |
virtual void | WriteObject(const void* actualObjStart, const TClass* actualClass) |
Data Members
protected:
Bool_t | fMode | Read or write mode |
Int_t | fVersion | Buffer format version |
Int_t | fBufSize | Size of buffer |
char* | fBuffer | Buffer used to store objects |
char* | fBufCur | Current position in buffer |
char* | fBufMax | End of buffer |
Int_t | fMapCount | Number of objects or classes in map |
Int_t | fMapSize | Default size of map |
Int_t | fDisplacement | Value to be added to the map offsets |
TExMap* | fMap | Map containing object,offset pairs for reading/writing |
TExMap* | fClassMap | Map containing object,class pairs for reading |
TObject* | fParent | Pointer to the buffer parent (file) where buffer is read/written |
TStreamerInfo* | fInfo | Pointer to TStreamerInfo object writing/reading the buffer |
vector<TStreamerInfo*,allocator<TStreamerInfo*> > | fInfos | Stack of pointers to the TStreamerInfos |
UShort_t | fPidOffset | Offset to be added to the pid index in this key/buffer. |
static Int_t | fgMapSize | Default map size for all TBuffer objects |
void SetBuffer(void *buf, UInt_t newsiz, Bool_t adopt)
Sets a new buffer in an existing TBuffer object. If newsiz=0 then the
new buffer is expected to have the same size as the previous buffer.
The current buffer position is reset to the start of the buffer.
If the TBuffer owned the previous buffer, it will be deleted prior
to accepting the new buffer. By default the new buffer will be
adopted unless adopt is false.
void CheckCount(UInt_t offset)
Check if offset is not too large (< kMaxMapCount) when writing.
UInt_t CheckObject(UInt_t offset, const TClass *cl, Bool_t readClass)
Check for object in the read map. If the object is 0 it still has to be
read. Try to read it from the buffer starting at location offset. If the
object is -1 then it really does not exist and we return 0. If the object
exists just return the offset.
Bool_t CheckObject(const void *obj, const TClass *ptrClass)
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 ).
void SetPidOffset(UShort_t offset)
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 refered 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.
void GetMappedObject(UInt_t tag, void* &ptr, TClass* &ClassPtr)
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.
void MapObject(const TObject *obj, UInt_t offset)
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).
void MapObject(const void *obj, const TClass* cl, UInt_t offset)
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).
void SetReadParam(Int_t mapsize)
Set the initial size of the map used to store object and class
references during reading. The default size is kMapSize=503.
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().
void SetWriteParam(Int_t mapsize)
Set the initial size of the hashtable used to store object and class
references during writing. The default size is kMapSize=503.
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().
void InitMap()
Create the fMap container and initialize them
with the null object.
void SetByteCount(UInt_t cntpos, Bool_t packInVersion)
Set byte count at position cntpos in the buffer. Generate warning if
count larger than kMaxMapCount. The count is excluded its own size.
Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass *clss, const char *classname)
Check byte count with current buffer position. They should
match. If not print warning and position buffer in correct
place determined by the byte count. Startpos is position of
first byte where the byte count is written in buffer.
Returns 0 if everything is ok, otherwise the bytecount offset
(< 0 when read too little, >0 when read too much).
Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass *clss)
Check byte count with current buffer position. They should
match. If not print warning and position buffer in correct
place determined by the byte count. Startpos is position of
first byte where the byte count is written in buffer.
Returns 0 if everything is ok, otherwise the bytecount offset
(< 0 when read too little, >0 when read too much).
Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const char *classname)
Check byte count with current buffer position. They should
match. If not print warning and position buffer in correct
place determined by the byte count. Startpos is position of
first byte where the byte count is written in buffer.
Returns 0 if everything is ok, otherwise the bytecount offset
(< 0 when read too little, >0 when read too much).
Int_t ReadBuf(void *buf, Int_t max)
Read max bytes from the I/O buffer into buf. The function returns
the actual number of bytes read.
Text_t * ReadString(Text_t *s, Int_t max)
Read string from I/O buffer. String is read till 0 character is
found or till max-1 characters are read (i.e. string s has max
bytes allocated). If max = -1 no check on number of character is
made, reading continues till 0 character is found.
void WriteString(const Text_t *s)
Write string to I/O buffer. Writes string upto and including the
terminating 0.
Int_t ReadArray(Bool_t *&b)
Read array of bools from the I/O buffer. Returns the number of
bools read. If argument is a 0 pointer then space will be
allocated for the array.
Int_t ReadArray(Char_t *&c)
Read array of characters from the I/O buffer. Returns the number of
characters read. If argument is a 0 pointer then space will be
allocated for the array.
Int_t ReadArray(Short_t *&h)
Read array of shorts from the I/O buffer. Returns the number of shorts
read. If argument is a 0 pointer then space will be allocated for the
array.
Int_t ReadArray(Int_t *&ii)
Read array of ints from the I/O buffer. Returns the number of ints
read. If argument is a 0 pointer then space will be allocated for the
array.
Int_t ReadArray(Long_t *&ll)
Read array of longs from the I/O buffer. Returns the number of longs
read. If argument is a 0 pointer then space will be allocated for the
array.
Int_t ReadArray(Long64_t *&ll)
Read array of long longs from the I/O buffer. Returns the number of
long longs read. If argument is a 0 pointer then space will be
allocated for the array.
Int_t ReadArray(Float_t *&f)
Read array of floats from the I/O buffer. Returns the number of floats
read. If argument is a 0 pointer then space will be allocated for the
array.
Int_t ReadArray(Double_t *&d)
Read array of doubles from the I/O buffer. Returns the number of doubles
read. If argument is a 0 pointer then space will be allocated for the
array.
void ReadFastArray(void *start, const TClass *cl, Int_t n, TMemberStreamer *streamer)
Read an array of 'n' objects from the I/O buffer.
Stores the objects read starting at the address 'start'.
The objects in the array are assume to be of class 'cl'.
void ReadFastArray(void **start, const TClass *cl, Int_t n, Bool_t isPreAlloc, TMemberStreamer *streamer)
Read an array of 'n' objects from the I/O buffer.
The objects read are stored starting at the address '*start'
The objects in the array are assumed to be of class 'cl' or a derived class.
'mode' indicates whether the data member is marked with '->'
Int_t WriteFastArray(void **start, const TClass *cl, Int_t n, Bool_t isPreAlloc, TMemberStreamer *streamer)
Write an array of object starting at the address '*start' and of length 'n'
the objects in the array are of class 'cl'
'isPreAlloc' indicates whether the data member is marked with '->'
Return:
0: success
2: truncated success (i.e actual class is missing. Only ptrClass saved.)
TObject * ReadObject(const TClass * )
Read object from I/O buffer. clReq is NOT used.
The value returned is the address of the actual start in memory of
the object. Note that if the actual class of the object does not
inherit first from TObject, the type of the pointer is NOT 'TObject*'.
[More accurately, the class needs to start with the TObject part, for
the pointer to be a real TOject*].
We recommend using ReadObjectAny instead of ReadObject
void * ReadObjectAny(const TClass *clCast)
Read object from I/O buffer.
A typical use for this function is:
MyClass *ptr = (MyClass*)b.ReadObjectAny(MyClass::Class());
I.e. clCast should point to a TClass object describing the class pointed
to by your pointer.
In case of multiple inheritance, the return value might not be the
real beginning of the object in memory. You will need to use a
dynamic_cast later if you need to retrieve it.
void WriteObject(const void *actualObjectStart, const TClass *actualClass)
Write object to I/O buffer.
This function assumes that the value of 'actualObjectStart' is the actual start of
the object of class 'actualClass'
Int_t WriteObjectAny(const void *obj, const TClass *ptrClass)
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.)
TClass * ReadClass(const TClass *clReq, UInt_t *objTag)
Read class definition from I/O buffer. clReq can be used to cross check
if the actually read object is of the requested class. objTag is
set in case the object is a reference to an already read object.
void StreamObject(void *obj, const type_info &typeinfo)
Stream an object given its C++ typeinfo information.
void StreamObject(void *obj, const char *className)
Stream an object given the name of its actual class.
void StreamObject(void *obj, const TClass *cl)
Stream an object given a pointer to its actual class.
void SetGlobalReadParam(Int_t mapsize)
Set the initial size of the map used to store object and class
references during reading. The default size is kMapSize=503.
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().
void SetGlobalWriteParam(Int_t mapsize)
Set the initial size of the hashtable used to store object and class
references during writing. The default size is kMapSize=503.
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.
Per TBuffer object this option can be changed using SetWriteParam().
TBuffer & operator<<(const Char_t *c)
______________________________________________________________________________
TBuffer & operator<<(UChar_t c)
______________________________________________________________________________
______________________________________________________________________________
TBuffer & operator>>(UChar_t &c)
______________________________________________________________________________
______________________________________________________________________________
Int_t ReadArray(UChar_t *&c)
______________________________________________________________________________
______________________________________________________________________________
Int_t ReadArray(UInt_t *&i)
______________________________________________________________________________
Int_t ReadArray(ULong_t *&l)
______________________________________________________________________________
Int_t ReadStaticArray(UChar_t *c)
______________________________________________________________________________
______________________________________________________________________________
void ReadFastArray(UChar_t *c, Int_t n)
______________________________________________________________________________
______________________________________________________________________________
void WriteArray(const UChar_t *c, Int_t n)
______________________________________________________________________________
______________________________________________________________________________
void WriteArray(const UShort_t *h, Int_t n)
______________________________________________________________________________
void WriteArray(const UInt_t *i, Int_t n)
______________________________________________________________________________
void WriteFastArray(const UChar_t *c, Int_t n)
______________________________________________________________________________
______________________________________________________________________________
Author: Fons Rademakers 04/05/96
Last update: root/base:$Name: $:$Id: TBuffer.cxx,v 1.97 2006/05/23 08:49:55 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.