Logo ROOT   6.18/05
Reference Guide
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
TBufferJSON Class Reference

Class for serializing object to and from JavaScript Object Notation (JSON) format.

It creates such object representation, which can be directly used in JavaScript ROOT (JSROOT) for drawing.

TBufferJSON implements TBuffer interface, therefore most of ROOT and user classes can be converted into JSON. There are certain limitations for classes with custom streamers, which should be equipped specially for this purposes (see TCanvas::Streamer() as example).

To perform conversion into JSON, one should use TBufferJSON::ToJSON method:

TH1 *h1 = new TH1I("h1", "title", 100, 0, 10);
h1->FillRandom("gaus",10000);
static TString ToJSON(const T *obj, Int_t compact=0, const char *member_name=nullptr)
Definition: TBufferJSON.h:70
1-D histogram with an int per channel (see TH1 documentation)}
Definition: TH1.h:530
The TH1 histogram class.
Definition: TH1.h:56
virtual void FillRandom(const char *fname, Int_t ntimes=5000)
Fill histogram following distribution in function fname.
Definition: TH1.cxx:3428
Basic string class.
Definition: TString.h:131
TH1F * h1
Definition: legend1.C:5

To reconstruct object from the JSON string, one should do:

TH1 *hnew = nullptr;
if (hnew) hnew->Draw("hist");
static Bool_t FromJSON(T *&obj, const char *json)
Definition: TBufferJSON.h:76
virtual void Draw(Option_t *option="")
Draw this histogram with options.
Definition: TH1.cxx:2981

JSON does not include stored class version, therefore schema evolution (reading of older class versions) is not supported. JSON should not be used as persistent storage for object data - only for live applications.

All STL containers by default converted into JSON Array. Vector of integers:

std::vector<int> vect = {1,4,7};
auto json = TBufferJSON::ToJSON(&vect);

Will produce JSON code "[1, 4, 7]".

There are special handling for map classes like map and multimap. They will create Array of pair objects with "first" and "second" as data members. Code:

std::map<int,string> m;
m[1] = "number 1";
m[2] = "number 2";
auto json = TBufferJSON::ToJSON(&m);
auto * m
Definition: textangle.C:8

Will generate json string:

[
{"$pair" : "pair<int,string>", "first" : 1, "second" : "number 1"},
{"$pair" : "pair<int,string>", "first" : 2, "second" : "number 2"}
]

In special cases map container can be converted into JSON object. For that key parameter must be std::string and compact parameter should be 5. Like in example:

std::map<std::string,int> data;
data["name1"] = 11;
data["name2"] = 22;
@ kMapAsObject
store std::map, std::unodered_map as JSON object
Definition: TBufferJSON.h:40

Will produce JSON output:

{
"_typename": "map<string,int>",
"name1": 11,
"name2": 22
}

Another possibility to enforce such conversion - add "JSON_object" into comment line of correspondent data member like:

class Container {
std::map<std::string,int> data; ///< JSON_object
};

Definition at line 29 of file TBufferJSON.h.

Public Types

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

Public Member Functions

 TBufferJSON (TBuffer::EMode mode=TBuffer::kWrite)
 Creates buffer object to serialize data into json. More...
 
virtual ~TBufferJSON ()
 destroy buffer More...
 
virtual void ClassBegin (const TClass *, Version_t=-1)
 Should be called in the beginning of custom class streamer. More...
 
virtual void ClassEnd (const TClass *)
 Should be called at the end of custom streamer See TBufferJSON::ClassBegin for more details. More...
 
virtual void ClassMember (const char *name, const char *typeName=nullptr, Int_t arrsize1=-1, Int_t arrsize2=-1)
 Method indicates name and typename of class member, which should be now streamed in custom streamer Following combinations are supported: More...
 
virtual void DecrementLevel (TVirtualStreamerInfo *)
 Function is called from TStreamerInfo WriteBuffer and ReadBuffer functions and decrease level in json structure. More...
 
virtual TVirtualStreamerInfoGetInfo ()
 Return current streamer info element. More...
 
virtual void IncrementLevel (TVirtualStreamerInfo *)
 Function is called from TStreamerInfo WriteBuffer and ReadBuffer functions and indent new level in json structure. More...
 
Bool_t IsSkipClassInfo (const TClass *cl) const
 Returns true if class info will be skipped from JSON. More...
 
virtual Int_t ReadArray (Bool_t *&b)
 Read array of Bool_t from buffer. More...
 
virtual Int_t ReadArray (Char_t *&c)
 Read array of Char_t from buffer. More...
 
virtual Int_t ReadArray (Double_t *&d)
 Read array of Double_t from buffer. More...
 
virtual Int_t ReadArray (Float_t *&f)
 Read array of Float_t from buffer. More...
 
virtual Int_t ReadArray (Int_t *&i)
 Read array of Int_t from buffer. More...
 
virtual Int_t ReadArray (Long64_t *&l)
 Read array of Long64_t from buffer. More...
 
virtual Int_t ReadArray (Long_t *&l)
 Read array of Long_t from buffer. More...
 
virtual Int_t ReadArray (Short_t *&h)
 Read array of Short_t from buffer. More...
 
virtual Int_t ReadArray (UChar_t *&c)
 Read array of UChar_t from buffer. More...
 
virtual Int_t ReadArray (UInt_t *&i)
 Read array of UInt_t from buffer. More...
 
virtual Int_t ReadArray (ULong64_t *&l)
 Read array of ULong64_t from buffer. More...
 
virtual Int_t ReadArray (ULong_t *&l)
 Read array of ULong_t from buffer. More...
 
virtual Int_t ReadArray (UShort_t *&h)
 Read array of UShort_t from buffer. More...
 
virtual void ReadBaseClass (void *start, TStreamerBase *elem)
 Read data of base class. More...
 
virtual void ReadBool (Bool_t &b)
 Reads Bool_t value from buffer. More...
 
virtual void ReadChar (Char_t &c)
 Reads Char_t value from buffer. More...
 
virtual void ReadCharP (Char_t *c)
 Reads array of characters from buffer. More...
 
virtual void ReadCharStar (char *&s)
 Reads a char* string. More...
 
virtual TClassReadClass (const TClass *cl=nullptr, UInt_t *objTag=nullptr)
 suppressed function of TBuffer More...
 
virtual void ReadDouble (Double_t &d)
 Reads Double_t value from buffer. More...
 
virtual void ReadFastArray (Bool_t *b, Int_t n)
 read array of Bool_t from buffer More...
 
virtual void ReadFastArray (Char_t *c, Int_t n)
 read array of Char_t from buffer More...
 
virtual void ReadFastArray (Double_t *d, Int_t n)
 read array of Double_t from buffer More...
 
virtual void ReadFastArray (Float_t *f, Int_t n)
 read array of Float_t from buffer More...
 
virtual void ReadFastArray (Int_t *i, Int_t n)
 read array of Int_t from buffer More...
 
virtual void ReadFastArray (Long64_t *l, Int_t n)
 read array of Long64_t from buffer More...
 
virtual void ReadFastArray (Long_t *l, Int_t n)
 read array of Long_t from buffer More...
 
virtual void ReadFastArray (Short_t *h, Int_t n)
 read array of Short_t from buffer More...
 
virtual void ReadFastArray (UChar_t *c, Int_t n)
 read array of UChar_t from buffer More...
 
virtual void ReadFastArray (UInt_t *i, Int_t n)
 read array of UInt_t from buffer More...
 
virtual void ReadFastArray (ULong64_t *l, Int_t n)
 read array of ULong64_t from buffer More...
 
virtual void ReadFastArray (ULong_t *l, Int_t n)
 read array of ULong_t from buffer More...
 
virtual void ReadFastArray (UShort_t *h, Int_t n)
 read array of UShort_t from buffer More...
 
virtual void ReadFastArray (void **startp, const TClass *cl, Int_t n=1, Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=nullptr, const TClass *onFileClass=nullptr)
 redefined here to avoid warning message from gcc More...
 
virtual void ReadFastArray (void *start, const TClass *cl, Int_t n=1, TMemberStreamer *s=nullptr, const TClass *onFileClass=nullptr)
 Read an array of 'n' objects from the I/O buffer. More...
 
virtual void ReadFastArrayString (Char_t *c, Int_t n)
 read array of Char_t from buffer More...
 
virtual void ReadFloat (Float_t &f)
 Reads Float_t value from buffer. More...
 
virtual void ReadInt (Int_t &i)
 Reads Int_t value from buffer. More...
 
virtual void ReadLong (Long_t &l)
 Reads Long_t value from buffer. More...
 
virtual void ReadLong64 (Long64_t &l)
 Reads Long64_t value from buffer. More...
 
virtual voidReadObjectAny (const TClass *clCast)
 Read object from buffer. Only used from TBuffer. More...
 
virtual void ReadShort (Short_t &s)
 Reads Short_t value from buffer. More...
 
virtual Int_t ReadStaticArray (Bool_t *b)
 Read array of Bool_t from buffer. More...
 
virtual Int_t ReadStaticArray (Char_t *c)
 Read array of Char_t from buffer. More...
 
virtual Int_t ReadStaticArray (Double_t *d)
 Read array of Double_t from buffer. More...
 
virtual Int_t ReadStaticArray (Float_t *f)
 Read array of Float_t from buffer. More...
 
virtual Int_t ReadStaticArray (Int_t *i)
 Read array of Int_t from buffer. More...
 
virtual Int_t ReadStaticArray (Long64_t *l)
 Read array of Long64_t from buffer. More...
 
virtual Int_t ReadStaticArray (Long_t *l)
 Read array of Long_t from buffer. More...
 
virtual Int_t ReadStaticArray (Short_t *h)
 Read array of Short_t from buffer. More...
 
virtual Int_t ReadStaticArray (UChar_t *c)
 Read array of UChar_t from buffer. More...
 
virtual Int_t ReadStaticArray (UInt_t *i)
 Read array of UInt_t from buffer. More...
 
virtual Int_t ReadStaticArray (ULong64_t *l)
 Read array of ULong64_t from buffer. More...
 
virtual Int_t ReadStaticArray (ULong_t *l)
 Read array of ULong_t from buffer. More...
 
virtual Int_t ReadStaticArray (UShort_t *h)
 Read array of UShort_t from buffer. More...
 
virtual void ReadStdString (std::string &s)
 
virtual void ReadStdString (std::string *s)
 Reads a std::string. More...
 
virtual void ReadStdString (std::string *s)=0
 
virtual void ReadTString (TString &s)
 Reads a TString. More...
 
virtual void ReadUChar (UChar_t &c)
 Reads UChar_t value from buffer. More...
 
virtual void ReadUInt (UInt_t &i)
 Reads UInt_t value from buffer. More...
 
virtual void ReadULong (ULong_t &l)
 Reads ULong_t value from buffer. More...
 
virtual void ReadULong64 (ULong64_t &l)
 Reads ULong64_t value from buffer. More...
 
virtual void ReadUShort (UShort_t &s)
 Reads UShort_t value from buffer. More...
 
virtual Version_t ReadVersion (UInt_t *start=nullptr, UInt_t *bcnt=nullptr, const TClass *cl=nullptr)
 read version value from buffer More...
 
void SetCompact (int level)
 Set level of space/newline/array compression Lower digit of compact parameter define formatting rules. More...
 
void SetSkipClassInfo (const TClass *cl)
 Specify class which typename will not be stored in JSON Several classes can be configured To exclude typeinfo for all classes, call TBufferJSON::SetTypenameTag("") More...
 
virtual void SetStreamerElementNumber (TStreamerElement *elem, Int_t comp_type)
 Function is called from TStreamerInfo WriteBuffer and ReadBuffer functions and add/verify next element of json structure This calls allows separate data, correspondent to one class member, from another. More...
 
void SetTypenameTag (const char *tag="_typename")
 Configures _typename tag in JSON structures By default "_typename" field in JSON structures used to store class information One can specify alternative tag like "$typename" or "xy", but such JSON can not be correctly used in JSROOT If empty string is provided, class information will not be stored. More...
 
void SetTypeversionTag (const char *tag=nullptr)
 Configures _typeversion tag in JSON One can specify name of the JSON tag like "_typeversion" or "$tv" which will be used to store class version Such tag can be used to correctly recover objects from JSON If empty string is provided (default), class version will not be stored. More...
 
virtual void SkipObjectAny ()
 Skip any kind of object from buffer. More...
 
virtual void StreamObject (TObject *obj)
 
virtual void StreamObject (void *obj, const char *className, const TClass *onFileClass=nullptr)
 stream object to/from buffer More...
 
virtual void StreamObject (void *obj, const std::type_info &typeinfo, const TClass *onFileClass=nullptr)
 stream object to/from buffer More...
 
virtual void StreamObject (void *obj, const TClass *cl, const TClass *onFileClass=nullptr)
 stream object to/from buffer More...
 
virtual void WriteArray (const Bool_t *b, Int_t n)
 Write array of Bool_t to buffer. More...
 
virtual void WriteArray (const Char_t *c, Int_t n)
 Write array of Char_t to buffer. More...
 
virtual void WriteArray (const Double_t *d, Int_t n)
 Write array of Double_t to buffer. More...
 
virtual void WriteArray (const Float_t *f, Int_t n)
 Write array of Float_t to buffer. More...
 
virtual void WriteArray (const Int_t *i, Int_t n)
 Write array of Int_ to buffer. More...
 
virtual void WriteArray (const Long64_t *l, Int_t n)
 Write array of Long64_t to buffer. More...
 
virtual void WriteArray (const Long_t *l, Int_t n)
 Write array of Long_t to buffer. More...
 
virtual void WriteArray (const Short_t *h, Int_t n)
 Write array of Short_t to buffer. More...
 
virtual void WriteArray (const UChar_t *c, Int_t n)
 Write array of UChar_t to buffer. More...
 
virtual void WriteArray (const UInt_t *i, Int_t n)
 Write array of UInt_t to buffer. More...
 
virtual void WriteArray (const ULong64_t *l, Int_t n)
 Write array of ULong64_t to buffer. More...
 
virtual void WriteArray (const ULong_t *l, Int_t n)
 Write array of ULong_t to buffer. More...
 
