class TBufferSQL2: public TBufferFile


 Class for serializing/deserializing object to/from SQL data base.
 It redefines most of TBuffer class function to convert simple types,
 array of simple types and objects to/from TSQLStructure objects.
 TBufferSQL2 class uses streaming mechanism, provided by ROOT system,
 therefore most of ROOT and user classes can be stored. There are
 limitations for complex objects like TTree, TClonesArray, TDirectory and
 few other, which can not be converted to SQL (yet).

Function Members (Methods)

public:
TBufferSQL2(TBuffer::EMode mode)
TBufferSQL2(TBuffer::EMode mode, TSQLFile* file)
virtual~TBufferSQL2()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
char*TBuffer::Buffer() const
Int_tTBuffer::BufferSize() const
virtual Int_tCheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass* clss)
virtual Int_tCheckByteCount(UInt_t startpos, UInt_t bcnt, const char* classname)
virtual Bool_tTBufferFile::CheckObject(const TObject* obj)
virtual Bool_tTBufferFile::CheckObject(const void* obj, const TClass* ptrClass)
static TClass*Class()
virtual voidClassBegin(const TClass*, Version_t = -1)
virtual voidClassEnd(const TClass*)
virtual voidClassMember(const char* name, const char* typeName = 0, Int_t arrsize1 = -1, Int_t arrsize2 = -1)
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidDecrementLevel(TVirtualStreamerInfo*)
virtual voidTObject::Delete(Option_t* option = "")MENU
voidTBuffer::DetachBuffer()
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual voidTBufferFile::ForceWriteInfo(TVirtualStreamerInfo* info, Bool_t force)
virtual voidTBufferFile::ForceWriteInfoClones(TClonesArray* a)
virtual Int_tTBufferFile::GetBufferDisplacement() const
Int_tTBuffer::GetBufferVersion() const
static TClass*TBuffer::GetClass(const type_info& typeinfo)
static TClass*TBuffer::GetClass(const char* className)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Int_tGetErrorFlag() const
static Int_tTBufferFile::GetGlobalReadParam()
static Int_tTBufferFile::GetGlobalWriteParam()
virtual const char*TObject::GetIconName() const
virtual TVirtualStreamerInfo*TBufferFile::GetInfo()
virtual TProcessID*TBufferFile::GetLastProcessID(TRefTable* reftable) const
virtual Int_tTBufferFile::GetMapCount() const
virtual voidTBufferFile::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_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
TObject*TBuffer::GetParent() const
virtual UShort_tTBufferFile::GetPidOffset() const
TSQLStructure*GetStructure() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTBufferFile::GetTRefExecId()
virtual UInt_tTObject::GetUniqueID() const
virtual Int_tTBufferFile::GetVersionOwner() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidIncrementLevel(TVirtualStreamerInfo*)
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTBufferFile::InitMap()
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
Bool_tTBuffer::IsReading() const
virtual Bool_tTObject::IsSortable() const
Bool_tTBuffer::IsWriting() const
Bool_tTObject::IsZombie() const
Int_tTBuffer::Length() const
virtual voidTObject::ls(Option_t* option = "") const
virtual voidTBufferFile::MapObject(const TObject* obj, UInt_t offset = 1)
virtual voidTBufferFile::MapObject(const void* obj, const TClass* cl, UInt_t offset = 1)
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::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 voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tReadArray(Bool_t*& b)
virtual Int_tReadArray(Char_t*& c)
virtual Int_tReadArray(UChar_t*& c)
virtual Int_tReadArray(Short_t*& h)
virtual Int_tReadArray(UShort_t*& h)
virtual Int_tReadArray(Int_t*& i)
virtual Int_tReadArray(UInt_t*& i)
virtual Int_tReadArray(Long_t*& l)
virtual Int_tReadArray(ULong_t*& l)
virtual Int_tReadArray(Long64_t*& l)
virtual Int_tReadArray(ULong64_t*& l)
virtual Int_tReadArray(Float_t*& f)
virtual Int_tReadArray(Double_t*& d)
virtual Int_tReadArrayDouble32(Double_t*& d, TStreamerElement* ele = 0)
virtual Int_tReadArrayFloat16(Float_t*& f, TStreamerElement* ele = 0)
virtual voidReadBool(Bool_t& b)
virtual Int_tTBufferFile::ReadBuf(void* buf, Int_t max)
virtual voidReadChar(Char_t& c)
virtual voidReadCharP(Char_t* c)
virtual TClass*ReadClass(const TClass* cl = 0, UInt_t* objTag = 0)
virtual Int_tTBufferFile::ReadClassBuffer(TClass* cl, void* pointer)
virtual Int_tTBufferFile::ReadClassBuffer(TClass* cl, void* pointer, Int_t version, UInt_t start, UInt_t count)
virtual Int_tTBufferFile::ReadClassEmulated(TClass* cl, void* object)
virtual Int_tTBufferFile::ReadClones(TClonesArray* a, Int_t nobjects, Version_t objvers)
virtual voidReadDouble(Double_t& d)
virtual voidReadDouble32(Double_t* d, TStreamerElement* ele = 0)
virtual voidReadFastArray(Bool_t* b, Int_t n)
virtual voidReadFastArray(Char_t* c, Int_t n)
virtual voidReadFastArray(UChar_t* c, Int_t n)
virtual voidReadFastArray(Short_t* h, Int_t n)
virtual voidReadFastArray(UShort_t* h, Int_t n)
virtual voidReadFastArray(Int_t* i, Int_t n)
virtual voidReadFastArray(UInt_t* i, Int_t n)
virtual voidReadFastArray(Long_t* l, Int_t n)
virtual voidReadFastArray(ULong_t* l, Int_t n)
virtual voidReadFastArray(Long64_t* l, Int_t n)
virtual voidReadFastArray(ULong64_t* l, Int_t n)
virtual voidReadFastArray(Float_t* f, Int_t n)
virtual voidReadFastArray(Double_t* d, Int_t n)
virtual voidReadFastArray(void* start, const TClass* cl, Int_t n = 1, TMemberStreamer* s = 0)
virtual voidReadFastArray(void** startp, const TClass* cl, Int_t n = 1, Bool_t isPreAlloc = kFALSE, TMemberStreamer* s = 0)
virtual voidReadFastArrayDouble32(Double_t* d, Int_t n, TStreamerElement* ele = 0)
virtual voidReadFastArrayFloat16(Float_t* f, Int_t n, TStreamerElement* ele = 0)
virtual voidTBufferFile::ReadFastArrayString(Char_t* c, Int_t n)
virtual voidReadFloat(Float_t& f)
virtual voidReadFloat16(Float_t* f, TStreamerElement* ele = 0)
virtual voidReadInt(Int_t& i)
virtual voidReadLong(Long_t& l)
virtual voidReadLong64(Long64_t& l)
virtual TObject*TBufferFile::ReadObject(const TClass* cl)
virtual void*ReadObjectAny(const TClass* clCast)
virtual TProcessID*TBufferFile::ReadProcessID(UShort_t pidf)
virtual voidReadShort(Short_t& s)
virtual Int_tReadStaticArray(Bool_t* b)
virtual Int_tReadStaticArray(Char_t* c)
virtual Int_tReadStaticArray(UChar_t* c)
virtual Int_tReadStaticArray(Short_t* h)
virtual Int_tReadStaticArray(UShort_t* h)
virtual Int_tReadStaticArray(Int_t* i)
virtual Int_tReadStaticArray(UInt_t* i)
virtual Int_tReadStaticArray(Long_t* l)
virtual Int_tReadStaticArray(ULong_t* l)
virtual Int_tReadStaticArray(Long64_t* l)
virtual Int_tReadStaticArray(ULong64_t* l)
virtual Int_tReadStaticArray(Float_t* f)
virtual Int_tReadStaticArray(Double_t* d)
virtual Int_tReadStaticArrayDouble32(Double_t* d, TStreamerElement* ele = 0)
virtual Int_tReadStaticArrayFloat16(Float_t* f, TStreamerElement* ele = 0)
virtual char*TBufferFile::ReadString(char* s, Int_t max)
virtual voidReadTString(TString& s)
virtual voidReadUChar(UChar_t& c)
virtual voidReadUInt(UInt_t& i)
virtual voidReadULong(ULong_t& l)
virtual voidReadULong64(ULong64_t& l)
virtual voidReadUShort(UShort_t& s)
virtual Version_tReadVersion(UInt_t* start = 0, UInt_t* bcnt = 0, const TClass* cl = 0)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual voidTBufferFile::Reset()
voidTObject::ResetBit(UInt_t f)
virtual voidTBufferFile::ResetMap()
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidTBufferFile::SetBuffer(void* buf, UInt_t bufsiz = 0, Bool_t adopt = kTRUE)
virtual voidTBufferFile::SetBufferDisplacement()
virtual voidTBufferFile::SetBufferDisplacement(Int_t skipped)
voidTBuffer::SetBufferOffset(Int_t offset = 0)
virtual voidSetByteCount(UInt_t cntpos, Bool_t packInVersion = kFALSE)
voidSetCompressionLevel(int level)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidTBufferFile::SetGlobalReadParam(Int_t mapsize)
static voidTBufferFile::SetGlobalWriteParam(Int_t mapsize)
voidSetIgnoreVerification()
static voidTObject::SetObjectStat(Bool_t stat)
voidTBuffer::SetParent(TObject* parent)
virtual voidTBufferFile::SetPidOffset(UShort_t offset)
voidTBuffer::SetReadMode()
virtual voidTBufferFile::SetReadParam(Int_t mapsize)
virtual voidSetStreamerElementNumber(Int_t)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidTBuffer::SetWriteMode()
virtual voidTBufferFile::SetWriteParam(Int_t mapsize)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidSkipObjectAny()
void*SqlReadAny(Long64_t keyid, Long64_t objid, TClass** cl, void* obj = 0)
TSQLStructure*SqlWriteAny(const void* obj, const TClass* cl, Long64_t objid)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidStreamObject(TObject* obj)
virtual voidStreamObject(void* obj, const type_info& typeinfo)
virtual voidStreamObject(void* obj, const char* className)
virtual voidStreamObject(void* obj, const TClass* cl)
virtual voidStreamObject(void* obj, TMemberStreamer* streamer, const TClass* cl, Int_t n = 0)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual voidWriteArray(const Bool_t* b, Int_t n)
virtual voidWriteArray(const Char_t* c, Int_t n)
virtual voidWriteArray(const UChar_t* c, Int_t n)
virtual voidWriteArray(const Short_t* h, Int_t n)
virtual voidWriteArray(const UShort_t* h, Int_t n)
virtual voidWriteArray(const Int_t* i, Int_t n)
virtual voidWriteArray(const UInt_t* i, Int_t n)
virtual voidWriteArray(const Long_t* l, Int_t n)
virtual voidWriteArray(const ULong_t* l, Int_t n)
virtual voidWriteArray(const Long64_t* l, Int_t n)
virtual voidWriteArray(const ULong64_t* l, Int_t n)
virtual voidWriteArray(const Float_t* f, Int_t n)
virtual voidWriteArray(const Double_t* d, Int_t n)
virtual voidWriteArrayDouble32(const Double_t* d, Int_t n, TStreamerElement* ele = 0)
virtual voidWriteArrayFloat16(const Float_t* f, Int_t n, TStreamerElement* ele = 0)
virtual voidWriteBool(Bool_t b)
virtual voidTBufferFile::WriteBuf(const void* buf, Int_t max)
virtual voidWriteChar(Char_t c)
virtual voidWriteCharP(const Char_t* c)
virtual voidWriteClass(const TClass* cl)
virtual Int_tTBufferFile::WriteClassBuffer(TClass* cl, void* pointer)
virtual Int_tTBufferFile::WriteClones(TClonesArray* a, Int_t nobjects)
virtual voidWriteDouble(Double_t d)
virtual voidWriteDouble32(Double_t* d, TStreamerElement* ele = 0)
virtual voidWriteFastArray(const Bool_t* b, Int_t n)
virtual voidWriteFastArray(const Char_t* c, Int_t n)
virtual voidWriteFastArray(const UChar_t* c, Int_t n)
virtual voidWriteFastArray(const Short_t* h, Int_t n)
virtual voidWriteFastArray(const UShort_t* h, Int_t n)
virtual voidWriteFastArray(const Int_t* i, Int_t n)
virtual voidWriteFastArray(const UInt_t* i, Int_t n)
virtual voidWriteFastArray(const Long_t* l, Int_t n)
virtual voidWriteFastArray(const ULong_t* l, Int_t n)
virtual voidWriteFastArray(const Long64_t* l, Int_t n)
virtual voidWriteFastArray(const ULong64_t* l, Int_t n)
virtual voidWriteFastArray(const Float_t* f, Int_t n)
virtual voidWriteFastArray(const Double_t* d, Int_t n)
virtual voidWriteFastArray(void* start, const TClass* cl, Int_t n = 1, TMemberStreamer* s = 0)
virtual Int_tWriteFastArray(void** startp, const TClass* cl, Int_t n = 1, Bool_t isPreAlloc = kFALSE, TMemberStreamer* s = 0)
virtual voidWriteFastArrayDouble32(const Double_t* d, Int_t n, TStreamerElement* ele = 0)
virtual voidWriteFastArrayFloat16(const Float_t* f, Int_t n, TStreamerElement* ele = 0)
virtual voidTBufferFile::WriteFastArrayString(const Char_t* c, Int_t n)
virtual voidWriteFloat(Float_t f)
virtual voidWriteFloat16(Float_t* f, TStreamerElement* ele = 0)
virtual voidWriteInt(Int_t i)
virtual voidWriteLong(Long_t l)
virtual voidWriteLong64(Long64_t l)
virtual voidWriteObject(const TObject* obj)
virtual Int_tTBufferFile::WriteObjectAny(const void* obj, const TClass* ptrClass)
virtual UShort_tTBufferFile::WriteProcessID(TProcessID* pid)
virtual voidWriteShort(Short_t s)
virtual voidTBufferFile::WriteString(const char* s)
virtual voidWriteTString(const TString& s)
virtual voidWriteUChar(UChar_t c)
virtual voidWriteUInt(UInt_t i)
virtual voidWriteULong(ULong_t l)
virtual voidWriteULong64(ULong64_t l)
virtual voidWriteUShort(UShort_t s)
virtual UInt_tWriteVersion(const TClass* cl, Bool_t useBcnt = kFALSE)
virtual UInt_tTBufferFile::WriteVersionMemberWise(const TClass* cl, Bool_t useBcnt = kFALSE)
protected:
TBufferSQL2()
TBufferSQL2(const TBufferSQL2&)
voidTBufferFile::CheckCount(UInt_t offset)
UInt_tTBufferFile::CheckObject(UInt_t offset, const TClass* cl, Bool_t readClass = kFALSE)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTBuffer::Expand(Int_t newsize)
voidTObject::MakeZombie()
voidoperator=(const TBufferSQL2&)
TSQLStructure*PopStack()
TSQLStructure*PushStack()
virtual Int_tTBuffer::Read(const char* name)
TSQLObjectData*SqlObjectData(Long64_t objid, TSQLClassInfo* sqlinfo)
Bool_tSqlObjectInfo(Long64_t objid, TString& clname, Version_t& version)
Int_tSqlReadArraySize()
voidSqlReadBasic(Char_t& value)
voidSqlReadBasic(Short_t& value)
voidSqlReadBasic(Int_t& value)
voidSqlReadBasic(Long_t& value)
voidSqlReadBasic(Long64_t& value)
voidSqlReadBasic(Float_t& value)
voidSqlReadBasic(Double_t& value)
voidSqlReadBasic(Bool_t& value)
voidSqlReadBasic(UChar_t& value)
voidSqlReadBasic(UShort_t& value)
voidSqlReadBasic(UInt_t& value)
voidSqlReadBasic(ULong_t& value)
voidSqlReadBasic(ULong64_t& value)
const char*SqlReadCharStarValue()
void*SqlReadObject(void* obj, TClass** cl = 0, TMemberStreamer* streamer = 0, Int_t streamer_index = 0)
void*SqlReadObjectDirect(void* obj, TClass** cl, Long64_t objid, TMemberStreamer* streamer = 0, Int_t streamer_index = 0)
const char*SqlReadValue(const char* tname)
Bool_tSqlWriteBasic(Char_t value)
Bool_tSqlWriteBasic(Short_t value)
Bool_tSqlWriteBasic(Int_t value)
Bool_tSqlWriteBasic(Long_t value)
Bool_tSqlWriteBasic(Long64_t value)
Bool_tSqlWriteBasic(Float_t value)
Bool_tSqlWriteBasic(Double_t value)
Bool_tSqlWriteBasic(Bool_t value)
Bool_tSqlWriteBasic(UChar_t value)
Bool_tSqlWriteBasic(UShort_t value)
Bool_tSqlWriteBasic(UInt_t value)
Bool_tSqlWriteBasic(ULong_t value)
Bool_tSqlWriteBasic(ULong64_t value)
Int_tSqlWriteObject(const void* obj, const TClass* objClass, TMemberStreamer* streamer = 0, Int_t streamer_index = 0)
Bool_tSqlWriteValue(const char* value, const char* tname)
TSQLStructure*Stack(Int_t depth = 0)
voidWorkWithClass(const char* classname, Version_t classversion)
voidWorkWithElement(TStreamerElement* elem, Int_t number)
virtual Int_tTBuffer::Write(const char* name, Int_t opt, Int_t bufs)
virtual Int_tTBuffer::Write(const char* name, Int_t opt, Int_t bufs) const
virtual voidWriteObject(const void* actualObjStart, const TClass* actualClass)
virtual voidTBufferFile::WriteObjectClass(const void* actualObjStart, const TClass* actualClass)

