59 :
TBufferText(), fSQL(nullptr), fIOVersion(1), fStructure(nullptr), fStk(0), fReadBuffer(), fErrorFlag(0),
60 fCompressLevel(0), fReadVersionBuffer(-1), fObjIdCounter(1), fIgnoreVerification(
kFALSE), fCurrentData(nullptr),
61 fObjectsInfos(nullptr), fFirstObjId(0), fLastObjId(0), fPoolsMap(nullptr)
119 std::cout <<
"==== Printout of Sql structures ===== " << std::endl;
121 std::cout <<
"=========== End printout ============ " << std::endl;
170 if ((shift >= 0) && (shift <= fObjectsInfos->GetLast())) {
178 Info(
"SqlObjectInfo",
"Standard not works %lld", objid);
222 Info(
"SqlObjectData",
"After request res = 0x%lx", (
Long_t)alldata);
238 Error(
"SqlObjectData",
"Missmatch in pools map !!! CANNOT BE !!!");
246 Error(
"SqlObjectData",
"Can not find row for objid = %lld in table %s", objid, sqlinfo->
GetClassTableName());
257 return new TSQLObjectData(sqlinfo, objid, classdata, classrow, blobdata, blobstmt);
266 Int_t streamer_index)
269 Info(
"SqlWriteObject",
"Object: %p Class: %s", obj, (cl ? cl->
GetName() :
"null"));
287 Info(
"SqlWriteObject",
"Find objectid %ld", (
long)objid);
303 (*streamer)(*
this, (
void *)obj, streamer_index);
305 ((
TClass *)cl)->Streamer((
void *)obj, *
this);
308 Info(
"SqlWriteObject",
"Done write of %s", cl->
GetName());
319 const TClass *onFileClass)
330 if ((refid == 0) || (strlen(refid) == 0)) {
331 Error(
"SqlReadObject",
"Invalid object reference value");
345 }
else if (objid == -1) {
348 void *obj1 =
nullptr;
359 if ((
gDebug > 3) && findptr)
360 Info(
"SqlReadObject",
"Found pointer %p cl %s", obj, ((cl && *cl) ? (*cl)->GetName() :
"null"));
369 Error(
"SqlReadObject",
"Object reference or pointer is not found in blob data");
376 if ((
gDebug > 2) || (objid < 0))
377 Info(
"SqlReadObject",
"Found object reference %ld", (
long)objid);
396 Info(
"SqlReadObjectDirect",
"objid = %lld clname = %s ver = %d", objid, clname.
Data(), version);
404 if (!objClass || !sqlinfo) {
405 Error(
"SqlReadObjectDirect",
"Class %s is not known", clname.
Data());
410 obj = objClass->
New();
418 if (sqlinfo->IsClassTableExist()) {
437 Error(
"SqlReadObjectDirect",
"No found raw data for obj %lld in class %s version %d table", objid,
438 clname.
Data(), version);
450 (*streamer)(*
this, (
void *)obj, streamer_index);
452 objClass->
Streamer((
void *)obj, *
this, onFileClass);
458 Info(
"SqlReadObjectDirect",
"Read object of class %s done", objClass->
GetName());
482 Info(
"IncrementLevel",
"Info: %s", info->
GetName());
493 if (
Stack()->GetElement())
501 Info(
"DecrementLevel",
"Info: %s", info->
GetName());
511 if (
Stack()->GetElement())
517 Error(
"SetStreamerElementNumber",
"Error in structures stack");
558 if (classversion < 0)
597 if (!name || (strlen(name) == 0)) {
598 Error(
"ClassMember",
"Invalid member name");
607 if (strcmp(typeName,
"raw:data") == 0)
618 if (strcmp(name, typeName) == 0) {
626 if (tname[tname.
Length() - 1] ==
'*') {
632 Error(
"ClassMember",
"Invalid class specifier %s", typeName);
657 }
else if ((typ_id > 0) && (typ_id < 20)) {
673 Error(
"ClassMember",
"Invalid combination name = %s type = %s", name, typeName);
709 sobjid.
Form(
"%lld", objid);
714 Error(
"WorkWithClass",
"cannot define object id");
721 Error(
"WorkWithClass",
"Can not find table for class %s version %d", classname, classversion);
728 Error(
"WorkWithClass",
"Request error for data of object %lld for class %s version %d", objid, classname,
749 Info(
"WorkWithElement",
"elem = %s", elem->
GetName());
763 Error(
"WorkWithElement",
"Object data is lost");
773 Error(
"WorkWithElement",
"Cannot locate correct column in the table");
817 Info(
"ReadVersion",
"from buffer = %d", (
int)res);
825 Error(
"ReadVersion",
"No correspondent tags to read version");
871 Info(
"WriteObjectClass",
"class %s", (actualClass ? actualClass->
GetName() :
" null"));
878 template <
typename T>
882 Info(
"SqlReadArrayContent",
"size %d", (
int)(arrsize));
886 while (indx < arrsize) {
889 sscanf(name,
"[%d", &first);
892 sscanf(name,
"[%d..%d", &first, &last);
894 if ((first != indx) || (last < first) || (last >= arrsize)) {
895 Error(
"SqlReadArrayContent",
"Error reading array content %s", name);
901 arr[indx++] = arr[first];
904 while (indx < arrsize)
909 Info(
"SqlReadArrayContent",
"done");
912 template <
typename T>
1138 template <
typename T>
1161 if (!buf || (n <= 0))
1163 Int_t size = strlen(buf);
1166 memcpy(c, buf, size);
1276 const TClass *onFileClass)
1279 Info(
"ReadFastArray",
"(void *");
1287 int objectSize = cl->
Size();
1288 char *obj = (
char *)start;
1289 char *end = obj + n * objectSize;
1291 for (; obj < end; obj += objectSize) {
1304 const TClass *onFileClass)
1307 Info(
"ReadFastArray",
"(void ** pre = %d n = %d", isPreAlloc, n);
1320 for (
Int_t j = 0; j <
n; j++) {
1322 start[j] = ((
TClass *)cl)->New();
1326 (*streamer)(*
this, (
void *)start, n);
1334 for (
Int_t j = 0; j <
n; j++) {
1337 start[j] = ((
TClass *)cl)->New();
1338 ((
TClass *)cl)->Streamer(start[j], *
this);
1350 for (
Int_t j = 0; j <
n; j++) {
1352 start[j] = ((
TClass *)cl)->New();
1358 Info(
"ReadFastArray",
"(void ** Done");
1370 if (!value || (strlen(value) == 0))
1372 Int_t sz = atoi(value);
1376 template <
typename T>
1379 if (!withsize && (arrsize <= 0))
1384 while (indx < arrsize) {
1385 Int_t curr = indx++;
1386 while ((indx < arrsize) && (arr[indx] == arr[curr]))
1392 for (; indx < arrsize; indx++) {
1518 Bool_t usedefault = (n == 0);
1523 for (
int i = 0; i <
n; i++)
1651 char *obj = (
char *)start;
1654 int size = cl->
Size();
1656 for (
Int_t j = 0; j <
n; j++, obj += size)
1680 (*streamer)(*
this, (
void *)start, n);
1692 for (
Int_t j = 0; j <
n; j++) {
1694 if (!strInfo && !start[j] && !oldStyle)
1698 ((
TClass *)cl)->Streamer(start[j], *
this);
1706 for (
Int_t j = 0; j <
n; j++) {
1708 start[j] = ((
TClass *)cl)->New();
1725 ((
TObject *)obj)->TObject::Streamer(*
this);
1728 ((
TNamed *)obj)->TNamed::Streamer(*
this);
1734 Info(
"StreamObject",
"class %s", (cl ? cl->
GetName() :
"none"));
1745 const TClass *onFileClass)
1751 Info(
"StreamObjectExtra",
"class = %s", cl->
GetName());
1893 char *
data =
new char[nbig];
1935 Error(
"ReadStdString",
"The std::string address is nullptr but should not");
1950 obj->resize(nbig,
'\0');
1953 obj->resize(nwh,
'\0');
1975 Int_t nbig = obj->length();
2001 s =
new char[nch + 1];
2140 snprintf(buf,
sizeof(buf),
"%d", value);
2150 snprintf(buf,
sizeof(buf),
"%hd", value);
2160 snprintf(buf,
sizeof(buf),
"%d", value);
2170 snprintf(buf,
sizeof(buf),
"%ld", value);
2179 std::string buf = std::to_string(value);
2217 snprintf(buf,
sizeof(buf),
"%u", value);
2227 snprintf(buf,
sizeof(buf),
"%hu", value);
2237 snprintf(buf,
sizeof(buf),
"%u", value);
2247 snprintf(buf,
sizeof(buf),
"%lu", value);
2256 std::string buf = std::to_string(value);
2279 sscanf(res,
"%d", &n);
2292 sscanf(res,
"%hd", &value);
2304 sscanf(res,
"%d", &value);
2316 sscanf(res,
"%ld", &value);
2340 sscanf(res,
"%f", &value);
2352 sscanf(res,
"%lf", &value);
2377 sscanf(res,
"%ud", &n);
2390 sscanf(res,
"%hud", &value);
2402 sscanf(res,
"%u", &value);
2414 sscanf(res,
"%lu", &value);
2440 Error(
"SqlReadValue",
"No object data to read from");
2514 while ((depth-- > 0) && curr)
R__ALWAYS_INLINE void SqlReadFastArray(T *arr, Int_t arrsize)
Template method to read content of array, which not include size of array.
Describe Streamer information for one class version.
virtual void IncrementLevel(TVirtualStreamerInfo *)
Function is called from TStreamerInfo WriteBuffer and Readbuffer functions and indent new level in da...
virtual const char * GetName() const
Returns name of object.
TSQLResult * GetBlobClassData(Long64_t objid, TSQLClassInfo *sqlinfo)
Method return request results for specified objid from streamer classtable.
static Bool_t CanDelete()
static function returning true if ReadBuffer can delete object
virtual void ReadFloat(Float_t &f)
Reads Float_t value from buffer.
virtual 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 interme...
static const char * ConvertFloat(Float_t v, char *buf, unsigned len, Bool_t not_optimize=kFALSE)
convert float to string with configured format
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
Info (classname, version) about object in database.
TStreamerInfo * GetStreamerInfo() const
return TStreamerInfo* if type is kSqlStreamerInfo
void ShiftToNextValue()
shift to next column or next row in blob data
const char * GetValue() const
TSQLResult * GetNormalClassDataAll(Long64_t minobjid, Long64_t maxobjid, TSQLClassInfo *sqlinfo)
Return data for several objects from the range from normal class table.
const char * GetObjClassName() const
const char * GetClassTableName() const
virtual void WriteCharStar(char *s)
Write a char* string.
virtual void ClassBegin(const TClass *, Version_t=-1)
This method inform buffer data of which class now will be streamed.
void AddValue(const char *value, const char *tname=0)
Add child structure as value.
virtual 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 ...
virtual void WriteLong64(Long64_t l)
Writes Long64_t value to buffer.
virtual void Delete(Option_t *option="")
Remove all objects from the array AND delete all heap based objects.
virtual void ReadLong64(Long64_t &l)
Reads Long64_t value from buffer.
virtual void ReadTString(TString &s)
Read a TString.
Int_t fCompressLevel
! compress level used to minimize size of data in database
void Add(TObject *obj)
This function may not be used (but we need to provide it since it is a pure virtual in TCollection)...
Int_t IsLongStringCode(Long64_t objid, const char *value)
Checks if this is long string code returns 0, if not or string id.
Int_t fIOVersion
! I/O version from TSQLFile
Contains information about tables specific to one class and version.
virtual void ReadUShort(UShort_t &s)
Reads UShort_t value from buffer.
virtual void ReadBool(Bool_t &b)
Reads Bool_t value from buffer.
Int_t fErrorFlag
! Error id value
TSQLStructure * fStructure
! structures, created by object storing
void SetObjectRef(Long64_t refid, const TClass *cl)
set structure type as kSqlObject
TSQLObjectData * SqlObjectData(Long64_t objid, TSQLClassInfo *sqlinfo)
Creates TSQLObjectData for specified object id and specified class.
Type GetType(const std::string &Name)
virtual void SetArrayDim(Int_t dim)
Set number of array dimensions.
virtual void WriteFastArray(const Bool_t *b, Int_t n)
Write array of Bool_t to buffer.
TObject * At(Int_t idx) const
virtual void WriteUChar(UChar_t c)
Writes UChar_t value to buffer.
Bool_t IsBlobData() const
Int_t SqlWriteObject(const void *obj, const TClass *objClass, Bool_t cacheReuse, TMemberStreamer *streamer=0, Int_t streamer_index=0)
Write object to buffer.
Int_t SqlReadArraySize()
Reads array size, written in raw data table.
virtual void SetMaxIndex(Int_t dim, Int_t max)
set maximum index for array with dimension dim
Bool_t fIgnoreVerification
! ignore verification of names
Int_t fReadVersionBuffer
! buffer, used to by ReadVersion method
TSQLStructure * PushStack()
Push stack with structural information about streamed object.
virtual void WriteStdString(const std::string *s)
Write a std::string.
void SetStreamerInfo(const TStreamerInfo *info)
set structure type as kSqlStreamerInfo
TSQLObjectData is used in TBufferSQL2 class in reading procedure.
virtual void ReadUInt(UInt_t &i)
Reads UInt_t value from buffer.
void WorkWithElement(TStreamerElement *elem, Int_t comp_type)
This function is a part of SetStreamerElementNumber method.
virtual Int_t ReadArray(Bool_t *&b)
Read array of Bool_t from buffer.
virtual void ReadInt(Int_t &i)
Reads Int_t value from buffer.
void Add(TSQLStructure *child)
Add child structure.
virtual void WriteDouble(Double_t d)
Writes Double_t value to buffer.
TObject * Last() const
Return the object in the last filled slot. Returns 0 if no entries.
R__ALWAYS_INLINE void SqlReadArrayContent(T *arr, Int_t arrsize, Bool_t withsize)
Template method to read array content.
static Bool_t UnpackTObject(TSQLFile *f, TBufferSQL2 *buf, TSQLObjectData *data, Long64_t objid, Int_t clversion)
Unpack TObject data in form, accepted by custom TObject streamer.
void SetStreamerElement(const TStreamerElement *elem, Int_t number)
set structure type as kSqlElement
The TNamed class is the base class for all named ROOT classes.
Int_t GetIOVersion() const
TSQLFile * fSQL
! instance of TSQLFile
virtual void WriteShort(Short_t s)
Writes Short_t value to buffer.
virtual void WriteBool(Bool_t b)
Writes Bool_t value to buffer.
virtual void WriteULong(ULong_t l)
Writes ULong_t value to buffer.
void * SqlReadObject(void *obj, TClass **cl=0, TMemberStreamer *streamer=0, Int_t streamer_index=0, const TClass *onFileClass=0)
Read object from the buffer.
void ChildArrayIndex(Int_t index, Int_t cnt=1)
set array index for last child element if (cnt<=1) return;
This is hierarchical structure, which is created when data is written by TBufferSQL2.
virtual void WriteUShort(UShort_t s)
Writes UShort_t value to buffer.
virtual void Print(Option_t *option="") const
print content of complete structure
Bool_t IsClassTableExist() const
virtual void WriteObjectClass(const void *actualObjStart, const TClass *actualClass, Bool_t cacheReuse)
Write object to buffer. Only used from TBuffer.
TStreamerElement * GetElement() const
return TStremerElement* if type is kSqlElement
virtual void WriteClass(const TClass *cl)
Suppressed function of TBuffer.
virtual void WriteTString(const TString &s)
Write a TString.
Bool_t GetLongString(Long64_t objid, Int_t strid, TString &value)
Returns value of string, extracted from special table, where long strings are stored.
Bool_t SqlWriteBasic(Char_t value)
converts Char_t to string and creates correspondent sql structure
virtual void WriteULong64(ULong64_t l)
Writes ULong64_t value to buffer.
Int_t LocateElementColumn(TSQLFile *f, TBufferSQL2 *buf, TSQLObjectData *data)
find column in TSQLObjectData object, which correspond to current element
TBufferSQL2()
Default constructor, should not be used.
static Bool_t UnpackTString(TSQLFile *f, TBufferSQL2 *buf, TSQLObjectData *data, Long64_t objid, Int_t clversion)
Unpack TString data in form, accepted by custom TString streamer.
virtual void ReadCharP(Char_t *c)
Reads array of characters from buffer.
TSQLObjectData * GetObjectData(Bool_t search=false)
searches for objects data
Int_t GetLast() const
Return index of last object in array.
virtual TVirtualStreamerInfo * GetInfo()
Return current streamer info element.
TSQLResult * GetClassData() const
R__ALWAYS_INLINE Int_t SqlReadArray(T *&arr, Bool_t is_static=kFALSE)
Access an SQL db via the TFile interface.
void SetCustomClass(const TClass *cl, Version_t version)
set structure type as kSqlCustomClass
Version_t GetObjVersion() const
virtual void MapObject(const TObject *obj, UInt_t offset=1)
Add object to the fMap container.
Basic data type descriptor (datatype information is obtained from CINT).
virtual void WriteLong(Long_t l)
Writes Long_t value to buffer.
virtual Int_t WriteObjectAny(const void *obj, const TClass *ptrClass, Bool_t cacheReuse=kTRUE)
Write object to I/O buffer.
TSQLStructure * fStk
! pointer on current active structure (stack head)
void ChangeValueOnly(const char *value)
change value of this structure used as "workaround" to keep object id in kSqlElement node ...
TSQLClassInfo * FindSQLClassInfo(const char *clname, Int_t version)
Return (if exists) TSQLClassInfo for specified class name and version.
virtual void StreamObject(void *obj, const TClass *cl, const TClass *onFileClass=nullptr)
Stream object to/from buffer.
TSQLStatement * GetBlobClassDataStmt(Long64_t objid, TSQLClassInfo *sqlinfo)
Method return request results for specified objid from streamer classtable Data returned in form of s...
Bool_t VerifyDataType(const char *tname, Bool_t errormsg=kTRUE)
checks if data type corresponds to that stored in raw table
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
const char * GetBlobPrefixName() const
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Int_t Size() const
Return size of object of this class.
TSQLClassInfo * GetSqlInfo() const
TSQLStructure * Stack(Int_t depth=0)
returns head of stack
void SetArray(Int_t sz=-1)
Set structure as array element.
TObjArray * SQLObjectsInfo(Long64_t keyid)
Produce array of TSQLObjectInfo objects for all objects, belong to that key Array should be deleted b...
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...
The ROOT global object gROOT contains a list of all defined classes.
void AddObjectData(TSQLObjectData *objdata)
add element with pointer to object data
virtual void WriteArray(const Bool_t *b, Int_t n)
Write array of Bool_t to buffer.
virtual void WriteFastArrayString(const Char_t *c, Int_t n)
Write array of n characters into the I/O buffer.
virtual TClass * ReadClass(const TClass *cl=0, UInt_t *objTag=0)
Suppressed function of TBuffer.
virtual Int_t ReadStaticArray(Bool_t *b)
Read array of Bool_t from buffer.
const char * GetLocatedField() const
TSQLRow * GetObjectRow(Long64_t objid)
Returns single sql row with object data for that class.
void Streamer(void *obj, TBuffer &b, const TClass *onfile_class=0) const
virtual void ClassEnd(const TClass *)
Method indicates end of streaming of classdata in custom streamer.
void DeleteValues()
Remove all (key,value) pairs from the map AND delete the values when they are allocated on the heap...
static const char * ConvertDouble(Double_t v, char *buf, unsigned len, Bool_t not_optimize=kFALSE)
convert float to string with configured format
void SetCustomElement(TStreamerElement *elem)
set structure type as kSqlCustomElement
Bool_t PrepareForRawData()
prepare to read data from raw table
Converts data to SQL statements or read data from SQL tables.
virtual void ReadDouble(Double_t &d)
Reads Double_t value from buffer.
Version_t GetClassVersion() const
Base class for text-based streamers like TBufferJSON or TBufferXML Special actions list will use meth...
R__ALWAYS_INLINE void SqlWriteArray(T *arr, Int_t arrsize, Bool_t withsize=kFALSE)
void SqlReadBasic(Char_t &value)
Read current value from table and convert it to Char_t value.
void SetObjectPointer(Long64_t ptrid)
set structure type as kSqlPointer
void AddVersion(const TClass *cl, Int_t version=-100)
add child as version
virtual void ReadStdString(std::string *s)
Read a std::string.
TMap implements an associative array of (key,value) pairs using a THashTable for efficient retrieval ...
unsigned long long ULong64_t
Int_t IndexOf(const TObject *obj) const
const char * SqlReadCharStarValue()
Read CharStar value, if it has special code, request it from large table.
Bool_t SqlWriteValue(const char *value, const char *tname)
virtual void SkipObjectAny()
?????? Skip any kind of object from buffer !!!!!! fix me, not yet implemented Should be just skip of ...
virtual void WriteFloat(Float_t f)
Writes Float_t value to buffer.
static constexpr double s
void WorkWithClass(const char *classname, Version_t classversion)
This function is a part of IncrementLevel method.
void SetCompressionLevel(int level)
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
virtual void ReadChar(Char_t &c)
Reads Char_t value from buffer.
virtual void WriteInt(Int_t i)
Writes Int_t value to buffer.
Mother of all ROOT objects.
TObjArray * GetElements() const
Int_t GetClassVersion() const
Bool_t IsTObject() const
Return kTRUE is the class inherits from TObject.
void StreamObjectExtra(void *obj, TMemberStreamer *streamer, const TClass *cl, Int_t n=0, const TClass *onFileClass=nullptr)
Stream object to/from buffer.
virtual void DecrementLevel(TVirtualStreamerInfo *)
Function is called from TStreamerInfo WriteBuffer and Readbuffer functions and decrease level in sql ...
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 ...
Long64_t DefineObjectId(Bool_t recursive=kTRUE)
defines current object id, to which this structure belong make life complicated, because some objects...
virtual void ReadShort(Short_t &s)
Reads Short_t value from buffer.
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
TObject * GetValue(const char *keyname) const
Returns a pointer to the value associated with keyname as name of the key.
Int_t Atoi() const
Return integer value of string.
Long64_t fObjIdCounter
! counter of objects id
virtual void * ReadObjectAny(const TClass *clCast)
Read object from buffer. Only used from TBuffer.
void SetBaseVersion(Int_t v)
virtual 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 ...
friend class TSQLStructure
Long64_t GetObjId() const
virtual void ReadFastArrayString(Char_t *c, Int_t n)
Read array of n characters from the I/O buffer.
virtual ~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 o...
virtual void ReadULong(ULong_t &l)
Reads ULong_t value from buffer.
virtual void ReadULong64(ULong64_t &l)
Reads ULong64_t value from buffer.
virtual void ForceWriteInfo(TVirtualStreamerInfo *info, Bool_t force)
force writing the TStreamerInfo to the file
virtual void WriteCharP(const Char_t *c)
Writes array of characters to buffer.
Abstract Interface class describing Streamer information for one class.
virtual void ReadCharStar(char *&s)
Read a char* string.
Long64_t fFirstObjId
! id of first object to be read from the database
TString fReadBuffer
! Buffer for read value
Long64_t fLastObjId
! id of last object correspond to this key
TObjArray * fObjectsInfos
! array of objects info for selected key
virtual void WriteUInt(UInt_t i)
Writes UInt_t value to buffer.
Long64_t GetObjectTag(const void *obj)
Returns tag for specified object from objects map (if exists) Returns 0 if object not included into o...
TMap * fPoolsMap
! map of pools with data from different tables
virtual void SetOnFileClass(const TClass *cl)
Int_t GetCompressionLevel() const
void * SqlReadAny(Long64_t keyid, Long64_t objid, TClass **cl, void *obj=nullptr)
Recreate object from sql structure.
TSQLStructure * PopStack()
Pop stack.
void * SqlReadObjectDirect(void *obj, TClass **cl, Long64_t objid, TMemberStreamer *streamer=0, Int_t streamer_index=0, const TClass *onFileClass=0)
Read object data.
virtual void ReadUChar(UChar_t &c)
Reads UChar_t value from buffer.
TSQLStructure * GetParent() const
TSQLObjectData * fCurrentData
!
const char * SqlReadValue(const char *tname)
Read string value from current stack node.
void Resize(Ssiz_t n)
Resize the string. Truncate or add blanks as necessary.
virtual void ReadFastArray(Bool_t *b, Int_t n)
Read array of Bool_t from buffer.
virtual void ReadLong(Long_t &l)
Reads Long_t value from buffer.
virtual void SetStreamerElementNumber(TStreamerElement *elem, Int_t comp_type)
Function is called from TStreamerInfo WriteBuffer and Readbuffer functions and add/verify next elemen...
void * New(ENewType defConstructor=kClassNew, Bool_t quiet=kFALSE) const
Return a pointer to a newly allocated object of this class.
const char * Data() const
virtual void WriteChar(Char_t c)
Writes Char_t value to buffer.