virtual void WriteArray (const UShort_t *h, Int_t n)
 Write array of UShort_t to buffer. More...
 
virtual void WriteBool (Bool_t b)
 Writes Bool_t value to buffer. More...
 
virtual void WriteChar (Char_t c)
 Writes Char_t value to buffer. More...
 
virtual void WriteCharP (const Char_t *c)
 Writes array of characters to buffer. More...
 
virtual void WriteCharStar (char *s)
 Writes a char*. More...
 
virtual void WriteClass (const TClass *cl)
 suppressed function of TBuffer More...
 
virtual void WriteDouble (Double_t d)
 Writes Double_t value to buffer. More...
 
virtual void WriteFastArray (const Bool_t *b, Int_t n)
 Write array of Bool_t to buffer. More...
 
virtual void WriteFastArray (const Char_t *c, Int_t n)
 Write array of Char_t to buffer. More...
 
virtual void WriteFastArray (const Double_t *d, Int_t n)
 Write array of Double_t to buffer. More...
 
virtual void WriteFastArray (const Float_t *f, Int_t n)
 Write array of Float_t to buffer. More...
 
virtual void WriteFastArray (const Int_t *i, Int_t n)
 Write array of Int_t to buffer. More...
 
virtual void WriteFastArray (const Long64_t *l, Int_t n)
 Write array of Long64_t to buffer. More...
 
virtual void WriteFastArray (const Long_t *l, Int_t n)
 Write array of Long_t to buffer. More...
 
virtual void WriteFastArray (const Short_t *h, Int_t n)
 Write array of Short_t to buffer. More...
 
virtual void WriteFastArray (const UChar_t *c, Int_t n)
 Write array of UChar_t to buffer. More...
 
virtual void WriteFastArray (const UInt_t *i, Int_t n)
 Write array of UInt_t to buffer. More...
 
virtual void WriteFastArray (const ULong64_t *l, Int_t n)
 Write array of ULong64_t to buffer. More...
 
virtual void WriteFastArray (const ULong_t *l, Int_t n)
 Write array of ULong_t to buffer. More...
 
virtual void WriteFastArray (const UShort_t *h, Int_t n)
 Write array of UShort_t to buffer. More...
 
virtual Int_t WriteFastArray (void **startp, const TClass *cl, Int_t n=1, Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=nullptr)
 Recall TBuffer function to avoid gcc warning message. More...
 
virtual void WriteFastArray (void *start, const TClass *cl, Int_t n=1, TMemberStreamer *s=nullptr)
 Recall TBuffer function to avoid gcc warning message. More...
 
virtual void WriteFastArrayString (const Char_t *c, Int_t n)
 Write array of Char_t to buffer. More...
 
virtual void WriteFloat (Float_t f)
 Writes Float_t value to buffer. More...
 
virtual void WriteInt (Int_t i)
 Writes Int_t value to buffer. More...
 
virtual void WriteLong (Long_t l)
 Writes Long_t value to buffer. More...
 
virtual void WriteLong64 (Long64_t l)
 Writes Long64_t value to buffer. More...
 
virtual void WriteShort (Short_t s)
 Writes Short_t value to buffer. More...
 
virtual void WriteStdString (const std::string *s)
 Writes a std::string. More...
 
virtual void WriteStdString (const std::string *s)=0
 
virtual void WriteStdString (std::string &s)
 
virtual void WriteTString (const TString &s)
 Writes a TString. More...
 
virtual void WriteUChar (UChar_t c)
 Writes UChar_t value to buffer. More...
 
virtual void WriteUInt (UInt_t i)
 Writes UInt_t value to buffer. More...
 
virtual void WriteULong (ULong_t l)
 Writes ULong_t value to buffer. More...
 
virtual void WriteULong64 (ULong64_t l)
 Writes ULong64_t value to buffer. More...
 
virtual void WriteUShort (UShort_t s)
 Writes UShort_t value to buffer. More...
 
virtual UInt_t WriteVersion (const TClass *cl, Bool_t useBcnt=kFALSE)
 Ignored in TBufferJSON. More...
 
- Public Member Functions inherited from TBufferText
virtual ~TBufferText ()
 destructor More...
 
virtual Int_t ApplySequence (const TStreamerInfoActions::TActionSequence &sequence, void *object)
 Read one collection of objects from the buffer using the StreamerInfoLoopAction. More...
 
virtual Int_t ApplySequence (const TStreamerInfoActions::TActionSequence &sequence, void *start_collection, void *end_collection)
 Read one collection of objects from the buffer using the StreamerInfoLoopAction. More...
 
virtual Int_t ApplySequenceVecPtr (const TStreamerInfoActions::TActionSequence &sequence, void *start_collection, void *end_collection)
 Read one collection of objects from the buffer using the StreamerInfoLoopAction. More...
 
virtual Int_t CheckByteCount (UInt_t, UInt_t, const char *)
 
virtual Int_t CheckByteCount (UInt_t, UInt_t, const TClass *)
 
virtual Int_t ReadArrayDouble32 (Double_t *&d, TStreamerElement *ele=nullptr)
 Read array of Double32_t from buffer. More...
 
virtual Int_t ReadArrayFloat16 (Float_t *&f, TStreamerElement *ele=nullptr)
 Read array of Float16_t from buffer. More...
 
virtual void ReadBaseClass (void *start, TStreamerBase *elem)
 Read data of base class. More...
 
virtual Int_t ReadBuf (void *, Int_t)
 
virtual Int_t ReadClassBuffer (const TClass *, void *, const TClass *=nullptr)
 Deserialize information from a buffer into an object. More...
 
virtual Int_t ReadClassBuffer (const TClass *, void *, Int_t, UInt_t, UInt_t, const TClass *=nullptr)
 Deserialize information from a buffer into an object. More...
 
virtual Int_t ReadClassEmulated (const TClass *, void *, const TClass *=nullptr)
 
virtual void ReadDouble32 (Double_t *d, TStreamerElement *ele=nullptr)
 read a Double32_t from the buffer More...
 
virtual void ReadFastArrayDouble32 (Double_t *d, Int_t n, TStreamerElement *ele=nullptr)
 read array of Double32_t from buffer More...
 
virtual void ReadFastArrayFloat16 (Float_t *f, Int_t n, TStreamerElement *ele=nullptr)
 read array of Float16_t from buffer More...
 
virtual void ReadFastArrayWithFactor (Double_t *ptr, Int_t n, Double_t factor, Double_t minvalue)
 read array of Double32_t from buffer More...
 
virtual void ReadFastArrayWithFactor (Float_t *ptr, Int_t n, Double_t factor, Double_t minvalue)
 read array of Float16_t from buffer More...
 
virtual void ReadFastArrayWithNbits (Double_t *ptr, Int_t n, Int_t nbits)
 read array of Double32_t from buffer More...
 
virtual void ReadFastArrayWithNbits (Float_t *ptr, Int_t n, Int_t nbits)
 read array of Float16_t from buffer More...
 
virtual void ReadFloat16 (Float_t *f, TStreamerElement *ele=nullptr)
 read a Float16_t from the buffer More...
 
virtual TObjectReadObject (const TClass *)
 
virtual Int_t ReadStaticArrayDouble32 (Double_t *d, TStreamerElement *ele=nullptr)
 Read array of Double32_t from buffer. More...
 
virtual Int_t ReadStaticArrayFloat16 (Float_t *f, TStreamerElement *ele=nullptr)
 Read array of Float16_t from buffer. More...
 
virtual char * ReadString (char *, Int_t)
 
virtual Version_t ReadVersionForMemberWise (const TClass *=nullptr)
 
virtual Version_t ReadVersionNoCheckSum (UInt_t *, UInt_t *)
 
virtual void ReadWithFactor (Double_t *ptr, Double_t factor, Double_t minvalue)
 Read a Double32_t from the buffer when the factor and minimun value have been specified see comments about Double32_t encoding at TBufferFile::WriteDouble32(). More...
 
virtual void ReadWithFactor (Float_t *ptr, Double_t factor, Double_t minvalue)
 Read a Double32_t from the buffer when the factor and minimun value have been specified see comments about Double32_t encoding at TBufferFile::WriteDouble32(). More...
 
virtual void ReadWithNbits (Double_t *ptr, Int_t nbits)
 Read a Double32_t from the buffer when the number of bits is specified (explicitly or not) see comments about Double32_t encoding at TBufferFile::WriteDouble32(). More...
 
virtual void ReadWithNbits (Float_t *ptr, Int_t nbits)
 Read a Float16_t from the buffer when the number of bits is specified (explicitly or not) see comments about Float16_t encoding at TBufferFile::WriteFloat16(). More...
 
virtual void SetByteCount (UInt_t, Bool_t=kFALSE)
 
virtual void SkipVersion (const TClass *cl=nullptr)
 Skip class version from I/O buffer. More...
 
virtual void StreamObject (TObject *obj)
 
virtual void StreamObject (TObject *obj)=0
 
virtual void StreamObject (void *obj, const char *className, const TClass *onFileClass=0)=0
 
virtual void StreamObject (void *obj, const char *className, const TClass *onFileClass=nullptr)
 stream object to/from buffer More...
 
virtual void StreamObject (void *obj, const std::type_info &typeinfo, const TClass *onFileClass=0)=0
 
virtual void StreamObject (void *obj, const std::type_info &typeinfo, const TClass *onFileClass=nullptr)
 stream object to/from buffer More...
 
virtual void StreamObject (void *obj, const TClass *cl, const TClass *onFileClass=0)=0
 
virtual void WriteArrayDouble32 (const Double_t *d, Int_t n, TStreamerElement *ele=nullptr)
 Write array of Double32_t to buffer. More...
 
virtual void WriteArrayFloat16 (const Float_t *f, Int_t n, TStreamerElement *ele=nullptr)
 Write array of Float16_t to buffer. More...
 
virtual void WriteBaseClass (void *start, TStreamerBase *elem)
 Write data of base class. More...
 
virtual void WriteBuf (const void *, Int_t)
 
virtual Int_t WriteClassBuffer (const TClass *cl, void *pointer)
 Function called by the Streamer functions to serialize object at p to buffer b. More...
 
virtual void WriteDouble32 (Double_t *d, TStreamerElement *ele=nullptr)
 write a Double32_t to the buffer More...
 
virtual void WriteFastArrayDouble32 (const Double_t *d, Int_t n, TStreamerElement *ele=nullptr)
 Write array of Double32_t to buffer. More...
 
virtual void WriteFastArrayFloat16 (const Float_t *d, Int_t n, TStreamerElement *ele=nullptr)
 Write array of Float16_t to buffer. More...
 
virtual void WriteFloat16 (Float_t *f, TStreamerElement *ele=nullptr)
 write a Float16_t to the buffer More...
 
virtual void WriteString (const char *)
 
virtual UInt_t WriteVersionMemberWise (const TClass *, Bool_t=kFALSE)
 
- Public Member Functions inherited from TBufferIO
virtual ~TBufferIO ()
 destructor More...
 
virtual Bool_t CheckObject (const TObject *obj)
 Check if the specified object is already in the buffer. More...
 
virtual Bool_t CheckObject (const void *obj, const TClass *ptrClass)
 Check if the specified object of the specified class is already in the buffer. More...
 
virtual void ForceWriteInfo (TVirtualStreamerInfo *info, Bool_t force)
 force writing the TStreamerInfo to the file More...
 
virtual void ForceWriteInfoClones (TClonesArray *a)
 Make sure TStreamerInfo is not optimized, otherwise it will not be possible to support schema evolution in read mode. More...
 
virtual Int_t GetBufferDisplacement () const
 
virtual TProcessIDGetLastProcessID (TRefTable *reftable) const
 Return the last TProcessID in the file. More...
 
virtual Int_t GetMapCount () const
 
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 the address of the object and a pointer to its TClass. More...
 
virtual UShort_t GetPidOffset () const
 
virtual UInt_t GetTRefExecId ()
 Return the exec id stored in the current TStreamerInfo element. More...
 
virtual Int_t GetVersionOwner () const
 Return the version number of the owner file. More...
 
virtual void InitMap ()
 Create the fMap container and initialize them with the null object. More...
 
virtual void MapObject (const TObject *obj, UInt_t offset=1)
 Add object to the fMap container. More...
 
virtual void MapObject (const void *obj, const TClass *cl, UInt_t offset=1)
 Add object to the fMap container. More...
 
virtual Int_t ReadClones (TClonesArray *a, Int_t nobjects, Version_t objvers)
 Interface to TStreamerInfo::ReadBufferClones. More...
 
virtual TProcessIDReadProcessID (UShort_t pidf)
 The TProcessID with number pidf is read from file. More...
 
virtual void Reset ()
 Reset buffer object. Resets map and buffer offset. More...
 
virtual void ResetMap ()
 Delete existing fMap and reset map counter. More...
 
virtual void SetBufferDisplacement ()
 
virtual void SetBufferDisplacement (Int_t skipped)
 
virtual void SetPidOffset (UShort_t offset)
 This offset is used when a key (or basket) is transfered from one file to the other. More...
 
virtual void SetReadParam (Int_t mapsize)
 Set the initial size of the map used to store object and class references during reading. More...
 
virtual void SetWriteParam (Int_t mapsize)
 Set the initial size of the hashtable used to store object and class references during writing. More...
 
virtual void TagStreamerInfo (TVirtualStreamerInfo *info)
 Mark the classindex of the current file as using this TStreamerInfo. More...
 
virtual Int_t WriteClones (TClonesArray *a, Int_t nobjects)
 Interface to TStreamerInfo::WriteBufferClones. More...
 
template<class T >
Int_t WriteObject (const T *objptr, Bool_t cacheReuse=kTRUE)
 
virtual void WriteObject (const TObject *obj, Bool_t cacheReuse)=0
 
virtual void WriteObject (const TObject *obj, Bool_t cacheReuse=kTRUE)
 Write object to I/O buffer. More...
 
virtual Int_t WriteObjectAny (const void *obj, const TClass *ptrClass, Bool_t cacheReuse=kTRUE)
 Write object to I/O buffer. More...
 
virtual UShort_t WriteProcessID (TProcessID *pid)
 Check if the ProcessID pid is already in the file. More...
 