Data Members

public:
enum TBufferFile::[unnamed] { kMapSize
kStreamedMemberWise
kNotDecompressed
kTextBasedStreaming
kUser1
kUser2
kUser3
};
enum TBuffer::EMode { kRead
kWrite
};
enum TBuffer::[unnamed] { kIsOwner
kCannotHandleMemberWiseStreaming
kInitialSize
kMinimalSize
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
char*TBuffer::fBufCurCurrent position in buffer
char*TBuffer::fBufMaxEnd of buffer
Int_tTBuffer::fBufSizeSize of buffer
char*TBuffer::fBufferBuffer used to store objects
TExMap*TBufferFile::fClassMapMap containing object,class pairs for reading
Int_tfCompressLevel! compress level used to minimize size of data in database
TSQLObjectData*fCurrentData!
Int_tTBufferFile::fDisplacementValue to be added to the map offsets
Int_tfErrorFlag! Error id value
Bool_tfExpectedChain! flag to resolve situation when several elements of same basic type stored as FastArray
Long64_tfFirstObjId! id of first object to be read from the database
Bool_tfIgnoreVerification! ignore verification of names
TStreamerInfo*TBufferFile::fInfoPointer to TStreamerInfo object writing/reading the buffer
vector<TStreamerInfo*,allocator<TStreamerInfo*> >TBufferFile::fInfoStackStack of pointers to the TStreamerInfos
Long64_tfLastObjId! id of last object correspond to this key
TExMap*TBufferFile::fMapMap containing object,offset pairs for reading/writing
Int_tTBufferFile::fMapCountNumber of objects or classes in map
Int_tTBufferFile::fMapSizeDefault size of map
Bool_tTBuffer::fModeRead or write mode
Long64_tfObjIdCounter! counter of objects id
TExMap*fObjMap! Map between stored objects and object id
TObjArray*fObjectsInfos! array of objects info for selected key
TObject*TBuffer::fParentPointer to parent object owning this buffer
UShort_tTBufferFile::fPidOffsetOffset to be added to the pid index in this key/buffer.
TMap*fPoolsMap! map of pools with data from different tables
TStringfReadBuffer! Buffer for read value
Int_tfReadVersionBuffer! buffer, used to by ReadVersion method
TSQLFile*fSQL! instance of TSQLFile
TSQLStructure*fStk! pointer on current active structure (stack head)
TSQLStructure*fStructure! structures, created by object storing
Int_tTBuffer::fVersionBuffer format version
static Int_tTBufferFile::fgMapSizeDefault map size for all TBuffer objects

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TBufferSQL2()
 Default constructor, should not be used
TBufferSQL2(TBuffer::EMode mode)
 Creates buffer object to serailize/deserialize data to/from sql.
 Mode should be either TBuffer::kRead or TBuffer::kWrite.
TBufferSQL2(TBuffer::EMode mode, TSQLFile* file)
 Creates buffer object to serailize/deserialize data to/from sql.
 This constructor should be used, if data from buffer supposed to be stored in file.
 Mode should be either TBuffer::kRead or TBuffer::kWrite.
~TBufferSQL2()
 destroy sql buffer
TSQLStructure* SqlWriteAny(const void* obj, const TClass* cl, Long64_t objid)
 Convert object of any class to sql structures
 Return pointer on created TSQLStructure
 TSQLStructure object will be owned by TBufferSQL2
void* SqlReadAny(Long64_t keyid, Long64_t objid, TClass** cl, void* obj = 0)
 Recreate object from sql structure.
 Return pointer to read object.
 if (cl!=0) returns pointer to class of object
Bool_t SqlObjectInfo(Long64_t objid, TString& clname, Version_t& version)
 Returns object info like classname and version
 Should be taken from buffer, which is produced in the begginnig
TSQLObjectData* SqlObjectData(Long64_t objid, TSQLClassInfo* sqlinfo)
 creates TSQLObjectData for specifed object id and specified class
 Object data for each class can be stored in two different tables.
 First table contains data in column-wise form for simple types like integer,
 strings and so on when second table contains any other data which cannot
 be converted into column-wise representation.
 TSQLObjectData will contain results of the requests to both such tables for
 concrete object id.
void WriteObject(const TObject* obj)
 Convert object into sql structures.
 !!! Should be used only by TBufferSQL2 itself.
 Use SqlWrite() functions to convert your object to sql
 Redefined here to avoid gcc 3.x warning
Int_t SqlWriteObject(const void* obj, const TClass* objClass, TMemberStreamer* streamer = 0, Int_t streamer_index = 0)
 Write object to buffer
 If object was written before, only pointer will be stored
 Return id of saved object
void* SqlReadObject(void* obj, TClass** cl = 0, TMemberStreamer* streamer = 0, Int_t streamer_index = 0)
 Read object from the buffer
void* SqlReadObjectDirect(void* obj, TClass** cl, Long64_t objid, TMemberStreamer* streamer = 0, Int_t streamer_index = 0)
 Read object data.
 Class name and version are taken from special objects table.
void IncrementLevel(TVirtualStreamerInfo* )
 Function is called from TStreamerInfo WriteBuffer and Readbuffer functions
 and indent new level in data structure.
 This call indicates, that TStreamerInfo functions starts streaming
 object data of correspondent class
void DecrementLevel(TVirtualStreamerInfo* )
 Function is called from TStreamerInfo WriteBuffer and Readbuffer functions
 and decrease level in sql structure.
void SetStreamerElementNumber(Int_t )
 Function is called from TStreamerInfo WriteBuffer and Readbuffer functions
 and add/verify next element in sql tables
 This calls allows separate data, correspondent to one class member, from another
void ClassBegin(const TClass* , Version_t = -1)
 This method inform buffer data of which class now
 will be streamed. When reading, classversion should be specified
 as was read by TBuffer::ReadVersion() call