- Public Member Functions inherited from TBuffer
 TBuffer (EMode mode)
 Create an I/O buffer object. More...
 
 TBuffer (EMode mode, Int_t bufsiz)
 Create an I/O buffer object. More...
 
 TBuffer (EMode mode, Int_t bufsiz, void *buf, Bool_t adopt=kTRUE, ReAllocCharFun_t reallocfunc=0)
 Create an I/O buffer object. More...
 
virtual ~TBuffer ()
 Delete an I/O buffer object. More...
 
virtual Int_t ApplySequence (const TStreamerInfoActions::TActionSequence &sequence, void *object)=0
 
virtual Int_t ApplySequence (const TStreamerInfoActions::TActionSequence &sequence, void *start_collection, void *end_collection)=0
 
virtual Int_t ApplySequenceVecPtr (const TStreamerInfoActions::TActionSequence &sequence, void *start_collection, void *end_collection)=0
 
void AutoExpand (Int_t size_needed)
 Automatically calculate a new size and expand the buffer to fit at least size_needed. More...
 
char * Buffer () const
 
Int_t BufferSize () const
 
Bool_t ByteSwapBuffer (Long64_t n, EDataType type)
 Byte-swap N primitive-elements in the buffer. More...
 
virtual Int_t CheckByteCount (UInt_t startpos, UInt_t bcnt, const char *classname)=0
 
virtual Int_t CheckByteCount (UInt_t startpos, UInt_t bcnt, const TClass *clss)=0
 
virtual Bool_t CheckObject (const TObject *obj)=0
 
virtual Bool_t CheckObject (const void *obj, const TClass *ptrClass)=0
 
virtual void ClassBegin (const TClass *, Version_t=-1)=0
 
virtual void ClassEnd (const TClass *)=0
 
virtual void ClassMember (const char *, const char *=0, Int_t=-1, Int_t=-1)=0
 
virtual void DecrementLevel (TVirtualStreamerInfo *)=0
 
void DetachBuffer ()
 
void Expand (Int_t newsize, Bool_t copy=kTRUE)
 Expand (or shrink) the I/O buffer to newsize bytes. More...
 
virtual void ForceWriteInfo (TVirtualStreamerInfo *info, Bool_t force)=0
 
virtual void ForceWriteInfoClones (TClonesArray *a)=0
 
virtual Int_t GetBufferDisplacement () const =0
 
Int_t GetBufferVersion () const
 
char * GetCurrent () const
 
virtual TVirtualStreamerInfoGetInfo ()=0
 
virtual TProcessIDGetLastProcessID (TRefTable *reftable) const =0
 
virtual Int_t GetMapCount () const =0
 
virtual void GetMappedObject (UInt_t tag, void *&ptr, TClass *&ClassPtr) const =0
 
TObjectGetParent () const
 Return pointer to parent of this buffer. More...
 
virtual UShort_t GetPidOffset () const =0
 
ReAllocCharFun_t GetReAllocFunc () const
 Return the reallocation method currently used. More...
 
virtual UInt_t GetTRefExecId ()=0
 
virtual Int_t GetVersionOwner () const =0
 
virtual void IncrementLevel (TVirtualStreamerInfo *info)=0
 
virtual void InitMap ()=0
 
Bool_t IsReading () const
 
Bool_t IsWriting () const
 
Int_t Length () const
 
virtual void MapObject (const TObject *obj, UInt_t offset=1)=0
 
virtual void MapObject (const void *obj, const TClass *cl, UInt_t offset=1)=0
 
virtual TVirtualArrayPeekDataCache () const
 Return the 'current' data cache area from the list of area to be used for temporarily store 'missing' data members. More...
 
virtual TVirtualArrayPopDataCache ()
 Pop and Return the 'current' data cache area from the list of area to be used for temporarily store 'missing' data members. More...
 
virtual void PushDataCache (TVirtualArray *)
 Push a new data cache area onto the list of area to be used for temporarily store 'missing' data members. More...
 
virtual Int_t ReadArray (Bool_t *&b)=0
 
virtual Int_t ReadArray (Char_t *&c)=0
 
virtual Int_t ReadArray (Double_t *&d)=0
 
virtual Int_t ReadArray (Float_t *&f)=0
 
virtual Int_t ReadArray (Int_t *&i)=0
 
virtual Int_t ReadArray (Long64_t *&l)=0
 
virtual Int_t ReadArray (Long_t *&l)=0
 
virtual Int_t ReadArray (Short_t *&h)=0
 
virtual Int_t ReadArray (UChar_t *&c)=0
 
virtual Int_t ReadArray (UInt_t *&i)=0
 
virtual Int_t ReadArray (ULong64_t *&l)=0
 
virtual Int_t ReadArray (ULong_t *&l)=0
 
virtual Int_t ReadArray (UShort_t *&h)=0
 
virtual Int_t ReadArrayDouble32 (Double_t *&d, TStreamerElement *ele=0)=0
 
virtual Int_t ReadArrayFloat16 (Float_t *&f, TStreamerElement *ele=0)=0
 
virtual void ReadBool (Bool_t &b)=0
 
virtual Int_t ReadBuf (void *buf, Int_t max)=0
 
virtual void ReadChar (Char_t &c)=0
 
virtual void ReadCharP (Char_t *c)=0
 
virtual void ReadCharStar (char *&s)=0
 
virtual TClassReadClass (const TClass *cl=0, UInt_t *objTag=0)=0
 
virtual Int_t ReadClassBuffer (const TClass *cl, void *pointer, const TClass *onfile_class=0)=0
 
virtual Int_t ReadClassBuffer (const TClass *cl, void *pointer, Int_t version, UInt_t start, UInt_t count, const TClass *onfile_class=0)=0
 
virtual Int_t ReadClassEmulated (const TClass *cl, void *object, const TClass *onfile_class=0)=0
 
virtual Int_t ReadClones (TClonesArray *a, Int_t nobjects, Version_t objvers)=0
 
virtual void ReadDouble (Double_t &d)=0
 
virtual void ReadDouble32 (Double_t *d, TStreamerElement *ele=0)=0
 
virtual void ReadFastArray (Bool_t *b, Int_t n)=0
 
virtual void ReadFastArray (Char_t *c, Int_t n)=0
 
virtual void ReadFastArray (Double_t *d, Int_t n)=0
 
virtual void ReadFastArray (Float_t *f, Int_t n)=0
 
virtual void ReadFastArray (Int_t *i, Int_t n)=0
 
virtual void ReadFastArray (Long64_t *l, Int_t n)=0
 
virtual void ReadFastArray (Long_t *l, Int_t n)=0
 
virtual void ReadFastArray (Short_t *h, Int_t n)=0
 
virtual void ReadFastArray (UChar_t *c, Int_t n)=0
 
virtual void ReadFastArray (UInt_t *i, Int_t n)=0
 
virtual void ReadFastArray (ULong64_t *l, Int_t n)=0
 
virtual void ReadFastArray (ULong_t *l, Int_t n)=0
 
virtual void ReadFastArray (UShort_t *h, Int_t n)=0
 
virtual void ReadFastArray (void **startp, const TClass *cl, Int_t n=1, Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=0, const TClass *onFileClass=0)=0
 
virtual void ReadFastArray (void *start, const TClass *cl, Int_t n=1, TMemberStreamer *s=0, const TClass *onFileClass=0)=0
 
virtual void ReadFastArrayDouble32 (Double_t *d, Int_t n, TStreamerElement *ele=0)=0
 
virtual void ReadFastArrayFloat16 (Float_t *f, Int_t n, TStreamerElement *ele=0)=0
 
virtual void ReadFastArrayString (Char_t *c, Int_t n)=0
 
virtual void ReadFastArrayWithFactor (Double_t *ptr, Int_t n, Double_t factor, Double_t minvalue)=0
 
virtual void ReadFastArrayWithFactor (Float_t *ptr, Int_t n, Double_t factor, Double_t minvalue)=0
 
virtual void ReadFastArrayWithNbits (Double_t *ptr, Int_t n, Int_t nbits)=0
 
virtual void ReadFastArrayWithNbits (Float_t *ptr, Int_t n, Int_t nbits)=0
 
virtual void ReadFloat (Float_t &f)=0
 
virtual void ReadFloat16 (Float_t *f, TStreamerElement *ele=0)=0
 
virtual void ReadInt (Int_t &i)=0
 
virtual void ReadLong (Long_t &l)=0
 
virtual void ReadLong64 (Long64_t &l)=0
 
virtual TObjectReadObject (const TClass *cl)=0
 
virtual voidReadObjectAny (const TClass *cast)=0
 
virtual TProcessIDReadProcessID (UShort_t pidf)=0
 Return the current Process-ID. More...
 
virtual void ReadShort (Short_t &s)=0
 
virtual Int_t ReadStaticArray (Bool_t *b)=0
 
virtual Int_t ReadStaticArray (Char_t *c)=0
 
virtual Int_t ReadStaticArray (Double_t *d)=0
 
virtual Int_t ReadStaticArray (Float_t *f)=0
 
virtual Int_t ReadStaticArray (Int_t *i)=0
 
virtual Int_t ReadStaticArray (Long64_t *l)=0
 
virtual Int_t ReadStaticArray (Long_t *l)=0
 
virtual Int_t ReadStaticArray (Short_t *h)=0
 
virtual Int_t ReadStaticArray (UChar_t *c)=0
 
virtual Int_t ReadStaticArray (UInt_t *i)=0
 
virtual Int_t ReadStaticArray (ULong64_t *l)=0
 
virtual Int_t ReadStaticArray (ULong_t *l)=0
 
virtual Int_t ReadStaticArray (UShort_t *h)=0
 
virtual Int_t ReadStaticArrayDouble32 (Double_t *d, TStreamerElement *ele=0)=0
 
virtual Int_t ReadStaticArrayFloat16 (Float_t *f, TStreamerElement *ele=0)=0
 
virtual void ReadStdString (std::string &s)
 
virtual void ReadStdString (std::string *s)=0
 
virtual char * ReadString (char *s, Int_t max)=0
 
virtual void ReadTString (TString &s)=0
 
virtual void ReadUChar (UChar_t &c)=0
 
virtual void ReadUInt (UInt_t &i)=0
 
virtual void ReadULong (ULong_t &l)=0
 
virtual void ReadULong64 (ULong64_t &l)=0
 
virtual void ReadUShort (UShort_t &s)=0
 
virtual Version_t ReadVersion (UInt_t *start=0, UInt_t *bcnt=0, const TClass *cl=0)=0
 
virtual Version_t ReadVersionForMemberWise (const TClass *cl=0)=0
 
virtual Version_t ReadVersionNoCheckSum (UInt_t *start=0, UInt_t *bcnt=0)=0
 
virtual void ReadWithFactor (Double_t *ptr, Double_t factor, Double_t minvalue)=0
 
virtual void ReadWithFactor (Float_t *ptr, Double_t factor, Double_t minvalue)=0
 
virtual void ReadWithNbits (Double_t *ptr, Int_t nbits)=0
 
virtual void ReadWithNbits (Float_t *ptr, Int_t nbits)=0
 
virtual void Reset ()=0
 
virtual void ResetMap ()=0
 
void SetBuffer (void *buf, UInt_t bufsiz=0, Bool_t adopt=kTRUE, ReAllocCharFun_t reallocfunc=0)
 Sets a new buffer in an existing TBuffer object. More...
 
virtual void SetBufferDisplacement ()=0
 
virtual void SetBufferDisplacement (Int_t skipped)=0
 
void SetBufferOffset (Int_t offset=0)
 
virtual void SetByteCount (UInt_t cntpos, Bool_t packInVersion=kFALSE)=0
 
void SetParent (TObject *parent)
 Set parent owning this buffer. More...
 
virtual void SetPidOffset (UShort_t offset)=0
 
void SetReadMode ()
 Set buffer in read mode. More...
 
virtual void SetReadParam (Int_t mapsize)=0
 
void SetReAllocFunc (ReAllocCharFun_t reallocfunc=0)
 Set which memory reallocation method to use. More...
 
virtual void SetStreamerElementNumber (TStreamerElement *elem, Int_t comp_type)=0
 
void SetWriteMode ()
 Set buffer in write mode. More...
 
virtual void SetWriteParam (Int_t mapsize)=0
 
virtual void SkipObjectAny ()=0
 
virtual void SkipVersion (const TClass *cl=0)=0
 
virtual void StreamObject (TObject *obj)=0
 
virtual void StreamObject (void *obj, const char *className, const TClass *onFileClass=0)=0
 
virtual void StreamObject (void *obj, const std::type_info &typeinfo, const TClass *onFileClass=0)=0
 
virtual void StreamObject (void *obj, const TClass *cl, const TClass *onFileClass=0)=0
 
virtual void TagStreamerInfo (TVirtualStreamerInfo *info)=0
 
virtual void WriteArray (const Bool_t *b, Int_t n)=0
 
virtual void WriteArray (const Char_t *c, Int_t n)=0
 
virtual void WriteArray (const Double_t *d, Int_t n)=0
 
virtual void WriteArray (const Float_t *f, Int_t n)=0
 
virtual void WriteArray (const Int_t *i, Int_t n)=0
 
virtual void WriteArray (const Long64_t *l, Int_t n)=0
 
virtual void WriteArray (const Long_t *l, Int_t n)=0
 
virtual void WriteArray (const Short_t *h, Int_t n)=0
 
virtual void WriteArray (const UChar_t *c, Int_t n)=0
 
virtual void WriteArray (const UInt_t *i, Int_t n)=0
 
virtual void WriteArray (const ULong64_t *l, Int_t n)=0
 
virtual void WriteArray (const ULong_t *l, Int_t n)=0
 
virtual void WriteArray (const UShort_t *h, Int_t n)=0
 
virtual void WriteArrayDouble32 (const Double_t *d, Int_t n, TStreamerElement *ele=0)=0
 
virtual void WriteArrayFloat16 (const Float_t *f, Int_t n, TStreamerElement *ele=0)=0
 
virtual void WriteBool (Bool_t b)=0
 
virtual void WriteBuf (const void *buf, Int_t max)=0
 
virtual void WriteChar (Char_t c)=0
 
virtual void WriteCharP (const Char_t *c)=0
 
virtual void WriteCharStar (char *s)=0
 
virtual void WriteClass (const TClass *cl)=0
 
virtual Int_t WriteClassBuffer (const TClass *cl, void *pointer)=0
 
virtual Int_t WriteClones (TClonesArray *a, Int_t nobjects)=0
 
virtual void WriteDouble (Double_t d)=0
 
virtual void WriteDouble32 (Double_t *d, TStreamerElement *ele=0)=0
 
virtual void WriteFastArray (const Bool_t *b, Int_t n)=0
 
virtual void WriteFastArray (const Char_t *c, Int_t n)=0
 
virtual void WriteFastArray (const Double_t *d, Int_t n)=0
 
virtual void WriteFastArray (const Float_t *f, Int_t n)=0
 
virtual void WriteFastArray (const Int_t *i, Int_t n)=0
 
virtual void WriteFastArray (const Long64_t *l, Int_t n)=0
 
virtual void WriteFastArray (const Long_t *l, Int_t n)=0
 
virtual void WriteFastArray (const Short_t *h, Int_t n)=0
 
virtual void WriteFastArray (const UChar_t *c, Int_t n)=0
 
virtual void WriteFastArray (const UInt_t *i, Int_t n)=0
 
virtual void WriteFastArray (const ULong64_t *l, Int_t n)=0
 
virtual void WriteFastArray (const ULong_t *l, Int_t n)=0
 
virtual void WriteFastArray (const UShort_t *h, Int_t n)=0
 
virtual Int_t WriteFastArray (void **startp, const TClass *cl, Int_t n=1, Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=0)=0
 
virtual void WriteFastArray (void *start, const TClass *cl, Int_t n=1, TMemberStreamer *s=0)=0
 
virtual void WriteFastArrayDouble32 (const Double_t *d, Int_t n, TStreamerElement *ele=0)=0
 
virtual void WriteFastArrayFloat16 (const Float_t *f, Int_t n, TStreamerElement *ele=0)=0
 
virtual void WriteFastArrayString (const Char_t *c, Int_t n)=0
 
virtual void WriteFloat (Float_t f)=0
 
virtual void WriteFloat16 (Float_t *f, TStreamerElement *ele=0)=0
 
virtual void WriteInt (Int_t i)=0
 
virtual void WriteLong (Long_t l)=0
 
virtual void WriteLong64 (Long64_t l)=0
 
template<class T >
Int_t WriteObject (const T *objptr, Bool_t cacheReuse=kTRUE)
 
virtual void WriteObject (const TObject *obj, Bool_t cacheReuse)=0
 
virtual Int_t WriteObjectAny (const void *obj, const TClass *ptrClass, Bool_t cacheReuse=kTRUE)=0
 
virtual UShort_t WriteProcessID (TProcessID *pid)=0
 Always return 0 (current processID). More...
 
virtual void WriteShort (Short_t s)=0
 
virtual void WriteStdString (const std::string *s)=0
 
virtual void WriteStdString (std::string &s)
 
virtual void WriteString (const char *s)=0
 
virtual void WriteTString (const TString &s)=0
 
virtual void WriteUChar (UChar_t c)=0
 
virtual void WriteUInt (UInt_t i)=0
 
virtual void WriteULong (ULong_t l)=0
 
virtual void WriteULong64 (ULong64_t l)=0
 
virtual void WriteUShort (UShort_t s)=0
 
virtual UInt_t WriteVersion (const TClass *cl, Bool_t useBcnt=kFALSE)=0
 
virtual UInt_t WriteVersionMemberWise (const TClass *cl, Bool_t useBcnt=kFALSE)=0
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor. More...
 
 TObject (const TObject &object)
 TObject copy ctor. More...
 
virtual ~TObject ()
 TObject destructor. More...
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract. More...
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad. More...
 
virtual void Browse (TBrowser *b)
 Browse object. May be overridden for another default action. More...
 
ULong_t CheckedHash ()
 Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object. More...
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs. More...
 
virtual void Clear (Option_t *="")
 
virtual TObjectClone (const char *newname="") const
 Make a clone of an object using the Streamer facility. More...
 
virtual Int_t Compare (const TObject *obj) const
 Compare abstract method. More...
 
virtual void Copy (TObject &object) const
 Copy this to obj. More...
 
virtual void Delete (Option_t *option="")
 Delete this object. More...
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object. More...
 
virtual void Draw (Option_t *option="")
 Default Draw method for all objects. More...
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs. More...
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad). More...
 
virtual void Dump () const
 Dump contents of object on stdout. More...
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message. More...
 
virtual void Execute (const char *method, const char *params, Int_t *error=0)
 Execute method on this object with the given parameter string, e.g. More...
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=0)
 Execute method on this object with parameters stored in the TObjArray. More...
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py). More...
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message. More...
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes. More...
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes. More...
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object. More...
 
virtual const char * GetIconName () const
 Returns mime type name of object. More...
 
virtual const char * GetName () const
 Returns name of object. More...
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py). More...
 
virtual Option_tGetOption () const
 
virtual const char * GetTitle () const
 Returns title of object. More...
 
virtual UInt_t GetUniqueID () const
 Return the unique object id. More...
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out. More...
 
virtual ULong_t Hash () const
 Return hash value for this object. More...
 
Bool_t HasInconsistentHash () const
 Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e. More...
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message. More...
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname". More...
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl. More...
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas. More...
 
void InvertBit (UInt_t f)
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory). More...
 
virtual Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More...
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
virtual Bool_t IsSortable () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
virtual void ls (Option_t *option="") const
 The ls function lists the contents of a class on stdout. More...
 
void MayNotUse (const char *method) const
 Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). More...
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification. More...
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete. More...
 
void operator delete (void *ptr)
 Operator delete. More...
 
void operator delete[] (void *ptr)
 Operator delete []. More...
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator. More...
 
virtual void Paint (Option_t *option="")
 This method must be overridden if a class wants to paint itself. More...
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list. More...
 
virtual void Print (Option_t *option="") const
 This method must be overridden when a class wants to print itself. More...
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory. More...
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list. More...
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename. More...
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out". More...
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f. More...
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object. More...
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id. More...
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message. More...
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
virtual void UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. More...
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0)
 Write this object to the current directory. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const
 Write this object to the current directory. More...
 

Static Public Member Functions

static TObjectConvertFromJSON (const char *str)
 Read TObject-based class from JSON, produced by ConvertToJSON() method. More...
 
static voidConvertFromJSONAny (const char *str, TClass **cl=nullptr)
 Read object from JSON, produced by ConvertToJSON() method. More...
 
static TString ConvertToJSON (const TObject *obj, Int_t compact=0, const char *member_name=nullptr)
 Converts object, inherited from TObject class, to JSON string Lower digit of compact parameter define formatting rules. More...
 
static TString ConvertToJSON (const void *obj, const TClass *cl, Int_t compact=0, const char *member_name=nullptr)
 Converts any type of object to JSON string One should provide pointer on object and its class name Lower digit of compact parameter define formatting rules. More...
 
static TString ConvertToJSON (const void *obj, TDataMember *member, Int_t compact=0, Int_t arraylen=-1)
 Converts selected data member into json Parameter ptr specifies address in memory, where data member is located compact parameter defines compactness of produced JSON (from 0 to 3) arraylen (when specified) is array length for this data member, //[fN] case. More...
 
static Int_t ExportToFile (const char *filename, const TObject *obj, const char *option=nullptr)
 Convert object into JSON and store in text file Returns size of the produce file Used in TObject::SaveAs() More...
 
static Int_t ExportToFile (const char *filename, const void *obj, const TClass *cl, const char *option=nullptr)
 Convert object into JSON and store in text file Returns size of the produce file. More...
 
template<class T >
static std::unique_ptr< T > FromJSON (const std::string &json)
 
template<class T >
static Bool_t FromJSON (T *&obj, const char *json)
 
template<class T >
static TString ToJSON (const T *obj, Int_t compact=0, const char *member_name=nullptr)
 
- Static Public Member Functions inherited from TBufferText
static void CompactFloatString (char *buf, unsigned len)
 method compress float string, excluding exp and/or move float point More...
 
static const char * ConvertDouble (Double_t v, char *buf, unsigned len, Bool_t not_optimize=kFALSE)
 convert float to string with configured format More...
 
static const char * ConvertFloat (Float_t v, char *buf, unsigned len, Bool_t not_optimize=kFALSE)
 convert float to string with configured format More...
 
static const char * GetDoubleFormat ()
 return current printf format for double members, default "%.14e" More...
 
static const char * GetFloatFormat ()
 return current printf format for float members, default "%e" More...
 
static void SetDoubleFormat (const char *fmt="%.14e")
 set printf format for double members, default "%.14e" use it after SetFloatFormat, which also overwrites format for doubles More...
 
static void SetFloatFormat (const char *fmt="%e")
 set printf format for float/double members, default "%e" to change format only for doubles, use SetDoubleFormat More...
 
- Static Public Member Functions inherited from TBufferIO
static Int_t GetGlobalReadParam ()
 Get default read map size. More...
 
static Int_t GetGlobalWriteParam ()
 Get default write map size. More...
 
static void SetGlobalReadParam (Int_t mapsize)
 Set the initial size of the map used to store object and class references during reading. More...
 
static void SetGlobalWriteParam (Int_t mapsize)
 Set the initial size of the map used to store object and class references during reading. More...
 
- Static Public Member Functions inherited from TBuffer
static TClassGetClass (const char *className)
 Forward to TROOT::GetClass(). More...
 
static TClassGetClass (const std::type_info &typeinfo)
 Forward to TROOT::GetClass(). More...
 
- Static Public Member Functions inherited from TObject
static Long_t GetDtorOnly ()
 Return destructor only flag. More...
 
static Bool_t GetObjectStat ()
 Get status of object stat flag. More...
 
static void SetDtorOnly (void *obj)
 Set destructor only flag. More...
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable. More...
 

Protected Member Functions

void AppendOutput (const char *line0, const char *line1=nullptr)
 Append two string to the output JSON, normally separate by line break. More...
 
void JsonDisablePostprocessing ()
 disable post-processing of the code More...
 
void JsonPushValue ()
 If value exists, push in the current stack for post-processing. More...
 
template<typename T >
R__ALWAYS_INLINE Int_t JsonReadArray (T *value)
 Read static array from JSON - not used. More...
 
template<typename T >
R__ALWAYS_INLINE void JsonReadBasic (T &value)
 Template function to read basic value from JSON. More...
 
void JsonReadCollection (TCollection *obj, const TClass *objClass)
 read content of ROOT collection More...
 
template<typename T >
R__ALWAYS_INLINE void JsonReadFastArray (T *arr, Int_t arrsize, bool asstring=false)
 Template method to read array from the JSON. More...
 
voidJsonReadObject (void *obj, const TClass *objClass=nullptr, TClass **readClass=nullptr)
 Read object from current JSON node. More...
 
void JsonReadTObjectMembers (TObject *obj, void *node=nullptr)
 
Int_t JsonSpecialClass (const TClass *cl) const
 return non-zero value when class has special handling in JSON it is TCollection (-130), TArray (100), TString (110), std::string (120) and STL containers (1..6) More...
 
void JsonStartElement (const TStreamerElement *elem, const TClass *base_class)
 Start new class member in JSON structures. More...
 
TJSONStackObj * JsonStartObjectWrite (const TClass *obj_class, TStreamerInfo *info=nullptr)
 Start object element with typeinfo. More...
 
template<typename T >
R__ALWAYS_INLINE void JsonWriteArrayCompress (const T *vname, Int_t arrsize, const char *typname)
 
void JsonWriteBasic (Bool_t value)
 converts Bool_t to string and add to json value buffer More...
 
void JsonWriteBasic (Char_t value)
 converts Char_t to string and add to json value buffer More...
 
void JsonWriteBasic (Double_t value)
 converts Double_t to string and add to json value buffer More...
 
void JsonWriteBasic (Float_t value)
 converts Float_t to string and add to json value buffer More...
 
void JsonWriteBasic (Int_t value)
 converts Int_t to string and add to json value buffer More...
 
void JsonWriteBasic (Long64_t value)
 converts Long64_t to string and add to json value buffer More...
 
void JsonWriteBasic (Long_t value)
 converts Long_t to string and add to json value buffer More...
 
void JsonWriteBasic (Short_t value)
 converts Short_t to string and add to json value buffer More...
 
void JsonWriteBasic (UChar_t value)
 converts UChar_t to string and add to json value buffer More...
 
void JsonWriteBasic (UInt_t value)
 converts UInt_t to string and add to json value buffer More...
 
void JsonWriteBasic (ULong64_t value)
 converts ULong64_t to string and add to json value buffer More...
 
void JsonWriteBasic (ULong_t value)
 converts ULong_t to string and add to json value buffer More...
 
void JsonWriteBasic (UShort_t value)
 converts UShort_t to string and add to json value buffer More...
 
void JsonWriteCollection (TCollection *obj, const TClass *objClass)
 store content of ROOT collection More...
 
void JsonWriteConstChar (const char *value, Int_t len=-1, const char *=nullptr)
 writes string value, processing all kind of special characters More...
 
template<typename T >
R__ALWAYS_INLINE void JsonWriteFastArray (const T *arr, Int_t arrsize, const char *typname, void(TBufferJSON::*method)(const T *, Int_t, const char *))
 Template method to write array of arbitrary dimensions Different methods can be used for store last array dimension - either JsonWriteArrayCompress<T>() or JsonWriteConstChar() More...
 
TString JsonWriteMember (const void *ptr, TDataMember *member, TClass *memberClass, Int_t arraylen)
 Convert single data member to JSON structures Returns string with converted member. More...
 
void JsonWriteObject (const void *obj, const TClass *objClass, Bool_t check_map=kTRUE)
 Write object to buffer If object was written before, only pointer will be stored If check_map==kFALSE, object will be stored in any case and pointer will not be registered in the map. More...
 
void PerformPostProcessing (TJSONStackObj *stack, const TClass *obj_cl=nullptr)
 Function is converts TObject and TString structures to more compact representation. More...
 
TJSONStackObj * PopStack ()
 remove one level from stack More...
 