 ClassBegin(), ClassEnd() & ClassMemeber() should be used in
 custom class streamers to specify which kind of data are
 now streamed to/from buffer. That information is used to correctly
 convert class data to/from "normal" sql tables with meaningfull names
 and correct datatypes. Without that functions data from custom streamer
 will be saved as "raw" data in special _streamer_ table one value after another
 Such MUST be used when object is written with standard ROOT streaming
 procedure, but should be read back in custom streamer.
 For example, custom streamer of TNamed class may look like:
void ClassEnd(const TClass* )
 Method indicates end of streaming of classdata in custom streamer.
 See ClassBegin() method for more details.
void ClassMember(const char* name, const char* typeName = 0, Int_t arrsize1 = -1, Int_t arrsize2 = -1)
 Method indicates name and typename of class memeber,
 which should be now streamed in custom streamer
 Following combinations are supported:
 1. name = "ClassName", typeName = 0 or typename==ClassName
    This is a case, when data of parent class "ClassName" should be streamed.
    For instance, if class directly inherited from TObject, custom
    streamer should include following code:
    b.ClassMember("TObject");
    TObject::Streamer(b);
 2. Basic data type
      b.ClassMember("fInt","Int_t");
      b >> fInt;
 3. Array of basic data types
      b.ClassMember("fArr","Int_t", 5);
      b.ReadFastArray(fArr, 5);
 4. Object as data member
      b.ClassMemeber("fName","TString");
      fName.Streamer(b);
 5. Pointer on object as datamember
      b.ClassMemeber("fObj","TObject*");
      b.StreamObject(b);
 arrsize1 and arrsize2 arguments (when specified) indicate first and
 second dimension of array. Can be used for array of basic types.
 For more details see ClassBegin() method description.
void WorkWithClass(const char* classname, Version_t classversion)
 This function is a part of IncrementLevel method.
 Also used in StartClass method
void WorkWithElement(TStreamerElement* elem, Int_t number)
 This function is a part of SetStreamerElementNumber method.
 It is introduced for reading of data for specified data memeber of class.
 Used also in ReadFastArray methods to resolve problem of compressed data,
 when several data memebers of the same basic type streamed with single ...FastArray call
TClass* ReadClass(const TClass* cl = 0, UInt_t* objTag = 0)
 suppressed function of TBuffer
void WriteClass(const TClass* cl)
 suppressed function of TBuffer
Int_t CheckByteCount(UInt_t /*r_s */, UInt_t /*r_c*/, const TClass* /*cl*/)
 suppressed function of TBuffer
Int_t CheckByteCount(UInt_t, UInt_t, const char*)
 suppressed function of TBuffer
void SetByteCount(UInt_t cntpos, Bool_t packInVersion = kFALSE)
 suppressed function of TBuffer
Version_t ReadVersion(UInt_t* start = 0, UInt_t* bcnt = 0, const TClass* cl = 0)
 read version value from buffer
 actually version is normally defined by table name
 and kept in intermediate variable fReadVersionBuffer
UInt_t WriteVersion(const TClass* cl, Bool_t useBcnt = kFALSE)
 Copies class version to buffer, but not writes it to sql immidiately
 Version will be used to produce complete table
 name, which will include class version
void* ReadObjectAny(const TClass* clCast)
 Read object from buffer. Only used from TBuffer
void SkipObjectAny()
 ?????? Skip any kind of object from buffer
 !!!!!! fix me, not yet implemented
 Should be just skip of current column later
void WriteObject(const void* actualObjStart, const TClass* actualClass)
 Write object to buffer. Only used from TBuffer
void ReadFloat16(Float_t* f, TStreamerElement* ele = 0)
 Read Float16 value
void ReadDouble32(Double_t* d, TStreamerElement* ele = 0)
 Read Double32 value
void WriteFloat16(Float_t* f, TStreamerElement* ele = 0)
 Write Float16 value
void WriteDouble32(Double_t* d, TStreamerElement* ele = 0)
 Write Double32 value
Int_t ReadArray(Bool_t *&b)
 Read array of Bool_t from buffer
Int_t ReadArray(Char_t *&c)
 Read array of Char_t from buffer
Int_t ReadArray(UChar_t *&c)
 Read array of UChar_t from buffer
Int_t ReadArray(Short_t *&h)
 Read array of Short_t from buffer
Int_t ReadArray(UShort_t *&h)
 Read array of UShort_t from buffer
Int_t ReadArray(Int_t *&i)
 Read array of Int_t from buffer
Int_t ReadArray(UInt_t *&i)
 Read array of UInt_t from buffer
Int_t ReadArray(Long_t *&l)
 Read array of Long_t from buffer
Int_t ReadArray(ULong_t *&l)
 Read array of ULong_t from buffer
Int_t ReadArray(Long64_t *&l)
 Read array of Long64_t from buffer
Int_t ReadArray(ULong64_t *&l)
 Read array of ULong64_t from buffer
Int_t ReadArray(Float_t *&f)
 Read array of Float_t from buffer
Int_t ReadArray(Double_t *&d)
 Read array of Double_t from buffer
Int_t ReadArrayFloat16(Float_t*& f, TStreamerElement* ele = 0)
 Read array of Float16_t from buffer
Int_t ReadArrayDouble32(Double_t*& d, TStreamerElement* ele = 0)
 Read array of Double32_t from buffer
Int_t ReadStaticArray(Bool_t *b)
 Read array of Bool_t from buffer
Int_t ReadStaticArray(Char_t *c)
 Read array of Char_t from buffer
Int_t ReadStaticArray(UChar_t *c)
 Read array of UChar_t from buffer
Int_t ReadStaticArray(Short_t *h)
 Read array of Short_t from buffer
Int_t ReadStaticArray(UShort_t *h)
 Read array of UShort_t from buffer
Int_t ReadStaticArray(Int_t *i)
 Read array of Int_t from buffer
Int_t ReadStaticArray(UInt_t *i)
 Read array of UInt_t from buffer
Int_t ReadStaticArray(Long_t *l)
 Read array of Long_t from buffer
Int_t ReadStaticArray(ULong_t *l)
 Read array of ULong_t from buffer
Int_t ReadStaticArray(Long64_t *l)
 Read array of Long64_t from buffer
Int_t ReadStaticArray(ULong64_t *l)
 Read array of ULong64_t from buffer
Int_t ReadStaticArray(Float_t *f)
 Read array of Float_t from buffer
Int_t ReadStaticArray(Double_t *d)
 Read array of Double_t from buffer
Int_t ReadStaticArrayFloat16(Float_t* f, TStreamerElement* ele = 0)
 Read array of Float16_t from buffer
Int_t ReadStaticArrayDouble32(Double_t* d, TStreamerElement* ele = 0)
 Read array of Double32_t from buffer
void ReadFastArray(Bool_t *b, Int_t n)
 read array of Bool_t from buffer
void ReadFastArray(Char_t *c, Int_t n)
 read array of Char_t from buffer
 if nodename==CharStar, read all array as string
void ReadFastArray(UChar_t *c, Int_t n)
 read array of UChar_t from buffer
void ReadFastArray(Short_t *h, Int_t n)
 read array of Short_t from buffer
void ReadFastArray(UShort_t *h, Int_t n)
 read array of UShort_t from buffer
void ReadFastArray(Int_t *i, Int_t n)
 read array of Int_t from buffer
void ReadFastArray(UInt_t *i, Int_t n)
 read array of UInt_t from buffer
void ReadFastArray(Long_t *l, Int_t n)
 read array of Long_t from buffer
void ReadFastArray(ULong_t *l, Int_t n)
 read array of ULong_t from buffer
void ReadFastArray(Long64_t *l, Int_t n)
 read array of Long64_t from buffer
void ReadFastArray(ULong64_t *l, Int_t n)
 read array of ULong64_t from buffer
void ReadFastArray(Float_t *f, Int_t n)
 read array of Float_t from buffer
void ReadFastArray(Double_t *d, Int_t n)
 read array of Double_t from buffer
void ReadFastArrayFloat16(Float_t* f, Int_t n, TStreamerElement* ele = 0)
 read array of Float16_t from buffer
void ReadFastArrayDouble32(Double_t* d, Int_t n, TStreamerElement* ele = 0)
 read array of Double32_t from buffer
void ReadFastArray(void* start, const TClass* cl, Int_t n = 1, TMemberStreamer* s = 0)
 Same functionality as TBuffer::ReadFastArray(...) but
 instead of calling cl->Streamer(obj,buf) call here
 buf.StreamObject(obj, cl). In that case it is easy to understand where
 object data is started and finished
void ReadFastArray(void** startp, const TClass* cl, Int_t n = 1, Bool_t isPreAlloc = kFALSE, TMemberStreamer* s = 0)
 Same functionality as TBuffer::ReadFastArray(...) but
 instead of calling cl->Streamer(obj,buf) call here
 buf.StreamObject(obj, cl). In that case it is easy to understand where
 object data is started and finished
Int_t SqlReadArraySize()
 Reads array size, written in raw data table.
 Used in ReadArray methods, where TBuffer need to read array size first.
void WriteArray(const Bool_t *b, Int_t n)
 Write array of Bool_t to buffer
void WriteArray(const Char_t *c, Int_t n)
 Write array of Char_t to buffer
void WriteArray(const UChar_t *c, Int_t n)
 Write array of UChar_t to buffer
void WriteArray(const Short_t *h, Int_t n)
 Write array of Short_t to buffer
void WriteArray(const UShort_t *h, Int_t n)
 Write array of UShort_t to buffer
void WriteArray(const Int_t *i, Int_t n)
 Write array of Int_ to buffer
void WriteArray(const UInt_t *i, Int_t n)
 Write array of UInt_t to buffer
void WriteArray(const Long_t *l, Int_t n)
 Write array of Long_t to buffer
void WriteArray(const ULong_t *l, Int_t n)
 Write array of ULong_t to buffer
void WriteArray(const Long64_t *l, Int_t n)
 Write array of Long64_t to buffer
void WriteArray(const ULong64_t *l, Int_t n)
 Write array of ULong64_t to buffer
void WriteArray(const Float_t *f, Int_t n)
 Write array of Float_t to buffer
void WriteArray(const Double_t *d, Int_t n)
 Write array of Double_t to buffer
void WriteArrayFloat16(const Float_t* f, Int_t n, TStreamerElement* ele = 0)
 Write array of Float16_t to buffer
void WriteArrayDouble32(const Double_t* d, Int_t n, TStreamerElement* ele = 0)
 Write array of Double32_t to buffer
void WriteFastArray(const Bool_t *b, Int_t n)
 Write array of Bool_t to buffer
void WriteFastArray(const Char_t *c, Int_t n)
 Write array of Char_t to buffer
 it will be reproduced as CharStar node with string as attribute
void WriteFastArray(const UChar_t *c, Int_t n)
 Write array of UChar_t to buffer
void WriteFastArray(const Short_t *h, Int_t n)
 Write array of Short_t to buffer
void WriteFastArray(const UShort_t *h, Int_t n)
 Write array of UShort_t to buffer
void WriteFastArray(const Int_t *i, Int_t n)
 Write array of Int_t to buffer
void WriteFastArray(const UInt_t *i, Int_t n)
 Write array of UInt_t to buffer
void WriteFastArray(const Long_t *l, Int_t n)
 Write array of Long_t to buffer
void WriteFastArray(const ULong_t *l, Int_t n)
 Write array of ULong_t to buffer
void WriteFastArray(const Long64_t *l, Int_t n)
 Write array of Long64_t to buffer
void WriteFastArray(const ULong64_t *l, Int_t n)
 Write array of ULong64_t to buffer
void WriteFastArray(const Float_t *f, Int_t n)
 Write array of Float_t to buffer
void WriteFastArray(const Double_t *d, Int_t n)
 Write array of Double_t to buffer
void WriteFastArrayFloat16(const Float_t* f, Int_t n, TStreamerElement* ele = 0)
 Write array of Float16_t to buffer
void WriteFastArrayDouble32(const Double_t* d, Int_t n, TStreamerElement* ele = 0)
 Write array of Double32_t to buffer
void WriteFastArray(void* start, const TClass* cl, Int_t n = 1, TMemberStreamer* s = 0)
 Same functionality as TBuffer::WriteFastArray(...) but
 instead of calling cl->Streamer(obj,buf) call here
 buf.StreamObject(obj, cl). In that case it is easy to understand where
 object data is started and finished
Int_t WriteFastArray(void** startp, const TClass* cl, Int_t n = 1, Bool_t isPreAlloc = kFALSE, TMemberStreamer* s = 0)
 Same functionality as TBuffer::WriteFastArray(...) but
 instead of calling cl->Streamer(obj,buf) call here
 buf.StreamObject(obj, cl). In that case it is easy to understand where
 object data is started and finished
void StreamObject(void *obj, const type_info &typeinfo)
 steram object to/from buffer
void StreamObject(void *obj, const char *className)
 steram object to/from buffer
void StreamObject(void *obj, const TClass *cl)
 steram object to/from buffer
void StreamObject(TObject* obj)
 steram object to/from buffer
void StreamObject(void* obj, TMemberStreamer* streamer, const TClass* cl, Int_t n = 0)
 steram object to/from buffer
void ReadBool(Bool_t& b)
 Reads Bool_t value from buffer
void ReadChar(Char_t& c)
 Reads Char_t value from buffer
void ReadUChar(UChar_t& c)
 Reads UChar_t value from buffer
void ReadShort(Short_t& s)
 Reads Short_t value from buffer
void ReadUShort(UShort_t& s)
 Reads UShort_t value from buffer
void ReadInt(Int_t& i)
 Reads Int_t value from buffer
void ReadUInt(UInt_t& i)
 Reads UInt_t value from buffer
void ReadLong(Long_t& l)
 Reads Long_t value from buffer
void ReadULong(ULong_t& l)
 Reads ULong_t value from buffer
void ReadLong64(Long64_t& l)
 Reads Long64_t value from buffer
void ReadULong64(ULong64_t& l)
 Reads ULong64_t value from buffer
void ReadFloat(Float_t& f)
 Reads Float_t value from buffer
void ReadDouble(Double_t& d)
 Reads Double_t value from buffer
void ReadCharP(Char_t* c)
 Reads array of characters from buffer
void ReadTString(TString& s)
 Operator>>
void WriteTString(const TString& s)
 Operator>>
void WriteBool(Bool_t b)
 Writes Bool_t value to buffer
void WriteChar(Char_t c)
 Writes Char_t value to buffer
void WriteUChar(UChar_t c)
 Writes UChar_t value to buffer
void WriteShort(Short_t s)
 Writes Short_t value to buffer
void WriteUShort(UShort_t s)
 Writes UShort_t value to buffer
void WriteInt(Int_t i)
 Writes Int_t value to buffer
void WriteUInt(UInt_t i)
 Writes UInt_t value to buffer
void WriteLong(Long_t l)
 Writes Long_t value to buffer
void WriteULong(ULong_t l)
 Writes ULong_t value to buffer
void WriteLong64(Long64_t l)
 Writes Long64_t value to buffer
void WriteULong64(ULong64_t l)
 Writes ULong64_t value to buffer
void WriteFloat(Float_t f)
 Writes Float_t value to buffer
void WriteDouble(Double_t d)
 Writes Double_t value to buffer
void WriteCharP(const Char_t* c)
 Writes array of characters to buffer
Bool_t SqlWriteBasic(Char_t value)
 converts Char_t to string and creates correspondent sql structure
Bool_t SqlWriteBasic(Short_t value)
 converts Short_t to string and creates correspondent sql structure
Bool_t SqlWriteBasic(Int_t value)
 converts Int_t to string and creates correspondent sql structure
Bool_t SqlWriteBasic(Long_t value)
 converts Long_t to string and creates correspondent sql structure
Bool_t SqlWriteBasic(Long64_t value)
 converts Long64_t to string and creates correspondent sql structure
Bool_t SqlWriteBasic(Float_t value)
 converts Float_t to string and creates correspondent sql structure
Bool_t SqlWriteBasic(Double_t value)
 converts Double_t to string and creates correspondent sql structure
Bool_t SqlWriteBasic(Bool_t value)
 converts Bool_t to string and creates correspondent sql structure
Bool_t SqlWriteBasic(UChar_t value)
 converts UChar_t to string and creates correspondent sql structure
Bool_t SqlWriteBasic(UShort_t value)
 converts UShort_t to string and creates correspondent sql structure
Bool_t SqlWriteBasic(UInt_t value)
 converts UInt_t to string and creates correspondent sql structure
Bool_t SqlWriteBasic(ULong_t value)
 converts ULong_t to string and creates correspondent sql structure
Bool_t SqlWriteBasic(ULong64_t value)
 converts ULong64_t to string and creates correspondent sql structure
Bool_t SqlWriteValue(const char* value, const char* tname)
 create structure in stack, which holds specified value
void SqlReadBasic(Char_t& value)
 read current value from table and convert it to Char_t value
void SqlReadBasic(Short_t& value)
 read current value from table and convert it to Short_t value
void SqlReadBasic(Int_t& value)
 read current value from table and convert it to Int_t value
void SqlReadBasic(Long_t& value)
 read current value from table and convert it to Long_t value
void SqlReadBasic(Long64_t& value)
 read current value from table and convert it to Long64_t value
void SqlReadBasic(Float_t& value)
 read current value from table and convert it to Float_t value
void SqlReadBasic(Double_t& value)
 read current value from table and convert it to Double_t value
void SqlReadBasic(Bool_t& value)
 read current value from table and convert it to Bool_t value
void SqlReadBasic(UChar_t& value)
 read current value from table and convert it to UChar_t value
void SqlReadBasic(UShort_t& value)
 read current value from table and convert it to UShort_t value
void SqlReadBasic(UInt_t& value)
 read current value from table and convert it to UInt_t value
void SqlReadBasic(ULong_t& value)
 read current value from table and convert it to ULong_t value
void SqlReadBasic(ULong64_t& value)
 read current value from table and convert it to ULong64_t value
const char* SqlReadValue(const char* tname)
 read string value from current stack node
const char* SqlReadCharStarValue()
 read CharStar value, if it has special code, request it from large table
TSQLStructure* PushStack()
 Push stack with structurual information about streamed object
TSQLStructure* PopStack()
 Pop stack
TSQLStructure* Stack(Int_t depth = 0)
 returns head of stack
TBufferSQL2(const TBufferSQL2 &)
 TBufferSQL2 objects cannot be copied or assigned
void operator=(const TBufferSQL2& )
void SetCompressionLevel(int level)
{ fCompressLevel = level; }
TSQLStructure* GetStructure()
{ return fStructure; }
Int_t GetErrorFlag()
{ return fErrorFlag; }
void SetIgnoreVerification()
{ fIgnoreVerification = kTRUE; }

Author: Sergey Linev 20/11/2005
Last change: root/sql:$Id: TBufferSQL2.h 20882 2007-11-19 11:31:26Z rdm $
Last generated: 2008-06-25 08:35

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.