TJSONStackObj * PushStack (Int_t inclevel=0, void *readnode=nullptr)
 add new level to the structures stack More...
 
TJSONStackObj * Stack ()
 
void WorkWithClass (TStreamerInfo *info, const TClass *cl=nullptr)
 Prepares buffer to stream data of specified class. More...
 
void WorkWithElement (TStreamerElement *elem, Int_t)
 This is call-back from streamer which indicates that class member will be streamed Name of element used in JSON. More...
 
virtual void WriteObjectClass (const void *actualObjStart, const TClass *actualClass, Bool_t cacheReuse)
 Write object to buffer. Only used from TBuffer. More...
 
- Protected Member Functions inherited from TBufferText
 TBufferText ()
 Default constructor. More...
 
 TBufferText (TBuffer::EMode mode, TObject *parent=nullptr)
 Normal constructor. More...
 
- Protected Member Functions inherited from TBufferIO
 TBufferIO ()=default
 
 TBufferIO (TBuffer::EMode mode)
 constructor More...
 
 TBufferIO (TBuffer::EMode mode, Int_t bufsiz)
 constructor More...
 
 TBufferIO (TBuffer::EMode mode, Int_t bufsiz, void *buf, Bool_t adopt=kTRUE, ReAllocCharFun_t reallocfunc=nullptr)
 constructor More...
 
virtual void CheckCount (UInt_t)
 
Long64_t GetObjectTag (const void *obj)
 Returns tag for specified object from objects map (if exists) Returns 0 if object not included into objects map. More...
 
virtual void WriteObjectClass (const void *actualObjStart, const TClass *actualClass, Bool_t cacheReuse)=0
 
- Protected Member Functions inherited from TBuffer
 TBuffer ()
 
 TBuffer (const TBuffer &)
 
void operator= (const TBuffer &)
 
Int_t Read (const char *name)
 Read contents of object with specified name from the current directory. More...
 
Int_t Write (const char *name, Int_t opt, Int_t bufs)
 Write this object to the current directory. More...
 
Int_t Write (const char *name, Int_t opt, Int_t bufs) const
 Write this object to the current directory. More...
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected). More...
 
void MakeZombie ()
 

Static Protected Member Functions

static voidConvertFromJSONChecked (const char *str, const TClass *expectedClass)
 Read objects from JSON, one can reuse existing object. More...
 
- Static Protected Member Functions inherited from TBufferIO
static R__ALWAYS_INLINE ULong_t Void_Hash (const void *ptr)
 Return hash value for provided object. More...
 

Protected Attributes

Int_t fArrayCompact {0}
 ! 0 - no array compression, 1 - exclude leading/trailing zeros, 2 - check value repetition More...
 
TString fArraySepar
 ! depending from compression level, ", " or "," More...
 
Int_t fCompact {0}
 ! 0 - no any compression, 1 - no spaces in the begin, 2 - no new lines, 3 - no spaces at all More...
 
unsigned fJsonrCnt {0}
 ! counter for all objects, used for referencing More...
 
Bool_t fMapAsObject {kFALSE}
 ! when true, std::map will be converted into JSON object More...
 
TString fNumericLocale
 ! stored value of setlocale(LC_NUMERIC), which should be recovered at the end More...
 
TString fOutBuffer
 ! main output buffer for json code More...
 
TStringfOutput {nullptr}
 ! current output buffer for json code More...
 
TString fSemicolon
 ! depending from compression level, " : " or ":" More...
 
TObjArrayfSkipClasses {nullptr}
 ! list of classes, which class info is not stored More...
 
std::deque< TJSONStackObj * > fStack
 ! hierarchy of currently streamed element More...
 
TString fTypeNameTag
 ! JSON member used for storing class name, when empty - no class name will be stored More...
 
TString fTypeVersionTag
 ! JSON member used to store class version, default empty More...
 
TString fValue
 ! buffer for current value More...
 
- Protected Attributes inherited from TBufferIO
TExMapfClassMap {nullptr}
 Map containing object,class pairs for reading. More...
 
Int_t fDisplacement {0}
 Value to be added to the map offsets. More...
 
TExMapfMap {nullptr}
 Map containing object,offset pairs for reading/writing. More...
 
Int_t fMapCount {0}
 Number of objects or classes in map. More...
 
Int_t fMapSize {0}
 Default size of map. More...
 
UShort_t fPidOffset {0}
 Offset to be added to the pid index in this key/buffer. More...
 
- Protected Attributes inherited from TBuffer
char * fBufCur
 
char * fBuffer
 
char * fBufMax
 
Int_t fBufSize
 
CacheList_t fCacheStack
 Realloc function to be used when extending the buffer. More...
 
Bool_t fMode
 
TObjectfParent
 
ReAllocCharFun_t fReAllocFunc
 
Int_t fVersion
 

Additional Inherited Members

- Protected Types inherited from TBufferIO
enum  { kNullTag = 0 }
 
- Protected Types inherited from TBuffer
typedef std::vector< TVirtualArray * > CacheList_t
 
- Static Protected Attributes inherited from TBufferText
static const char * fgDoubleFmt = "%.14e"
 ! printf argument for doubles, either "%f" or "%e" or "%10f" and so on More...
 
static const char * fgFloatFmt = "%e"
 ! printf argument for floats, either "%f" or "%e" or "%10f" and so on More...
 
- Static Protected Attributes inherited from TBufferIO
static Int_t fgMapSize = kMapSize
 Default map size for all TBuffer objects. More...
 

#include <TBufferJSON.h>

Inheritance diagram for TBufferJSON:
[legend]

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
kNoCompress 

no any compression, maximal size of JSON (default)

kNoIndent 

remove spaces in the beginning showing JSON indentation level

kNoNewLine 

no indent plus skip newline symbols

kNoSpaces 

no new lines plus remove all spaces around "," and ":" symbols

kMapAsObject 

store std::map, std::unodered_map as JSON object

kZeroSuppression 

if array has much zeros in begin and/or end, they will be removed

kSameSuppression 

zero suppression plus compress many similar values together

kSkipTypeInfo 

Definition at line 33 of file TBufferJSON.h.

Constructor & Destructor Documentation

◆ TBufferJSON()

TBufferJSON::TBufferJSON ( TBuffer::EMode  mode = TBuffer::kWrite)

Creates buffer object to serialize data into json.

Definition at line 475 of file TBufferJSON.cxx.

◆ ~TBufferJSON()

TBufferJSON::~TBufferJSON ( )
virtual

destroy buffer

Definition at line 496 of file TBufferJSON.cxx.

Member Function Documentation

◆ AppendOutput()

void TBufferJSON::AppendOutput ( const char *  line0,
const char *  line1 = nullptr 
)
protected

Append two string to the output JSON, normally separate by line break.

Definition at line 1127 of file TBufferJSON.cxx.

◆ ClassBegin()

void TBufferJSON::ClassBegin ( const TClass cl,
Version_t  = -1 
)
virtual

Should be called in the beginning of custom class streamer.

Informs buffer data about class which will be streamed now.

ClassBegin(), ClassEnd() and ClassMember() should be used in custom class streamers to specify which kind of data are now streamed. Such information is used to correctly convert class data to JSON. Without that functions calls classes with custom streamers cannot be used with TBufferJSON

Implements TBuffer.

Definition at line 2128 of file TBufferJSON.cxx.

◆ ClassEnd()

void TBufferJSON::ClassEnd ( const TClass )
virtual

Should be called at the end of custom streamer See TBufferJSON::ClassBegin for more details.

Implements TBuffer.

Definition at line 2137 of file TBufferJSON.cxx.

◆ ClassMember()

void TBufferJSON::ClassMember ( const char *  name,
const char *  typeName = nullptr,
Int_t  arrsize1 = -1,
Int_t  arrsize2 = -1 
)
virtual

Method indicates name and typename of class member, 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);
    #define b(i)
    Definition: RSha256.hxx:100
  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.ClassMember("fName","TString");
    fName.Streamer(b);
  5. Pointer on object as data member
    b.ClassMember("fObj","TObject*");
    b.StreamObject(fObj);

arrsize1 and arrsize2 arguments (when specified) indicate first and second dimension of array. Can be used for array of basic types. See ClassBegin() method for more details.

Implements TBuffer.

Definition at line 2179 of file TBufferJSON.cxx.

◆ ConvertFromJSON()

TObject * TBufferJSON::ConvertFromJSON ( const char *  str)
static

Read TObject-based class from JSON, produced by ConvertToJSON() method.

If object does not inherit from TObject class, return 0.

Definition at line 893 of file TBufferJSON.cxx.

◆ ConvertFromJSONAny()

void * TBufferJSON::ConvertFromJSONAny ( const char *  str,
TClass **  cl = nullptr 
)
static

Read object from JSON, produced by ConvertToJSON() method.

In class pointer (if specified) read class is returned One must specify expected object class, if it is TArray or STL container

Definition at line 916 of file TBufferJSON.cxx.

◆ ConvertFromJSONChecked()

void * TBufferJSON::ConvertFromJSONChecked ( const char *  str,
const TClass expectedClass 
)
staticprotected

Read objects from JSON, one can reuse existing object.

Definition at line 946 of file TBufferJSON.cxx.

◆ ConvertToJSON() [1/3]

TString TBufferJSON::ConvertToJSON ( const TObject obj,
Int_t  compact = 0,
const char *  member_name = nullptr 
)
static

Converts object, inherited from TObject class, to JSON string Lower digit of compact parameter define formatting rules.

  • 0 - no any compression, human-readable form
  • 1 - exclude spaces in the begin
  • 2 - remove newlines
  • 3 - exclude spaces as much as possible

Second digit of compact parameter defines algorithm for arrays compression

  • 0 - no compression, standard JSON array
  • 1 - exclude leading and trailing zeros
  • 2 - check values repetition and empty gaps

Maximal compression achieved when compact parameter equal to 23 When member_name specified, converts only this data member

Definition at line 524 of file TBufferJSON.cxx.

◆ ConvertToJSON() [2/3]

TString TBufferJSON::ConvertToJSON ( const void obj,
const TClass cl,
Int_t  compact = 0,
const char *  member_name = nullptr 
)
static

Converts any type of object to JSON string One should provide pointer on object and its class name Lower digit of compact parameter define formatting rules.

  • 0 - no any compression, human-readable form
  • 1 - exclude spaces in the begin
  • 2 - remove newlines
  • 3 - exclude spaces as much as possible Second digit of compact parameter defines algorithm for arrays compression
  • 0 - no compression, standard JSON array
  • 1 - exclude leading and trailing zeros
  • 2 - check values repetition and empty gaps If third digit of compact parameter is 1, "_typename" will be skipped Maximal compression achieved when compact parameter equal to 23 When member_name specified, converts only this data member

Definition at line 643 of file TBufferJSON.cxx.

◆ ConvertToJSON() [3/3]

TString TBufferJSON::ConvertToJSON ( const void obj,
TDataMember member,
Int_t  compact = 0,
Int_t  arraylen = -1 
)
static

Converts selected data member into json Parameter ptr specifies address in memory, where data member is located compact parameter defines compactness of produced JSON (from 0 to 3) arraylen (when specified) is array length for this data member, //[fN] case.

Definition at line 706 of file TBufferJSON.cxx.

◆ DecrementLevel()

void TBufferJSON::DecrementLevel ( TVirtualStreamerInfo info)
virtual

Function is called from TStreamerInfo WriteBuffer and ReadBuffer functions and decrease level in json structure.

Implements TBuffer.

Definition at line 1995 of file TBufferJSON.cxx.

◆ ExportToFile() [1/2]

Int_t TBufferJSON::ExportToFile ( const char *  filename,
const TObject obj,
const char *  option = nullptr 
)
static

Convert object into JSON and store in text file Returns size of the produce file Used in TObject::SaveAs()

Definition at line 733 of file TBufferJSON.cxx.

◆ ExportToFile() [2/2]

Int_t TBufferJSON::ExportToFile ( const char *  filename,
const void obj,
const TClass cl,
const char *  option = nullptr 
)
static

Convert object into JSON and store in text file Returns size of the produce file.

Definition at line 813 of file TBufferJSON.cxx.

◆ FromJSON() [1/2]

template<class T >
static std::unique_ptr< T > TBufferJSON::FromJSON ( const std::string &  json)
inlinestatic

Definition at line 85 of file TBufferJSON.h.

◆ FromJSON() [2/2]

template<class T >
static Bool_t TBufferJSON::FromJSON ( T *&  obj,
const char *  json 
)
inlinestatic

Definition at line 76 of file TBufferJSON.h.

◆ GetInfo()

TVirtualStreamerInfo * TBufferJSON::GetInfo ( )
virtual

Return current streamer info element.

Implements TBuffer.

Definition at line 2026 of file TBufferJSON.cxx.

◆ IncrementLevel()

void TBufferJSON::IncrementLevel ( TVirtualStreamerInfo info)
virtual

Function is called from TStreamerInfo WriteBuffer and ReadBuffer functions and indent new level in json structure.

This call indicates, that TStreamerInfo functions starts streaming object data of correspondent class

Implements TBuffer.

Definition at line 1948 of file TBufferJSON.cxx.

◆ IsSkipClassInfo()

Bool_t TBufferJSON::IsSkipClassInfo ( const TClass cl) const

Returns true if class info will be skipped from JSON.

Definition at line 620 of file TBufferJSON.cxx.

◆ JsonDisablePostprocessing()

void TBufferJSON::JsonDisablePostprocessing ( )
protected

disable post-processing of the code

Definition at line 1241 of file TBufferJSON.cxx.

◆ JsonPushValue()

void TBufferJSON::JsonPushValue ( )
protected

If value exists, push in the current stack for post-processing.

Definition at line 2467 of file TBufferJSON.cxx.

◆ JsonReadArray()

template<typename T >
R__ALWAYS_INLINE Int_t TBufferJSON::JsonReadArray ( T *  value)
protected

Read static array from JSON - not used.

Definition at line 2581 of file TBufferJSON.cxx.

◆ JsonReadBasic()

template<typename T >
R__ALWAYS_INLINE void TBufferJSON::JsonReadBasic ( T &  value)
protected

Template function to read basic value from JSON.

Definition at line 3433 of file TBufferJSON.cxx.

◆ JsonReadCollection()

void TBufferJSON::JsonReadCollection ( TCollection obj,
const TClass objClass 
)
protected

read content of ROOT collection

Definition at line 1633 of file TBufferJSON.cxx.

◆ JsonReadFastArray()

template<typename T >
R__ALWAYS_INLINE void TBufferJSON::JsonReadFastArray ( T *  arr,
Int_t  arrsize,
bool  asstring = false 
)
protected

Template method to read array from the JSON.

Definition at line 2695 of file TBufferJSON.cxx.

◆ JsonReadObject()

void * TBufferJSON::JsonReadObject ( void obj,
const TClass objClass = nullptr,
TClass **  readClass = nullptr 
)
protected

Read object from current JSON node.

Definition at line 1731 of file TBufferJSON.cxx.

◆ JsonReadTObjectMembers()

void TBufferJSON::JsonReadTObjectMembers ( TObject obj,
void node = nullptr 
)
protected

Definition at line 1925 of file TBufferJSON.cxx.

◆ JsonSpecialClass()

Int_t TBufferJSON::JsonSpecialClass ( const TClass cl) const
protected

return non-zero value when class has special handling in JSON it is TCollection (-130), TArray (100), TString (110), std::string (120) and STL containers (1..6)

Definition at line 1250 of file TBufferJSON.cxx.

◆ JsonStartElement()

void TBufferJSON::JsonStartElement ( const TStreamerElement elem,
const TClass base_class 
)
protected

Start new class member in JSON structures.

Definition at line 1183 of file TBufferJSON.cxx.

◆ JsonStartObjectWrite()

TJSONStackObj * TBufferJSON::JsonStartObjectWrite ( const TClass obj_class,
TStreamerInfo info = nullptr 
)
protected

Start object element with typeinfo.

Definition at line 1149 of file TBufferJSON.cxx.

◆ JsonWriteArrayCompress()

template<typename T >
R__ALWAYS_INLINE void TBufferJSON::JsonWriteArrayCompress ( const T *  vname,
Int_t  arrsize,
const char *  typname 
)
protected

Definition at line 2957 of file TBufferJSON.cxx.

◆ JsonWriteBasic() [1/13]

void TBufferJSON::JsonWriteBasic ( Bool_t  value)
protected

converts Bool_t to string and add to json value buffer

Definition at line 3846 of file TBufferJSON.cxx.

◆ JsonWriteBasic() [2/13]

void TBufferJSON::JsonWriteBasic ( Char_t  value)
protected

converts Char_t to string and add to json value buffer

Definition at line 3766 of file TBufferJSON.cxx.

◆ JsonWriteBasic() [3/13]

void TBufferJSON::JsonWriteBasic ( Double_t  value)
protected

converts Double_t to string and add to json value buffer

Definition at line 3830 of file TBufferJSON.cxx.

◆ JsonWriteBasic() [4/13]

void TBufferJSON::JsonWriteBasic ( Float_t  value)
protected

converts Float_t to string and add to json value buffer

Definition at line 3814 of file TBufferJSON.cxx.

◆ JsonWriteBasic() [5/13]

void TBufferJSON::JsonWriteBasic ( Int_t  value)
protected

converts Int_t to string and add to json value buffer

Definition at line 3786 of file TBufferJSON.cxx.

◆ JsonWriteBasic() [6/13]

void TBufferJSON::JsonWriteBasic ( Long64_t  value)
protected

converts Long64_t to string and add to json value buffer

Definition at line 3806 of file TBufferJSON.cxx.

◆ JsonWriteBasic() [7/13]

void TBufferJSON::JsonWriteBasic ( Long_t  value)
protected

converts Long_t to string and add to json value buffer

Definition at line 3796 of file TBufferJSON.cxx.

◆ JsonWriteBasic() [8/13]

void TBufferJSON::JsonWriteBasic ( Short_t  value)
protected

converts Short_t to string and add to json value buffer

Definition at line 3776 of file TBufferJSON.cxx.

◆ JsonWriteBasic() [9/13]

void TBufferJSON::JsonWriteBasic ( UChar_t  value)
protected

converts UChar_t to string and add to json value buffer

Definition at line 3854 of file TBufferJSON.cxx.

◆ JsonWriteBasic() [10/13]

void TBufferJSON::JsonWriteBasic ( UInt_t  value)
protected

converts UInt_t to string and add to json value buffer

Definition at line 3874 of file TBufferJSON.cxx.

◆ JsonWriteBasic() [11/13]

void TBufferJSON::JsonWriteBasic ( ULong64_t  value)
protected

converts ULong64_t to string and add to json value buffer

Definition at line 3894 of file TBufferJSON.cxx.

◆ JsonWriteBasic() [12/13]

void TBufferJSON::JsonWriteBasic ( ULong_t  value)
protected

converts ULong_t to string and add to json value buffer

Definition at line 3884 of file TBufferJSON.cxx.

◆ JsonWriteBasic() [13/13]

void TBufferJSON::JsonWriteBasic ( UShort_t  value)
protected

converts UShort_t to string and add to json value buffer

Definition at line 3864 of file TBufferJSON.cxx.

◆ JsonWriteCollection()

void TBufferJSON::JsonWriteCollection ( TCollection obj,
const TClass objClass 
)
protected

store content of ROOT collection

Definition at line 1559 of file TBufferJSON.cxx.

◆ JsonWriteConstChar()

void TBufferJSON::JsonWriteConstChar ( const char *  value,
Int_t  len = -1,
const char *  = nullptr 
)
protected

writes string value, processing all kind of special characters

Definition at line 3902 of file TBufferJSON.cxx.

◆ JsonWriteFastArray()

template<typename T >
R__ALWAYS_INLINE void TBufferJSON::JsonWriteFastArray ( const T *  arr,
Int_t  arrsize,
const char *  typname,
void(TBufferJSON::*)(const T *, Int_t, const char *)  method 
)
protected

Template method to write array of arbitrary dimensions Different methods can be used for store last array dimension - either JsonWriteArrayCompress<T>() or JsonWriteConstChar()

Definition at line 3160 of file TBufferJSON.cxx.

◆ JsonWriteMember()

TString TBufferJSON::JsonWriteMember ( const void ptr,
TDataMember member,
TClass memberClass,
Int_t  arraylen 
)
protected

Convert single data member to JSON structures Returns string with converted member.

Definition at line 976 of file TBufferJSON.cxx.

◆ JsonWriteObject()

void TBufferJSON::JsonWriteObject ( const void obj,
const TClass objClass,
Bool_t  check_map = kTRUE 
)
protected

Write object to buffer If object was written before, only pointer will be stored If check_map==kFALSE, object will be stored in any case and pointer will not be registered in the map.

Definition at line 1288 of file TBufferJSON.cxx.

◆ PerformPostProcessing()

void TBufferJSON::PerformPostProcessing ( TJSONStackObj *  stack,
const TClass obj_cl = nullptr 
)
protected

Function is converts TObject and TString structures to more compact representation.

Definition at line 2275 of file TBufferJSON.cxx.

◆ PopStack()

TJSONStackObj * TBufferJSON::PopStack ( )
protected

remove one level from stack

Definition at line 1114 of file TBufferJSON.cxx.

◆ PushStack()

TJSONStackObj * TBufferJSON::PushStack ( Int_t  inclevel = 0,
void readnode = nullptr 
)
protected

add new level to the structures stack

Definition at line 1096 of file TBufferJSON.cxx.

◆ ReadArray() [1/13]

Int_t TBufferJSON::ReadArray ( Bool_t *&  b)
virtual

Read array of Bool_t from buffer.

Implements TBuffer.

Definition at line 2476 of file TBufferJSON.cxx.

◆ ReadArray() [2/13]

Int_t TBufferJSON::ReadArray ( Char_t *&  c)
virtual

Read array of Char_t from buffer.

Implements TBuffer.

Definition at line 2484 of file TBufferJSON.cxx.

◆ ReadArray() [3/13]

Int_t TBufferJSON::ReadArray ( Double_t *&  d)
virtual

Read array of Double_t from buffer.

Implements TBuffer.

Definition at line 2572 of file TBufferJSON.cxx.

◆ ReadArray() [4/13]

Int_t TBufferJSON::ReadArray ( Float_t *&  f)
virtual

Read array of Float_t from buffer.

Implements TBuffer.

Definition at line 2564 of file TBufferJSON.cxx.

◆ ReadArray() [5/13]

Int_t TBufferJSON::ReadArray ( Int_t *&  i)
virtual

Read array of Int_t from buffer.

Implements TBuffer.

Definition at line 2516 of file TBufferJSON.cxx.

◆ ReadArray() [6/13]

Int_t TBufferJSON::ReadArray ( Long64_t *&  l)
virtual

Read array of Long64_t from buffer.

Implements TBuffer.

Definition at line 2548 of file TBufferJSON.cxx.

◆ ReadArray() [7/13]

Int_t TBufferJSON::ReadArray ( Long_t *&  l)
virtual

Read array of Long_t from buffer.

Implements TBuffer.

Definition at line 2532 of file TBufferJSON.cxx.

◆ ReadArray() [8/13]

Int_t TBufferJSON::ReadArray ( Short_t *&  h)
virtual

Read array of Short_t from buffer.

Implements TBuffer.

Definition at line 2500 of file TBufferJSON.cxx.

◆ ReadArray() [9/13]

Int_t TBufferJSON::ReadArray ( UChar_t *&  c)
virtual

Read array of UChar_t from buffer.

Implements TBuffer.

Definition at line 2492 of file TBufferJSON.cxx.

◆ ReadArray() [10/13]

Int_t TBufferJSON::ReadArray ( UInt_t *&  i)
virtual

Read array of UInt_t from buffer.

Implements TBuffer.

Definition at line 2524 of file TBufferJSON.cxx.

◆ ReadArray() [11/13]

Int_t TBufferJSON::ReadArray ( ULong64_t *&  l)
virtual

Read array of ULong64_t from buffer.

Implements TBuffer.

Definition at line 2556 of file TBufferJSON.cxx.

◆ ReadArray() [12/13]

Int_t TBufferJSON::ReadArray ( ULong_t *&  l)
virtual

Read array of ULong_t from buffer.

Implements TBuffer.

Definition at line 2540 of file TBufferJSON.cxx.

◆ ReadArray() [13/13]

Int_t TBufferJSON::ReadArray ( UShort_t *&  h)
virtual

Read array of UShort_t from buffer.

Implements TBuffer.

Definition at line 2508 of file TBufferJSON.cxx.

◆ ReadBaseClass()

void TBufferJSON::ReadBaseClass ( void start,
TStreamerBase elem 
)
virtual

Read data of base class.

Reimplemented from TBufferText.

Definition at line 3943 of file TBufferJSON.cxx.

◆ ReadBool()

void TBufferJSON::ReadBool ( Bool_t b)
virtual

Reads Bool_t value from buffer.

Implements TBuffer.

Definition at line 3441 of file TBufferJSON.cxx.

◆ ReadChar()

void TBufferJSON::ReadChar ( Char_t c)
virtual

Reads Char_t value from buffer.

Implements TBuffer.

Definition at line 3449 of file TBufferJSON.cxx.

◆ ReadCharP()

void TBufferJSON::ReadCharP ( Char_t c)
virtual

Reads array of characters from buffer.

Implements TBuffer.

Definition at line 3559 of file TBufferJSON.cxx.

◆ ReadCharStar()

void TBufferJSON::ReadCharStar ( char *&  s)
virtual

Reads a char* string.

Implements TBuffer.

Definition at line 3585 of file TBufferJSON.cxx.

◆ ReadClass()

TClass * TBufferJSON::ReadClass ( const TClass cl = nullptr,
UInt_t objTag = nullptr 
)
virtual

suppressed function of TBuffer

Implements TBuffer.

Definition at line 2396 of file TBufferJSON.cxx.

◆ ReadDouble()

void TBufferJSON::ReadDouble ( Double_t d)
virtual

Reads Double_t value from buffer.

Implements TBuffer.

Definition at line 3547 of file TBufferJSON.cxx.

◆ ReadFastArray() [1/15]

void TBufferJSON::ReadFastArray ( Bool_t b,
Int_t  n 
)
virtual

read array of Bool_t from buffer

Implements TBuffer.

Definition at line 2756 of file TBufferJSON.cxx.

◆ ReadFastArray() [2/15]

void TBufferJSON::ReadFastArray ( Char_t c,
Int_t  n 
)
virtual

read array of Char_t from buffer

Implements TBuffer.

Definition at line 2764 of file TBufferJSON.cxx.

◆ ReadFastArray() [3/15]

void TBufferJSON::ReadFastArray ( Double_t d,
Int_t  n 
)
virtual

read array of Double_t from buffer

Implements TBuffer.

Definition at line 2860 of file TBufferJSON.cxx.

◆ ReadFastArray() [4/15]

void TBufferJSON::ReadFastArray ( Float_t f,
Int_t  n 
)
virtual

read array of Float_t from buffer

Implements TBuffer.

Definition at line 2852 of file TBufferJSON.cxx.

◆ ReadFastArray() [5/15]

void TBufferJSON::ReadFastArray ( Int_t i,
Int_t  n 
)
virtual

read array of Int_t from buffer

Implements TBuffer.

Definition at line 2804 of file TBufferJSON.cxx.

◆ ReadFastArray() [6/15]

void TBufferJSON::ReadFastArray ( Long64_t l,
Int_t  n 
)
virtual

read array of Long64_t from buffer

Implements TBuffer.

Definition at line 2836 of file TBufferJSON.cxx.

◆ ReadFastArray() [7/15]

void TBufferJSON::ReadFastArray ( Long_t l,
Int_t  n 
)
virtual

read array of Long_t from buffer

Implements TBuffer.

Definition at line 2820 of file TBufferJSON.cxx.

◆ ReadFastArray() [8/15]

void TBufferJSON::ReadFastArray ( Short_t h,
Int_t  n 
)
virtual

read array of Short_t from buffer

Implements TBuffer.

Definition at line 2788 of file TBufferJSON.cxx.

◆ ReadFastArray() [9/15]

void TBufferJSON::ReadFastArray ( UChar_t c,
Int_t  n 
)
virtual

read array of UChar_t from buffer

Implements TBuffer.

Definition at line 2780 of file TBufferJSON.cxx.

◆ ReadFastArray() [10/15]

void TBufferJSON::ReadFastArray ( UInt_t i,
Int_t  n 
)
virtual

read array of UInt_t from buffer

Implements TBuffer.

Definition at line 2812 of file TBufferJSON.cxx.

◆ ReadFastArray() [11/15]

void TBufferJSON::ReadFastArray ( ULong64_t l,
Int_t  n 
)
virtual

read array of ULong64_t from buffer

Implements TBuffer.

Definition at line 2844 of file TBufferJSON.cxx.

◆ ReadFastArray() [12/15]

void TBufferJSON::ReadFastArray ( ULong_t l,
Int_t  n 
)
virtual

read array of ULong_t from buffer

Implements TBuffer.

Definition at line 2828 of file TBufferJSON.cxx.

◆ ReadFastArray() [13/15]

void TBufferJSON::ReadFastArray ( UShort_t h,
Int_t  n 
)
virtual

read array of UShort_t from buffer

Implements TBuffer.

Definition at line 2796 of file TBufferJSON.cxx.

◆ ReadFastArray() [14/15]

void TBufferJSON::ReadFastArray ( void **  startp,
const TClass cl,
Int_t  n = 1,
Bool_t  isPreAlloc = kFALSE,
TMemberStreamer s = nullptr,
const TClass onFileClass = nullptr 
)
virtual

redefined here to avoid warning message from gcc

Implements TBuffer.

Definition at line 2911 of file TBufferJSON.cxx.

◆ ReadFastArray() [15/15]

void TBufferJSON::ReadFastArray ( void start,
const TClass cl,
Int_t  n = 1,
TMemberStreamer s = nullptr,
const TClass onFileClass = nullptr 
)
virtual

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'. Copied code from TBufferFile

Implements TBuffer.

Definition at line 2871 of file TBufferJSON.cxx.

◆ ReadFastArrayString()

void TBufferJSON::ReadFastArrayString ( Char_t c,
Int_t  n 
)
virtual

read array of Char_t from buffer

Implements TBuffer.

Definition at line 2772 of file TBufferJSON.cxx.

◆ ReadFloat()

void TBufferJSON::ReadFloat ( Float_t f)
virtual

Reads Float_t value from buffer.

Implements TBuffer.

Definition at line 3535 of file TBufferJSON.cxx.

◆ ReadInt()

void TBufferJSON::ReadInt ( Int_t i)
virtual

Reads Int_t value from buffer.

Implements TBuffer.

Definition at line 3484 of file TBufferJSON.cxx.

◆ ReadLong()

void TBufferJSON::ReadLong ( Long_t l)
virtual

Reads Long_t value from buffer.

Implements TBuffer.

Definition at line 3503 of file TBufferJSON.cxx.

◆ ReadLong64()

void TBufferJSON::ReadLong64 ( Long64_t l)
virtual

Reads Long64_t value from buffer.

Implements TBuffer.

Definition at line 3519 of file TBufferJSON.cxx.

◆ ReadObjectAny()

void * TBufferJSON::ReadObjectAny ( const TClass clCast)
virtual

Read object from buffer. Only used from TBuffer.

Implements TBuffer.

Definition at line 2440 of file TBufferJSON.cxx.

◆ ReadShort()

void TBufferJSON::ReadShort ( Short_t s)
virtual

Reads Short_t value from buffer.

Implements TBuffer.

Definition at line 3468 of file TBufferJSON.cxx.

◆ ReadStaticArray() [1/13]

Int_t TBufferJSON::ReadStaticArray ( Bool_t b)
virtual

Read array of Bool_t from buffer.

Implements TBuffer.

Definition at line 2590 of file TBufferJSON.cxx.

◆ ReadStaticArray() [2/13]

Int_t TBufferJSON::ReadStaticArray ( Char_t c)
virtual

Read array of Char_t from buffer.

Implements TBuffer.

Definition at line 2598 of file TBufferJSON.cxx.

◆ ReadStaticArray() [3/13]

Int_t TBufferJSON::ReadStaticArray ( Double_t d)
virtual

Read array of Double_t from buffer.

Implements TBuffer.

Definition at line 2686 of file TBufferJSON.cxx.

◆ ReadStaticArray() [4/13]

Int_t TBufferJSON::ReadStaticArray ( Float_t f)
virtual

Read array of Float_t from buffer.

Implements TBuffer.

Definition at line 2678 of file TBufferJSON.cxx.

◆ ReadStaticArray() [5/13]

Int_t TBufferJSON::ReadStaticArray ( Int_t i)
virtual

Read array of Int_t from buffer.

Implements TBuffer.

Definition at line 2630 of file TBufferJSON.cxx.

◆ ReadStaticArray() [6/13]

Int_t TBufferJSON::ReadStaticArray ( Long64_t l)
virtual

Read array of Long64_t from buffer.

Implements TBuffer.

Definition at line 2662 of file TBufferJSON.cxx.

◆ ReadStaticArray() [7/13]

Int_t TBufferJSON::ReadStaticArray ( Long_t l)
virtual

Read array of Long_t from buffer.

Implements TBuffer.

Definition at line 2646 of file TBufferJSON.cxx.

◆ ReadStaticArray() [8/13]

Int_t TBufferJSON::ReadStaticArray ( Short_t h)
virtual

Read array of Short_t from buffer.

Implements TBuffer.

Definition at line 2614 of file TBufferJSON.cxx.

◆ ReadStaticArray() [9/13]

Int_t TBufferJSON::ReadStaticArray ( UChar_t c)
virtual

Read array of UChar_t from buffer.

Implements TBuffer.

Definition at line 2606 of file TBufferJSON.cxx.

◆ ReadStaticArray() [10/13]

Int_t TBufferJSON::ReadStaticArray ( UInt_t i)
virtual

Read array of UInt_t from buffer.

Implements TBuffer.

Definition at line 2638 of file TBufferJSON.cxx.

◆ ReadStaticArray() [11/13]

Int_t TBufferJSON::ReadStaticArray ( ULong64_t l)
virtual

Read array of ULong64_t from buffer.

Implements TBuffer.

Definition at line 2670 of file TBufferJSON.cxx.

◆ ReadStaticArray() [12/13]

Int_t TBufferJSON::ReadStaticArray ( ULong_t l)
virtual

Read array of ULong_t from buffer.

Implements TBuffer.

Definition at line 2654 of file TBufferJSON.cxx.

◆ ReadStaticArray() [13/13]

Int_t TBufferJSON::ReadStaticArray ( UShort_t h)
virtual

Read array of UShort_t from buffer.

Implements TBuffer.

Definition at line 2622 of file TBufferJSON.cxx.

◆ ReadStdString() [1/3]

virtual void TBuffer::ReadStdString ( std::string &  s)
inlinevirtual

Reimplemented from TBuffer.

Definition at line 291 of file TBuffer.h.

◆ ReadStdString() [2/3]

void TBufferJSON::ReadStdString ( std::string *  s)
virtual

Reads a std::string.

Implements TBuffer.

Definition at line 3577 of file TBufferJSON.cxx.

◆ ReadStdString() [3/3]

virtual void TBuffer::ReadStdString ( std::string *  s)
virtual

Implements TBuffer.

◆ ReadTString()

void TBufferJSON::ReadTString ( TString s)
virtual

Reads a TString.

Implements TBuffer.

Definition at line 3567 of file TBufferJSON.cxx.

◆ ReadUChar()

void TBufferJSON::ReadUChar ( UChar_t c)
virtual

Reads UChar_t value from buffer.

Implements TBuffer.

Definition at line 3460 of file TBufferJSON.cxx.

◆ ReadUInt()

void TBufferJSON::ReadUInt ( UInt_t i)
virtual

Reads UInt_t value from buffer.

Implements TBuffer.

Definition at line 3495 of file TBufferJSON.cxx.

◆ ReadULong()

void TBufferJSON::ReadULong ( ULong_t l)
virtual

Reads ULong_t value from buffer.

Implements TBuffer.

Definition at line 3511 of file TBufferJSON.cxx.

◆ ReadULong64()

void TBufferJSON::ReadULong64 ( ULong64_t l)
virtual

Reads ULong64_t value from buffer.

Implements TBuffer.

Definition at line 3527 of file TBufferJSON.cxx.

◆ ReadUShort()

void TBufferJSON::ReadUShort ( UShort_t s)
virtual

Reads UShort_t value from buffer.

Implements TBuffer.

Definition at line 3476 of file TBufferJSON.cxx.

◆ ReadVersion()

Version_t TBufferJSON::ReadVersion ( UInt_t start = nullptr,
UInt_t bcnt = nullptr,
const TClass cl = nullptr 
)
virtual

read version value from buffer

Implements TBuffer.

Definition at line 2409 of file TBufferJSON.cxx.

◆ SetCompact()

void TBufferJSON::SetCompact ( int  level)

Set level of space/newline/array compression Lower digit of compact parameter define formatting rules.

  • kNoCompress = 0 - no any compression, human-readable form
  • kNoIndent = 1 - remove indentation spaces in the begin of each line
  • kNoNewLine = 2 - remove also newlines
  • kNoSpaces = 3 - exclude all spaces and new lines

Second digit of compact parameter defines algorithm for arrays compression

  • 0 - no compression, standard JSON array
  • kZeroSuppression = 10 - exclude leading and trailing zeros
  • kSameSuppression = 20 - check values repetition and empty gaps

Third digit defines usage of typeinfo

  • kSkipTypeInfo = 100 - "_typename" field will be skipped, reading by ROOT or JSROOT may be impossible

Definition at line 556 of file TBufferJSON.cxx.

◆ SetSkipClassInfo()

void TBufferJSON::SetSkipClassInfo ( const TClass cl)

Specify class which typename will not be stored in JSON Several classes can be configured To exclude typeinfo for all classes, call TBufferJSON::SetTypenameTag("")

Definition at line 607 of file TBufferJSON.cxx.

◆ SetStreamerElementNumber()

void TBufferJSON::SetStreamerElementNumber ( TStreamerElement elem,
Int_t  comp_type 
)
virtual

Function is called from TStreamerInfo WriteBuffer and ReadBuffer functions and add/verify next element of json structure This calls allows separate data, correspondent to one class member, from another.

Implements TBuffer.

Definition at line 2036 of file TBufferJSON.cxx.

◆ SetTypenameTag()

void TBufferJSON::SetTypenameTag ( const char *  tag = "_typename")

Configures _typename tag in JSON structures By default "_typename" field in JSON structures used to store class information One can specify alternative tag like "$typename" or "xy", but such JSON can not be correctly used in JSROOT If empty string is provided, class information will not be stored.

Definition at line 580 of file TBufferJSON.cxx.

◆ SetTypeversionTag()

void TBufferJSON::SetTypeversionTag ( const char *  tag = nullptr)

Configures _typeversion tag in JSON One can specify name of the JSON tag like "_typeversion" or "$tv" which will be used to store class version Such tag can be used to correctly recover objects from JSON If empty string is provided (default), class version will not be stored.

Definition at line 594 of file TBufferJSON.cxx.

◆ SkipObjectAny()

void TBufferJSON::SkipObjectAny ( )
virtual

Skip any kind of object from buffer.

Implements TBuffer.

Definition at line 2451 of file TBufferJSON.cxx.

◆ Stack()

TJSONStackObj * TBufferJSON::Stack ( )
inlineprotected

Definition at line 252 of file TBufferJSON.h.

◆ StreamObject() [1/4]

void TBufferText::StreamObject ( TObject obj)
virtual

Reimplemented from TBufferText.

Definition at line 34 of file TBufferText.cxx.

◆ StreamObject() [2/4]

void TBufferText::StreamObject ( void obj,
const char *  className,
const TClass onFileClass = nullptr 
)
virtual

stream object to/from buffer

Reimplemented from TBufferText.

Definition at line 33 of file TBufferText.cxx.

◆ StreamObject() [3/4]

void TBufferText::StreamObject ( void obj,
const std::type_info &  typeinfo,
const TClass onFileClass = nullptr 
)
virtual

stream object to/from buffer

Reimplemented from TBufferText.

Definition at line 32 of file TBufferText.cxx.

◆ StreamObject() [4/4]

void TBufferJSON::StreamObject ( void obj,
const TClass cl,
const TClass onFileClass = nullptr 
)
virtual

stream object to/from buffer

Implements TBuffer.

Definition at line 3418 of file TBufferJSON.cxx.

◆ ToJSON()

template<class T >
static TString TBufferJSON::ToJSON ( const T *  obj,
Int_t  compact = 0,
const char *  member_name = nullptr 
)
inlinestatic

Definition at line 70 of file TBufferJSON.h.

◆ WorkWithClass()

void TBufferJSON::WorkWithClass ( TStreamerInfo info,
const TClass cl = nullptr 
)
protected

Prepares buffer to stream data of specified class.

Definition at line 1959 of file TBufferJSON.cxx.

◆ WorkWithElement()

void TBufferJSON::WorkWithElement ( TStreamerElement elem,
Int_t   
)
protected

This is call-back from streamer which indicates that class member will be streamed Name of element used in JSON.

Definition at line 2049 of file TBufferJSON.cxx.

◆ WriteArray() [1/13]

void TBufferJSON::WriteArray ( const Bool_t b,
Int_t  n 
)
virtual

Write array of Bool_t to buffer.

Implements TBuffer.

Definition at line 3040 of file TBufferJSON.cxx.

◆ WriteArray() [2/13]

void TBufferJSON::WriteArray ( const Char_t c,
Int_t  n 
)
virtual

Write array of Char_t to buffer.

Implements TBuffer.

Definition at line 3049 of file TBufferJSON.cxx.

◆ WriteArray() [3/13]

void TBufferJSON::WriteArray ( const Double_t d,
Int_t  n 
)
virtual

Write array of Double_t to buffer.

Implements TBuffer.

Definition at line 3148 of file TBufferJSON.cxx.

◆ WriteArray() [4/13]

void TBufferJSON::WriteArray ( const Float_t f,
Int_t  n 
)
virtual

Write array of Float_t to buffer.

Implements TBuffer.

Definition at line 3139 of file TBufferJSON.cxx.

◆ WriteArray() [5/13]

void TBufferJSON::WriteArray ( const Int_t i,
Int_t  n 
)
virtual

Write array of Int_ to buffer.

Implements TBuffer.

Definition at line 3085 of file TBufferJSON.cxx.

◆ WriteArray() [6/13]

void TBufferJSON::WriteArray ( const Long64_t l,
Int_t  n 
)
virtual

Write array of Long64_t to buffer.

Implements TBuffer.

Definition at line 3121 of file TBufferJSON.cxx.

◆ WriteArray() [7/13]

void TBufferJSON::WriteArray ( const Long_t l,
Int_t  n 
)
virtual

Write array of Long_t to buffer.

Implements TBuffer.

Definition at line 3103 of file TBufferJSON.cxx.

◆ WriteArray() [8/13]

void TBufferJSON::WriteArray ( const Short_t h,
Int_t  n 
)
virtual

Write array of Short_t to buffer.

Implements TBuffer.

Definition at line 3067 of file TBufferJSON.cxx.

◆ WriteArray() [9/13]

void TBufferJSON::WriteArray ( const UChar_t c,
Int_t  n 
)
virtual

Write array of UChar_t to buffer.

Implements TBuffer.

Definition at line 3058 of file TBufferJSON.cxx.

◆ WriteArray() [10/13]

void TBufferJSON::WriteArray ( const UInt_t i,
Int_t  n 
)
virtual

Write array of UInt_t to buffer.

Implements TBuffer.

Definition at line 3094 of file TBufferJSON.cxx.

◆ WriteArray() [11/13]

void TBufferJSON::WriteArray ( const ULong64_t l,
Int_t  n 
)
virtual

Write array of ULong64_t to buffer.

Implements TBuffer.

Definition at line 3130 of file TBufferJSON.cxx.

◆ WriteArray() [12/13]

void TBufferJSON::WriteArray ( const ULong_t l,
Int_t  n 
)
virtual

Write array of ULong_t to buffer.

Implements TBuffer.

Definition at line 3112 of file TBufferJSON.cxx.

◆ WriteArray() [13/13]

void TBufferJSON::WriteArray ( const UShort_t h,
Int_t  n 
)
virtual

Write array of UShort_t to buffer.

Implements TBuffer.

Definition at line 3076 of file TBufferJSON.cxx.

◆ WriteBool()

void TBufferJSON::WriteBool ( Bool_t  b)
virtual

Writes Bool_t value to buffer.

Implements TBuffer.

Definition at line 3606 of file TBufferJSON.cxx.

◆ WriteChar()

void TBufferJSON::WriteChar ( Char_t  c)
virtual

Writes Char_t value to buffer.

Implements TBuffer.

Definition at line 3615 of file TBufferJSON.cxx.

◆ WriteCharP()

void TBufferJSON::WriteCharP ( const Char_t c)
virtual

Writes array of characters to buffer.

Implements TBuffer.

Definition at line 3723 of file TBufferJSON.cxx.

◆ WriteCharStar()

void TBufferJSON::WriteCharStar ( char *  s)
virtual

Writes a char*.

Implements TBuffer.

Definition at line 3756 of file TBufferJSON.cxx.

◆ WriteClass()

void TBufferJSON::WriteClass ( const TClass cl)
virtual

suppressed function of TBuffer

Implements TBuffer.

Definition at line 2404 of file TBufferJSON.cxx.

◆ WriteDouble()

void TBufferJSON::WriteDouble ( Double_t  d)
virtual

Writes Double_t value to buffer.

Implements TBuffer.

Definition at line 3714 of file TBufferJSON.cxx.

◆ WriteFastArray() [1/15]

void TBufferJSON::WriteFastArray ( const Bool_t b,
Int_t  n 
)
virtual

Write array of Bool_t to buffer.

Implements TBuffer.

Definition at line 3197 of file TBufferJSON.cxx.

◆ WriteFastArray() [2/15]

void TBufferJSON::WriteFastArray ( const Char_t c,
Int_t  n 
)
virtual

Write array of Char_t to buffer.

Implements TBuffer.

Definition at line 3205 of file TBufferJSON.cxx.

◆ WriteFastArray() [3/15]

void TBufferJSON::WriteFastArray ( const Double_t d,
Int_t  n 
)
virtual

Write array of Double_t to buffer.

Implements TBuffer.

Definition at line 3301 of file TBufferJSON.cxx.

◆ WriteFastArray() [4/15]

void TBufferJSON::WriteFastArray ( const Float_t f,
Int_t  n 
)
virtual

Write array of Float_t to buffer.

Implements TBuffer.

Definition at line 3293 of file TBufferJSON.cxx.

◆ WriteFastArray() [5/15]

void TBufferJSON::WriteFastArray ( const Int_t i,
Int_t  n 
)
virtual

Write array of Int_t to buffer.

Implements TBuffer.

Definition at line 3245 of file TBufferJSON.cxx.

◆ WriteFastArray() [6/15]

void TBufferJSON::WriteFastArray ( const Long64_t l,
Int_t  n 
)
virtual

Write array of Long64_t to buffer.

Implements TBuffer.

Definition at line 3277 of file TBufferJSON.cxx.

◆ WriteFastArray() [7/15]

void TBufferJSON::WriteFastArray ( const Long_t l,
Int_t  n 
)
virtual

Write array of Long_t to buffer.

Implements TBuffer.

Definition at line 3261 of file TBufferJSON.cxx.

◆ WriteFastArray() [8/15]

void TBufferJSON::WriteFastArray ( const Short_t h,
Int_t  n 
)
virtual

Write array of Short_t to buffer.

Implements TBuffer.

Definition at line 3229 of file TBufferJSON.cxx.

◆ WriteFastArray() [9/15]

void TBufferJSON::WriteFastArray ( const UChar_t c,
Int_t  n 
)
virtual

Write array of UChar_t to buffer.

Implements TBuffer.

Definition at line 3221 of file TBufferJSON.cxx.

◆ WriteFastArray() [10/15]

void TBufferJSON::WriteFastArray ( const UInt_t i,
Int_t  n 
)
virtual

Write array of UInt_t to buffer.

Implements TBuffer.

Definition at line 3253 of file TBufferJSON.cxx.

◆ WriteFastArray() [11/15]

void TBufferJSON::WriteFastArray ( const ULong64_t l,
Int_t  n 
)
virtual

Write array of ULong64_t to buffer.

Implements TBuffer.

Definition at line 3285 of file TBufferJSON.cxx.

◆ WriteFastArray() [12/15]

void TBufferJSON::WriteFastArray ( const ULong_t l,
Int_t  n 
)
virtual

Write array of ULong_t to buffer.

Implements TBuffer.

Definition at line 3269 of file TBufferJSON.cxx.

◆ WriteFastArray() [13/15]

void TBufferJSON::WriteFastArray ( const UShort_t h,
Int_t  n 
)
virtual

Write array of UShort_t to buffer.

Implements TBuffer.

Definition at line 3237 of file TBufferJSON.cxx.

◆ WriteFastArray() [14/15]

Int_t TBufferJSON::WriteFastArray ( void **  startp,
const TClass cl,
Int_t  n = 1,
Bool_t  isPreAlloc = kFALSE,
TMemberStreamer s = nullptr 
)
virtual

Recall TBuffer function to avoid gcc warning message.

Implements TBuffer.

Definition at line 3362 of file TBufferJSON.cxx.

◆ WriteFastArray() [15/15]

void TBufferJSON::WriteFastArray ( void start,
const TClass cl,
Int_t  n = 1,
TMemberStreamer s = nullptr 
)
virtual

Recall TBuffer function to avoid gcc warning message.

Implements TBuffer.

Definition at line 3309 of file TBufferJSON.cxx.

◆ WriteFastArrayString()

void TBufferJSON::WriteFastArrayString ( const Char_t c,
Int_t  n 
)
virtual

Write array of Char_t to buffer.

Implements TBuffer.

Definition at line 3213 of file TBufferJSON.cxx.

◆ WriteFloat()

void TBufferJSON::WriteFloat ( Float_t  f)
virtual

Writes Float_t value to buffer.

Implements TBuffer.

Definition at line 3705 of file TBufferJSON.cxx.

◆ WriteInt()

void TBufferJSON::WriteInt ( Int_t  i)
virtual

Writes Int_t value to buffer.

Implements TBuffer.

Definition at line 3651 of file TBufferJSON.cxx.

◆ WriteLong()

void TBufferJSON::WriteLong ( Long_t  l)
virtual

Writes Long_t value to buffer.

Implements TBuffer.

Definition at line 3669 of file TBufferJSON.cxx.

◆ WriteLong64()

void TBufferJSON::WriteLong64 ( Long64_t  l)
virtual

Writes Long64_t value to buffer.

Implements TBuffer.

Definition at line 3687 of file TBufferJSON.cxx.

◆ WriteObjectClass()

void TBufferJSON::WriteObjectClass ( const void actualObjStart,
const TClass actualClass,
Bool_t  cacheReuse 
)
protectedvirtual

Write object to buffer. Only used from TBuffer.

Implements TBufferIO.

Definition at line 2456 of file TBufferJSON.cxx.

◆ WriteShort()

void TBufferJSON::WriteShort ( Short_t  s)
virtual

Writes Short_t value to buffer.

Implements TBuffer.

Definition at line 3633 of file TBufferJSON.cxx.

◆ WriteStdString() [1/3]

void TBufferJSON::WriteStdString ( const std::string *  s)
virtual

Writes a std::string.

Implements TBuffer.

Definition at line 3743 of file TBufferJSON.cxx.

◆ WriteStdString() [2/3]

virtual void TBuffer::WriteStdString ( const std::string *  s)
virtual

Implements TBuffer.

◆ WriteStdString() [3/3]

virtual void TBuffer::WriteStdString ( std::string &  s)
inlinevirtual

Reimplemented from TBuffer.

Definition at line 311 of file TBuffer.h.

◆ WriteTString()

void TBufferJSON::WriteTString ( const TString s)
virtual

Writes a TString.

Implements TBuffer.

Definition at line 3733 of file TBufferJSON.cxx.

◆ WriteUChar()

void TBufferJSON::WriteUChar ( UChar_t  c)
virtual

Writes UChar_t value to buffer.

Implements TBuffer.

Definition at line 3624 of file TBufferJSON.cxx.

◆ WriteUInt()

void TBufferJSON::WriteUInt ( UInt_t  i)
virtual

Writes UInt_t value to buffer.

Implements TBuffer.

Definition at line 3660 of file TBufferJSON.cxx.

◆ WriteULong()

void TBufferJSON::WriteULong ( ULong_t  l)
virtual

Writes ULong_t value to buffer.

Implements TBuffer.

Definition at line 3678 of file TBufferJSON.cxx.

◆ WriteULong64()

void TBufferJSON::WriteULong64 ( ULong64_t  l)
virtual

Writes ULong64_t value to buffer.

Implements TBuffer.

Definition at line 3696 of file TBufferJSON.cxx.

◆ WriteUShort()

void TBufferJSON::WriteUShort ( UShort_t  s)
virtual

Writes UShort_t value to buffer.

Implements TBuffer.

Definition at line 3642 of file TBufferJSON.cxx.

◆ WriteVersion()

UInt_t TBufferJSON::WriteVersion ( const TClass cl,
Bool_t  useBcnt = kFALSE 
)
virtual

Ignored in TBufferJSON.

Implements TBuffer.

Definition at line 2432 of file TBufferJSON.cxx.

Member Data Documentation

◆ fArrayCompact

Int_t TBufferJSON::fArrayCompact {0}
protected

! 0 - no array compression, 1 - exclude leading/trailing zeros, 2 - check value repetition

Definition at line 320 of file TBufferJSON.h.

◆ fArraySepar

TString TBufferJSON::fArraySepar
protected

! depending from compression level, ", " or ","

Definition at line 321 of file TBufferJSON.h.

◆ fCompact

Int_t TBufferJSON::fCompact {0}
protected

! 0 - no any compression, 1 - no spaces in the begin, 2 - no new lines, 3 - no spaces at all

Definition at line 317 of file TBufferJSON.h.

◆ fJsonrCnt

unsigned TBufferJSON::fJsonrCnt {0}
protected

! counter for all objects, used for referencing

Definition at line 315 of file TBufferJSON.h.

◆ fMapAsObject

Bool_t TBufferJSON::fMapAsObject {kFALSE}
protected

! when true, std::map will be converted into JSON object

Definition at line 318 of file TBufferJSON.h.

◆ fNumericLocale

TString TBufferJSON::fNumericLocale
protected

! stored value of setlocale(LC_NUMERIC), which should be recovered at the end

Definition at line 322 of file TBufferJSON.h.

◆ fOutBuffer

TString TBufferJSON::fOutBuffer
protected

! main output buffer for json code

Definition at line 312 of file TBufferJSON.h.

◆ fOutput

TString* TBufferJSON::fOutput {nullptr}
protected

! current output buffer for json code

Definition at line 313 of file TBufferJSON.h.

◆ fSemicolon

TString TBufferJSON::fSemicolon
protected

! depending from compression level, " : " or ":"

Definition at line 319 of file TBufferJSON.h.

◆ fSkipClasses

TObjArray* TBufferJSON::fSkipClasses {nullptr}
protected

! list of classes, which class info is not stored

Definition at line 325 of file TBufferJSON.h.

◆ fStack

std::deque<TJSONStackObj *> TBufferJSON::fStack
protected

! hierarchy of currently streamed element

Definition at line 316 of file TBufferJSON.h.

◆ fTypeNameTag

TString TBufferJSON::fTypeNameTag
protected

! JSON member used for storing class name, when empty - no class name will be stored

Definition at line 323 of file TBufferJSON.h.

◆ fTypeVersionTag

TString TBufferJSON::fTypeVersionTag
protected

! JSON member used to store class version, default empty

Definition at line 324 of file TBufferJSON.h.

◆ fValue

TString TBufferJSON::fValue
protected

! buffer for current value

Definition at line 314 of file TBufferJSON.h.

Libraries for TBufferJSON:
[legend]

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