Logo ROOT  
Reference Guide
TBufferJSON Class Referencefinal

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:75
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:3445
Basic string class.
Definition: TString.h:131
TH1F * h1
Definition: legend1.C:5
basic_json<> json
default JSON class
Definition: REveElement.hxx:88

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:81
virtual void Draw(Option_t *option="")
Draw this histogram with options.
Definition: TH1.cxx:2998

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 * 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:41

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 30 of file TBufferJSON.h.

Public Types

enum  {
  kNoCompress = 0 , kNoIndent = 1 , kNoNewLine = 2 , kNoSpaces = 3 ,
  kMapAsObject = 5 , kZeroSuppression = 10 , kSameSuppression = 20 , kBase64 = 30 ,
  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...
 
void ClassBegin (const TClass *, Version_t=-1) final
 Should be called in the beginning of custom class streamer. More...
 
void ClassEnd (const TClass *) final
 Should be called at the end of custom streamer See TBufferJSON::ClassBegin for more details. More...
 
void ClassMember (const char *name, const char *typeName=nullptr, Int_t arrsize1=-1, Int_t arrsize2=-1) final
 Method indicates name and typename of class member, which should be now streamed in custom streamer Following combinations are supported: More...
 
void DecrementLevel (TVirtualStreamerInfo *) final
 Function is called from TStreamerInfo WriteBuffer and ReadBuffer functions and decrease level in json structure. More...
 
TVirtualStreamerInfoGetInfo () final
 Return current streamer info element. More...
 
void IncrementLevel (TVirtualStreamerInfo *) final
 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...
 
Int_t ReadArray (Bool_t *&b) final
 Read array of Bool_t from buffer. More...
 
Int_t ReadArray (Char_t *&c) final
 Read array of Char_t from buffer. More...
 
Int_t ReadArray (Double_t *&d) final
 Read array of Double_t from buffer. More...
 
Int_t ReadArray (Float_t *&f) final
 Read array of Float_t from buffer. More...
 
Int_t ReadArray (Int_t *&i) final
 Read array of Int_t from buffer. More...
 
Int_t ReadArray (Long64_t *&l) final
 Read array of Long64_t from buffer. More...
 
Int_t ReadArray (Long_t *&l) final
 Read array of Long_t from buffer. More...
 
Int_t ReadArray (Short_t *&h) final
 Read array of Short_t from buffer. More...
 
Int_t ReadArray (UChar_t *&c) final
 Read array of UChar_t from buffer. More...
 
Int_t ReadArray (UInt_t *&i) final
 Read array of UInt_t from buffer. More...
 
Int_t ReadArray (ULong64_t *&l) final
 Read array of ULong64_t from buffer. More...
 
Int_t ReadArray (ULong_t *&l) final
 Read array of ULong_t from buffer. More...
 
Int_t ReadArray (UShort_t *&h) final
 Read array of UShort_t from buffer. More...
 
void ReadBaseClass (void *start, TStreamerBase *elem) final
 Read data of base class. More...
 
void ReadBool (Bool_t &b) final
 Reads Bool_t value from buffer. More...
 
void ReadChar (Char_t &c) final
 Reads Char_t value from buffer. More...
 
void ReadCharP (Char_t *c) final
 Reads array of characters from buffer. More...
 
void ReadCharStar (char *&s) final
 Reads a char* string. More...
 
TClassReadClass (const TClass *cl=nullptr, UInt_t *objTag=nullptr) final
 suppressed function of TBuffer More...
 
void ReadDouble (Double_t &d) final
 Reads Double_t value from buffer. More...
 
void ReadFastArray (Bool_t *b, Int_t n) final
 read array of Bool_t from buffer More...
 
void ReadFastArray (Char_t *c, Int_t n) final
 read array of Char_t from buffer More...
 
void ReadFastArray (Double_t *d, Int_t n) final
 read array of Double_t from buffer More...
 
void ReadFastArray (Float_t *f, Int_t n) final
 read array of Float_t from buffer More...
 
void ReadFastArray (Int_t *i, Int_t n) final
 read array of Int_t from buffer More...
 
void ReadFastArray (Long64_t *l, Int_t n) final
 read array of Long64_t from buffer More...
 
void ReadFastArray (Long_t *l, Int_t n) final
 read array of Long_t from buffer More...
 
void ReadFastArray (Short_t *h, Int_t n) final
 read array of Short_t from buffer More...
 
void ReadFastArray (UChar_t *c, Int_t n) final
 read array of UChar_t from buffer More...
 
void ReadFastArray (UInt_t *i, Int_t n) final
 read array of UInt_t from buffer More...
 
void ReadFastArray (ULong64_t *l, Int_t n) final
 read array of ULong64_t from buffer More...
 
void ReadFastArray (ULong_t *l, Int_t n) final
 read array of ULong_t from buffer More...
 
void ReadFastArray (UShort_t *h, Int_t n) final
 read array of UShort_t from buffer More...
 
void ReadFastArray (void **startp, const TClass *cl, Int_t n=1, Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=nullptr, const TClass *onFileClass=nullptr) final
 redefined here to avoid warning message from gcc More...
 
void ReadFastArray (void *start, const TClass *cl, Int_t n=1, TMemberStreamer *s=nullptr, const TClass *onFileClass=nullptr) final
 Read an array of 'n' objects from the I/O buffer. More...
 
void ReadFastArrayString (Char_t *c, Int_t n) final
 read array of Char_t from buffer More...
 
void ReadFloat (Float_t &f) final
 Reads Float_t value from buffer. More...
 
void ReadInt (Int_t &i) final
 Reads Int_t value from buffer. More...
 
void ReadLong (Long_t &l) final
 Reads Long_t value from buffer. More...
 
void ReadLong64 (Long64_t &l) final
 Reads Long64_t value from buffer. More...
 
voidReadObjectAny (const TClass *clCast) final
 Read object from buffer. Only used from TBuffer. More...
 
void ReadShort (Short_t &s) final
 Reads Short_t value from buffer. More...
 
Int_t ReadStaticArray (Bool_t *b) final
 Read array of Bool_t from buffer. More...
 
Int_t ReadStaticArray (Char_t *c) final
 Read array of Char_t from buffer. More...
 
Int_t ReadStaticArray (Double_t *d) final
 Read array of Double_t from buffer. More...
 
Int_t ReadStaticArray (Float_t *f) final
 Read array of Float_t from buffer. More...
 
Int_t ReadStaticArray (Int_t *i) final
 Read array of Int_t from buffer. More...
 
Int_t ReadStaticArray (Long64_t *l) final
 Read array of Long64_t from buffer. More...
 
Int_t ReadStaticArray (Long_t *l) final
 Read array of Long_t from buffer. More...
 
Int_t ReadStaticArray (Short_t *h) final
 Read array of Short_t from buffer. More...
 
Int_t ReadStaticArray (UChar_t *c) final
 Read array of UChar_t from buffer. More...
 
Int_t ReadStaticArray (UInt_t *i) final
 Read array of UInt_t from buffer. More...
 
Int_t ReadStaticArray (ULong64_t *l) final
 Read array of ULong64_t from buffer. More...
 
Int_t ReadStaticArray (ULong_t *l) final
 Read array of ULong_t from buffer. More...
 
Int_t ReadStaticArray (UShort_t *h) final
 Read array of UShort_t from buffer. More...
 
virtual void ReadStdString (std::string &s)
 
void ReadStdString (std::string *s) final
 Reads a std::string. More...
 
virtual void ReadStdString (std::string *s)=0
 
void ReadTString (TString &s) final
 Reads a TString. More...
 
void ReadUChar (UChar_t &c) final
 Reads UChar_t value from buffer. More...
 
void ReadUInt (UInt_t &i) final
 Reads UInt_t value from buffer. More...
 
void ReadULong (ULong_t &l) final
 Reads ULong_t value from buffer. More...
 
void ReadULong64 (ULong64_t &l) final
 Reads ULong64_t value from buffer. More...
 
void ReadUShort (UShort_t &s) final
 Reads UShort_t value from buffer. More...
 
Version_t ReadVersion (UInt_t *start=nullptr, UInt_t *bcnt=nullptr, const TClass *cl=nullptr) final
 read version value from buffer More...
 
voidRestoreObject (const char *str, TClass **cl)
 Read object from JSON In class pointer (if specified) read class is returned One must specify expected object class, if it is TArray or STL container. 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...
 
void SetStreamerElementNumber (TStreamerElement *elem, Int_t comp_type) final
 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...
 
void SkipObjectAny () final
 Skip any kind of object from buffer. More...
 
TString StoreObject (const void *obj, const TClass *cl)
 Store provided object as JSON structure Allows to configure different TBufferJSON properties before converting object into JSON Actual object class must be specified here Method can be safely called once - after that TBufferJSON instance must be destroyed Code should look like: More...
 
void StreamObject (TObject *obj) override
 
void StreamObject (void *obj, const char *className, const TClass *onFileClass=nullptr) override
 stream object to/from buffer More...
 
void StreamObject (void *obj, const std::type_info &typeinfo, const TClass *onFileClass=nullptr) override
 stream object to/from buffer More...
 
void StreamObject (void *obj, const TClass *cl, const TClass *onFileClass=nullptr) final
 stream object to/from buffer More...
 
void WriteArray (const Bool_t *b, Int_t n) final
 Write array of Bool_t to buffer. More...
 
void WriteArray (const Char_t *c, Int_t n) final
 Write array of Char_t to buffer. More...
 
void WriteArray (const Double_t *d, Int_t n) final
 Write array of Double_t to buffer. More...
 
void WriteArray (const Float_t *f, Int_t n) final
 Write array of Float_t to buffer. More...
 
void WriteArray (const Int_t *i, Int_t n) final
 Write array of Int_ to buffer. More...
 
void WriteArray (const Long64_t *l, Int_t n) final
 Write array of Long64_t to buffer. More...
 
void WriteArray (const Long_t *l, Int_t n) final
 Write array of Long_t to buffer. More...
 
void WriteArray (const Short_t *h, Int_t n) final
 Write array of Short_t to buffer. More...
 
void WriteArray (const UChar_t *c, Int_t n) final
 Write array of UChar_t to buffer. More...
 
void WriteArray (const UInt_t *i, Int_t n) final
 Write array of UInt_t to buffer. More...
 
void WriteArray (const ULong64_t *l, Int_t n) final
 Write array of ULong64_t to buffer. More...
 
void WriteArray (const ULong_t *l, Int_t n) final
 Write array of ULong_t to buffer. More...
 
void WriteArray (const UShort_t *h, Int_t n) final
 Write array of UShort_t to buffer. More...
 
void WriteBool (Bool_t b) final
 Writes Bool_t value to buffer. More...
 
void WriteChar (Char_t c) final
 Writes Char_t value to buffer. More...
 
void WriteCharP (const Char_t *c) final
 Writes array of characters to buffer. More...
 
void WriteCharStar (char *s) final
 Writes a char*. More...
 
void WriteClass (const TClass *cl) final
 suppressed function of TBuffer More...
 
void WriteDouble (Double_t d) final
 Writes Double_t value to buffer. More...
 
void WriteFastArray (const Bool_t *b, Int_t n) final
 Write array of Bool_t to buffer. More...
 
void WriteFastArray (const Char_t *c, Int_t n) final
 Write array of Char_t to buffer. More...
 
void WriteFastArray (const Double_t *d, Int_t n) final
 Write array of Double_t to buffer. More...
 
void WriteFastArray (const Float_t *f, Int_t n) final
 Write array of Float_t to buffer. More...
 
void WriteFastArray (const Int_t *i, Int_t n) final
 Write array of Int_t to buffer. More...
 
void WriteFastArray (const Long64_t *l, Int_t n) final
 Write array of Long64_t to buffer. More...
 
void WriteFastArray (const Long_t *l, Int_t n) final
 Write array of Long_t to buffer. More...
 
void WriteFastArray (const Short_t *h, Int_t n) final
 Write array of Short_t to buffer. More...
 
void WriteFastArray (const UChar_t *c, Int_t n) final
 Write array of UChar_t to buffer. More...
 
void WriteFastArray (const UInt_t *i, Int_t n) final
 Write array of UInt_t to buffer. More...
 
void WriteFastArray (const ULong64_t *l, Int_t n) final
 Write array of ULong64_t to buffer. More...
 
void WriteFastArray (const ULong_t *l, Int_t n) final
 Write array of ULong_t to buffer. More...
 
void WriteFastArray (const UShort_t *h, Int_t n) final
 Write array of UShort_t to buffer. More...
 
Int_t WriteFastArray (void **startp, const TClass *cl, Int_t n=1, Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=nullptr) final
 Recall TBuffer function to avoid gcc warning message. More...
 
void WriteFastArray (void *start, const TClass *cl, Int_t n=1, TMemberStreamer *s=nullptr) final
 Recall TBuffer function to avoid gcc warning message. More...
 
void WriteFastArrayString (const Char_t *c, Int_t n) final
 Write array of Char_t to buffer. More...
 
void WriteFloat (Float_t f) final
 Writes Float_t value to buffer. More...
 
void WriteInt (Int_t i) final
 Writes Int_t value to buffer. More...
 
void WriteLong (Long_t l) final
 Writes Long_t value to buffer. More...
 
void WriteLong64 (Long64_t l) final
 Writes Long64_t value to buffer. More...
 
void WriteShort (Short_t s) final
 Writes Short_t value to buffer. More...
 
void WriteStdString (const std::string *s) final
 Writes a std::string. More...
 
virtual void WriteStdString (const std::string *s)=0
 
virtual void WriteStdString (std::string &s)
 
void WriteTString (const TString &s) final
 Writes a TString. More...
 
void WriteUChar (UChar_t c) final
 Writes UChar_t value to buffer. More...
 
void WriteUInt (UInt_t i) final
 Writes UInt_t value to buffer. More...
 
void WriteULong (ULong_t l) final
 Writes ULong_t value to buffer. More...
 
void WriteULong64 (ULong64_t l) final
 Writes ULong64_t value to buffer. More...
 
void WriteUShort (UShort_t s) final
 Writes UShort_t value to buffer. More...
 
UInt_t WriteVersion (const TClass *cl, Bool_t useBcnt=kFALSE) final
 Ignored in TBufferJSON. More...
 
- Public Member Functions inherited from TBufferText
virtual ~TBufferText ()
 destructor More...
 
Int_t ApplySequence (const TStreamerInfoActions::TActionSequence &sequence, void *object) final
 Read one collection of objects from the buffer using the StreamerInfoLoopAction. More...
 
Int_t ApplySequence (const TStreamerInfoActions::TActionSequence &sequence, void *start_collection, void *end_collection) final
 Read one collection of objects from the buffer using the StreamerInfoLoopAction. More...
 
Int_t ApplySequenceVecPtr (const TStreamerInfoActions::TActionSequence &sequence, void *start_collection, void *end_collection) final
 Read one collection of objects from the buffer using the StreamerInfoLoopAction. More...
 
Int_t CheckByteCount (UInt_t, UInt_t, const char *) final
 
Int_t CheckByteCount (UInt_t, UInt_t, const TClass *) final
 
Int_t ReadArrayDouble32 (Double_t *&d, TStreamerElement *ele=nullptr) override
 Read array of Double32_t from buffer. More...
 
Int_t ReadArrayFloat16 (Float_t *&f, TStreamerElement *ele=nullptr) override
 Read array of Float16_t from buffer. More...
 
virtual void ReadBaseClass (void *start, TStreamerBase *elem)
 Read data of base class. More...
 
Int_t ReadBuf (void *, Int_t) final
 
Int_t ReadClassBuffer (const TClass *, void *, const TClass *=nullptr) override
 Deserialize information from a buffer into an object. More...
 
Int_t ReadClassBuffer (const TClass *, void *, Int_t, UInt_t, UInt_t, const TClass *=nullptr) override
 Deserialize information from a buffer into an object. More...
 
Int_t ReadClassEmulated (const TClass *, void *, const TClass *=nullptr) final
 
void ReadDouble32 (Double_t *d, TStreamerElement *ele=nullptr) final
 read a Double32_t from the buffer More...
 
void ReadFastArrayDouble32 (Double_t *d, Int_t n, TStreamerElement *ele=nullptr) final
 read array of Double32_t from buffer More...
 
void ReadFastArrayFloat16 (Float_t *f, Int_t n, TStreamerElement *ele=nullptr) final
 read array of Float16_t from buffer More...
 
void ReadFastArrayWithFactor (Double_t *ptr, Int_t n, Double_t factor, Double_t minvalue) final
 read array of Double32_t from buffer More...
 
void ReadFastArrayWithFactor (Float_t *ptr, Int_t n, Double_t factor, Double_t minvalue) final
 read array of Float16_t from buffer More...
 
void ReadFastArrayWithNbits (Double_t *ptr, Int_t n, Int_t nbits) final
 read array of Double32_t from buffer More...
 
void ReadFastArrayWithNbits (Float_t *ptr, Int_t n, Int_t nbits) final
 read array of Float16_t from buffer More...
 
void ReadFloat16 (Float_t *f, TStreamerElement *ele=nullptr) final
 read a Float16_t from the buffer More...
 
TObjectReadObject (const TClass *) final
 
Int_t ReadStaticArrayDouble32 (Double_t *d, TStreamerElement *ele=nullptr) final
 Read array of Double32_t from buffer. More...
 
Int_t ReadStaticArrayFloat16 (Float_t *f, TStreamerElement *ele=nullptr) final
 Read array of Float16_t from buffer. More...
 
char * ReadString (char *, Int_t) final
 
Version_t ReadVersionForMemberWise (const TClass *=nullptr) final
 
Version_t ReadVersionNoCheckSum (UInt_t *, UInt_t *) final
 
void ReadWithFactor (Double_t *ptr, Double_t factor, Double_t minvalue) final
 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...
 
void ReadWithFactor (Float_t *ptr, Double_t factor, Double_t minvalue) final
 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...
 
void ReadWithNbits (Double_t *ptr, Int_t nbits) final
 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...
 
void ReadWithNbits (Float_t *ptr, Int_t nbits) final
 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...
 
void SetByteCount (UInt_t, Bool_t=kFALSE) final
 
void SkipVersion (const TClass *cl=nullptr) final
 Skip class version from I/O buffer. More...
 
void StreamObject (TObject *obj) override
 
virtual void StreamObject (TObject *obj)=0
 
virtual void StreamObject (void *obj, const char *className, const TClass *onFileClass=0)=0
 
void StreamObject (void *obj, const char *className, const TClass *onFileClass=nullptr) override
 stream object to/from buffer More...
 
virtual void StreamObject (void *obj, const std::type_info &typeinfo, const TClass *onFileClass=0)=0
 
void StreamObject (void *obj, const std::type_info &typeinfo, const TClass *onFileClass=nullptr) override
 stream object to/from buffer More...
 
virtual void StreamObject (void *obj, const TClass *cl, const TClass *onFileClass=0)=0
 
void WriteArrayDouble32 (const Double_t *d, Int_t n, TStreamerElement *ele=nullptr) final
 Write array of Double32_t to buffer. More...
 
void WriteArrayFloat16 (const Float_t *f, Int_t n, TStreamerElement *ele=nullptr) final
 Write array of Float16_t to buffer. More...
 
virtual void WriteBaseClass (void *start, TStreamerBase *elem)
 Write data of base class. More...
 
void WriteBuf (const void *, Int_t) final
 
Int_t WriteClassBuffer (const TClass *cl, void *pointer) override
 Function called by the Streamer functions to serialize object at p to buffer b. More...
 
void WriteDouble32 (Double_t *d, TStreamerElement *ele=nullptr) final
 write a Double32_t to the buffer More...
 
void WriteFastArrayDouble32 (const Double_t *d, Int_t n, TStreamerElement *ele=nullptr) final
 Write array of Double32_t to buffer. More...
 
void WriteFastArrayFloat16 (const Float_t *d, Int_t n, TStreamerElement *ele=nullptr) final
 Write array of Float16_t to buffer. More...
 
void WriteFloat16 (Float_t *f, TStreamerElement *ele=nullptr) final
 write a Float16_t to the buffer More...
 
void WriteString (const char *) final
 
UInt_t WriteVersionMemberWise (const TClass *, Bool_t=kFALSE) final
 
- Public Member Functions inherited from TBufferIO
virtual ~TBufferIO ()
 destructor More...
 
Bool_t CheckObject (const TObject *obj) override
 Check if the specified object is already in the buffer. More...
 
Bool_t CheckObject (const void *obj, const TClass *ptrClass) override
 Check if the specified object of the specified class is already in the buffer. More...
 
void ForceWriteInfo (TVirtualStreamerInfo *info, Bool_t force) override
 force writing the TStreamerInfo to the file More...
 
void ForceWriteInfoClones (TClonesArray *a) override
 Make sure TStreamerInfo is not optimized, otherwise it will not be possible to support schema evolution in read mode. More...
 
Int_t GetBufferDisplacement () const override
 
TProcessIDGetLastProcessID (TRefTable *reftable) const override
 Return the last TProcessID in the file. More...
 
Int_t GetMapCount () const override
 
void GetMappedObject (UInt_t tag, void *&ptr, TClass *&ClassPtr) const override
 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...
 
UShort_t GetPidOffset () const override
 
UInt_t GetTRefExecId () override
 Return the exec id stored in the current TStreamerInfo element. More...
 
Int_t GetVersionOwner () const override
 Return the version number of the owner file. More...
 
void InitMap () override
 Create the fMap container and initialize them with the null object. More...
 
void MapObject (const TObject *obj, UInt_t offset=1) override
 Add object to the fMap container. More...
 
void MapObject (const void *obj, const TClass *cl, UInt_t offset=1) override
 Add object to the fMap container. More...
 
Int_t ReadClones (TClonesArray *a, Int_t nobjects, Version_t objvers) override
 Interface to TStreamerInfo::ReadBufferClones. More...
 
TProcessIDReadProcessID (UShort_t pidf) override
 The TProcessID with number pidf is read from file. More...
 
void Reset () override
 Reset buffer object. Resets map and buffer offset. More...
 
void ResetMap () override
 Delete existing fMap and reset map counter. More...
 
void SetBufferDisplacement () override
 
void SetBufferDisplacement (Int_t skipped) override
 
void SetPidOffset (UShort_t offset) override
 This offset is used when a key (or basket) is transfered from one file to the other. More...
 
void SetReadParam (Int_t mapsize) override
 Set the initial size of the map used to store object and class references during reading. More...
 
void SetWriteParam (Int_t mapsize) override
 Set the initial size of the hashtable used to store object and class references during writing. More...
 
void TagStreamerInfo (TVirtualStreamerInfo *info) override
 Mark the classindex of the current file as using this TStreamerInfo. More...
 
Int_t WriteClones (TClonesArray *a, Int_t nobjects) override
 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
 
void WriteObject (const TObject *obj, Bool_t cacheReuse=kTRUE) override
 Write object to I/O buffer. More...
 
Int_t WriteObjectAny (const void *obj, const TClass *ptrClass, Bool_t cacheReuse=kTRUE) override
 Write object to I/O buffer. More...
 
UShort_t WriteProcessID (TProcessID *pid) override
 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 In class pointer (if specified) read class is returned One must specify expected object class, if it is TArray or STL container. 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)
 Read TObject data members from JSON. More...
 
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...
 
void WriteObjectClass (const void *actualObjStart, const TClass *actualClass, Bool_t cacheReuse) final
 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...
 
 ClassDefOverride (TBufferText, 0)
 
- Protected Member Functions inherited from TBufferIO
 TBufferIO ()
 
 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...
 
std::vector< const TClass * > fSkipClasses
 ! list of classes, which class info is not stored More...
 
std::deque< std::unique_ptr< 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
 
- Protected Types inherited from TObject
enum  { kOnlyPrepStep = BIT(3) }
 
- 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

kBase64 

all binary arrays will be compressed with base64 coding, supported by JSROOT

kSkipTypeInfo 

Definition at line 34 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 477 of file TBufferJSON.cxx.

◆ ~TBufferJSON()

TBufferJSON::~TBufferJSON ( )
virtual

destroy buffer

Definition at line 498 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 1157 of file TBufferJSON.cxx.

◆ ClassBegin()

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

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 2179 of file TBufferJSON.cxx.

◆ ClassEnd()

void TBufferJSON::ClassEnd ( const TClass )
finalvirtual

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

Implements TBuffer.

Definition at line 2188 of file TBufferJSON.cxx.

◆ ClassMember()

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

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 2230 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 912 of file TBufferJSON.cxx.

◆ ConvertFromJSONAny()

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

Read object from JSON 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 935 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 978 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 523 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.

Definition at line 639 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 725 of file TBufferJSON.cxx.

◆ DecrementLevel()

void TBufferJSON::DecrementLevel ( TVirtualStreamerInfo info)
finalvirtual

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

Implements TBuffer.

Definition at line 2046 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 752 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 832 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 90 of file TBufferJSON.h.

◆ FromJSON() [2/2]

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

Definition at line 81 of file TBufferJSON.h.

◆ GetInfo()

TVirtualStreamerInfo * TBufferJSON::GetInfo ( )
finalvirtual

Return current streamer info element.

Implements TBuffer.

Definition at line 2077 of file TBufferJSON.cxx.

◆ IncrementLevel()

void TBufferJSON::IncrementLevel ( TVirtualStreamerInfo info)
finalvirtual

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 1999 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 615 of file TBufferJSON.cxx.

◆ JsonDisablePostprocessing()

void TBufferJSON::JsonDisablePostprocessing ( )
protected

disable post-processing of the code

Definition at line 1271 of file TBufferJSON.cxx.

◆ JsonPushValue()

void TBufferJSON::JsonPushValue ( )
protected

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

Definition at line 2519 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 2633 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 3525 of file TBufferJSON.cxx.

◆ JsonReadCollection()

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

read content of ROOT collection

Definition at line 1669 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 2747 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 1767 of file TBufferJSON.cxx.

◆ JsonReadTObjectMembers()

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

Read TObject data members from JSON.

Do not call TObject::Streamer() to avoid special tweaking of TBufferJSON interface

Definition at line 1974 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 1280 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 1213 of file TBufferJSON.cxx.

◆ JsonStartObjectWrite()

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

Start object element with typeinfo.

Definition at line 1179 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 3029 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 3938 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 3858 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 3922 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 3906 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 3878 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 3898 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 3888 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 3868 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 3946 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 3966 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 3986 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 3976 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 3956 of file TBufferJSON.cxx.

◆ JsonWriteCollection()

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

store content of ROOT collection

Definition at line 1595 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 3994 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 3252 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 1008 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 1318 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 2326 of file TBufferJSON.cxx.

◆ PopStack()

TJSONStackObj * TBufferJSON::PopStack ( )
protected

remove one level from stack

Definition at line 1146 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 1128 of file TBufferJSON.cxx.

◆ ReadArray() [1/13]

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

Read array of Bool_t from buffer.

Implements TBuffer.

Definition at line 2528 of file TBufferJSON.cxx.

◆ ReadArray() [2/13]

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

Read array of Char_t from buffer.

Implements TBuffer.

Definition at line 2536 of file TBufferJSON.cxx.

◆ ReadArray() [3/13]

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

Read array of Double_t from buffer.

Implements TBuffer.

Definition at line 2624 of file TBufferJSON.cxx.

◆ ReadArray() [4/13]

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

Read array of Float_t from buffer.

Implements TBuffer.

Definition at line 2616 of file TBufferJSON.cxx.

◆ ReadArray() [5/13]

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

Read array of Int_t from buffer.

Implements TBuffer.

Definition at line 2568 of file TBufferJSON.cxx.

◆ ReadArray() [6/13]

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

Read array of Long64_t from buffer.

Implements TBuffer.

Definition at line 2600 of file TBufferJSON.cxx.

◆ ReadArray() [7/13]

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

Read array of Long_t from buffer.

Implements TBuffer.

Definition at line 2584 of file TBufferJSON.cxx.

◆ ReadArray() [8/13]

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

Read array of Short_t from buffer.

Implements TBuffer.

Definition at line 2552 of file TBufferJSON.cxx.

◆ ReadArray() [9/13]

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

Read array of UChar_t from buffer.

Implements TBuffer.

Definition at line 2544 of file TBufferJSON.cxx.

◆ ReadArray() [10/13]

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

Read array of UInt_t from buffer.

Implements TBuffer.

Definition at line 2576 of file TBufferJSON.cxx.

◆ ReadArray() [11/13]

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

Read array of ULong64_t from buffer.

Implements TBuffer.

Definition at line 2608 of file TBufferJSON.cxx.

◆ ReadArray() [12/13]

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

Read array of ULong_t from buffer.

Implements TBuffer.

Definition at line 2592 of file TBufferJSON.cxx.

◆ ReadArray() [13/13]

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

Read array of UShort_t from buffer.

Implements TBuffer.

Definition at line 2560 of file TBufferJSON.cxx.

◆ ReadBaseClass()

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

Read data of base class.

Reimplemented from TBufferText.

Definition at line 4035 of file TBufferJSON.cxx.

◆ ReadBool()

void TBufferJSON::ReadBool ( Bool_t b)
finalvirtual

Reads Bool_t value from buffer.

Implements TBuffer.

Definition at line 3533 of file TBufferJSON.cxx.

◆ ReadChar()

void TBufferJSON::ReadChar ( Char_t c)
finalvirtual

Reads Char_t value from buffer.

Implements TBuffer.

Definition at line 3541 of file TBufferJSON.cxx.

◆ ReadCharP()

void TBufferJSON::ReadCharP ( Char_t c)
finalvirtual

Reads array of characters from buffer.

Implements TBuffer.

Definition at line 3651 of file TBufferJSON.cxx.

◆ ReadCharStar()

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

Reads a char* string.

Implements TBuffer.

Definition at line 3677 of file TBufferJSON.cxx.

◆ ReadClass()

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

suppressed function of TBuffer

Implements TBuffer.

Definition at line 2448 of file TBufferJSON.cxx.

◆ ReadDouble()

void TBufferJSON::ReadDouble ( Double_t d)
finalvirtual

Reads Double_t value from buffer.

Implements TBuffer.

Definition at line 3639 of file TBufferJSON.cxx.

◆ ReadFastArray() [1/15]

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

read array of Bool_t from buffer

Implements TBuffer.

Definition at line 2828 of file TBufferJSON.cxx.

◆ ReadFastArray() [2/15]

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

read array of Char_t from buffer

Implements TBuffer.

Definition at line 2836 of file TBufferJSON.cxx.

◆ ReadFastArray() [3/15]

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

read array of Double_t from buffer

Implements TBuffer.

Definition at line 2932 of file TBufferJSON.cxx.

◆ ReadFastArray() [4/15]

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

read array of Float_t from buffer

Implements TBuffer.

Definition at line 2924 of file TBufferJSON.cxx.

◆ ReadFastArray() [5/15]

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

read array of Int_t from buffer

Implements TBuffer.

Definition at line 2876 of file TBufferJSON.cxx.

◆ ReadFastArray() [6/15]

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

read array of Long64_t from buffer

Implements TBuffer.

Definition at line 2908 of file TBufferJSON.cxx.

◆ ReadFastArray() [7/15]

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

read array of Long_t from buffer

Implements TBuffer.

Definition at line 2892 of file TBufferJSON.cxx.

◆ ReadFastArray() [8/15]

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

read array of Short_t from buffer

Implements TBuffer.

Definition at line 2860 of file TBufferJSON.cxx.

◆ ReadFastArray() [9/15]

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

read array of UChar_t from buffer

Implements TBuffer.

Definition at line 2852 of file TBufferJSON.cxx.

◆ ReadFastArray() [10/15]

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

read array of UInt_t from buffer

Implements TBuffer.

Definition at line 2884 of file TBufferJSON.cxx.

◆ ReadFastArray() [11/15]

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

read array of ULong64_t from buffer

Implements TBuffer.

Definition at line 2916 of file TBufferJSON.cxx.

◆ ReadFastArray() [12/15]

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

read array of ULong_t from buffer

Implements TBuffer.

Definition at line 2900 of file TBufferJSON.cxx.

◆ ReadFastArray() [13/15]

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

read array of UShort_t from buffer

Implements TBuffer.

Definition at line 2868 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 
)
finalvirtual

redefined here to avoid warning message from gcc

Implements TBuffer.

Definition at line 2983 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 
)
finalvirtual

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 2943 of file TBufferJSON.cxx.

◆ ReadFastArrayString()

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

read array of Char_t from buffer

Implements TBuffer.

Definition at line 2844 of file TBufferJSON.cxx.

◆ ReadFloat()

void TBufferJSON::ReadFloat ( Float_t f)
finalvirtual

Reads Float_t value from buffer.

Implements TBuffer.

Definition at line 3627 of file TBufferJSON.cxx.

◆ ReadInt()

void TBufferJSON::ReadInt ( Int_t i)
finalvirtual

Reads Int_t value from buffer.

Implements TBuffer.

Definition at line 3576 of file TBufferJSON.cxx.

◆ ReadLong()

void TBufferJSON::ReadLong ( Long_t l)
finalvirtual

Reads Long_t value from buffer.

Implements TBuffer.

Definition at line 3595 of file TBufferJSON.cxx.

◆ ReadLong64()

void TBufferJSON::ReadLong64 ( Long64_t l)
finalvirtual

Reads Long64_t value from buffer.

Implements TBuffer.

Definition at line 3611 of file TBufferJSON.cxx.

◆ ReadObjectAny()

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

Read object from buffer. Only used from TBuffer.

Implements TBuffer.

Definition at line 2492 of file TBufferJSON.cxx.

◆ ReadShort()

void TBufferJSON::ReadShort ( Short_t s)
finalvirtual

Reads Short_t value from buffer.

Implements TBuffer.

Definition at line 3560 of file TBufferJSON.cxx.

◆ ReadStaticArray() [1/13]

Int_t TBufferJSON::ReadStaticArray ( Bool_t b)
finalvirtual

Read array of Bool_t from buffer.

Implements TBuffer.

Definition at line 2642 of file TBufferJSON.cxx.

◆ ReadStaticArray() [2/13]

Int_t TBufferJSON::ReadStaticArray ( Char_t c)
finalvirtual

Read array of Char_t from buffer.

Implements TBuffer.

Definition at line 2650 of file TBufferJSON.cxx.

◆ ReadStaticArray() [3/13]

Int_t TBufferJSON::ReadStaticArray ( Double_t d)
finalvirtual

Read array of Double_t from buffer.

Implements TBuffer.

Definition at line 2738 of file TBufferJSON.cxx.

◆ ReadStaticArray() [4/13]

Int_t TBufferJSON::ReadStaticArray ( Float_t f)
finalvirtual

Read array of Float_t from buffer.

Implements TBuffer.

Definition at line 2730 of file TBufferJSON.cxx.

◆ ReadStaticArray() [5/13]

Int_t TBufferJSON::ReadStaticArray ( Int_t i)
finalvirtual

Read array of Int_t from buffer.

Implements TBuffer.

Definition at line 2682 of file TBufferJSON.cxx.

◆ ReadStaticArray() [6/13]

Int_t TBufferJSON::ReadStaticArray ( Long64_t l)
finalvirtual

Read array of Long64_t from buffer.

Implements TBuffer.

Definition at line 2714 of file TBufferJSON.cxx.

◆ ReadStaticArray() [7/13]

Int_t TBufferJSON::ReadStaticArray ( Long_t l)
finalvirtual

Read array of Long_t from buffer.

Implements TBuffer.

Definition at line 2698 of file TBufferJSON.cxx.

◆ ReadStaticArray() [8/13]

Int_t TBufferJSON::ReadStaticArray ( Short_t h)
finalvirtual

Read array of Short_t from buffer.

Implements TBuffer.

Definition at line 2666 of file TBufferJSON.cxx.

◆ ReadStaticArray() [9/13]

Int_t TBufferJSON::ReadStaticArray ( UChar_t c)
finalvirtual

Read array of UChar_t from buffer.

Implements TBuffer.

Definition at line 2658 of file TBufferJSON.cxx.

◆ ReadStaticArray() [10/13]

Int_t TBufferJSON::ReadStaticArray ( UInt_t i)
finalvirtual

Read array of UInt_t from buffer.

Implements TBuffer.

Definition at line 2690 of file TBufferJSON.cxx.

◆ ReadStaticArray() [11/13]

Int_t TBufferJSON::ReadStaticArray ( ULong64_t l)
finalvirtual

Read array of ULong64_t from buffer.

Implements TBuffer.

Definition at line 2722 of file TBufferJSON.cxx.

◆ ReadStaticArray() [12/13]

Int_t TBufferJSON::ReadStaticArray ( ULong_t l)
finalvirtual

Read array of ULong_t from buffer.

Implements TBuffer.

Definition at line 2706 of file TBufferJSON.cxx.

◆ ReadStaticArray() [13/13]

Int_t TBufferJSON::ReadStaticArray ( UShort_t h)
finalvirtual

Read array of UShort_t from buffer.

Implements TBuffer.

Definition at line 2674 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)
finalvirtual

Reads a std::string.

Implements TBuffer.

Definition at line 3669 of file TBufferJSON.cxx.

◆ ReadStdString() [3/3]

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

Implements TBuffer.

◆ ReadTString()

void TBufferJSON::ReadTString ( TString s)
finalvirtual

Reads a TString.

Implements TBuffer.

Definition at line 3659 of file TBufferJSON.cxx.

◆ ReadUChar()

void TBufferJSON::ReadUChar ( UChar_t c)
finalvirtual

Reads UChar_t value from buffer.

Implements TBuffer.

Definition at line 3552 of file TBufferJSON.cxx.

◆ ReadUInt()

void TBufferJSON::ReadUInt ( UInt_t i)
finalvirtual

Reads UInt_t value from buffer.

Implements TBuffer.

Definition at line 3587 of file TBufferJSON.cxx.

◆ ReadULong()

void TBufferJSON::ReadULong ( ULong_t l)
finalvirtual

Reads ULong_t value from buffer.

Implements TBuffer.

Definition at line 3603 of file TBufferJSON.cxx.

◆ ReadULong64()

void TBufferJSON::ReadULong64 ( ULong64_t l)
finalvirtual

Reads ULong64_t value from buffer.

Implements TBuffer.

Definition at line 3619 of file TBufferJSON.cxx.

◆ ReadUShort()

void TBufferJSON::ReadUShort ( UShort_t s)
finalvirtual

Reads UShort_t value from buffer.

Implements TBuffer.

Definition at line 3568 of file TBufferJSON.cxx.

◆ ReadVersion()

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

read version value from buffer

Implements TBuffer.

Definition at line 2461 of file TBufferJSON.cxx.

◆ RestoreObject()

void * TBufferJSON::RestoreObject ( const char *  str,
TClass **  cl 
)

Read object from JSON 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 947 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 555 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 606 of file TBufferJSON.cxx.

◆ SetStreamerElementNumber()

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

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 2087 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 579 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 593 of file TBufferJSON.cxx.

◆ SkipObjectAny()

void TBufferJSON::SkipObjectAny ( )
finalvirtual

Skip any kind of object from buffer.

Implements TBuffer.

Definition at line 2503 of file TBufferJSON.cxx.

◆ Stack()

TJSONStackObj * TBufferJSON::Stack ( )
inlineprotected

Definition at line 257 of file TBufferJSON.h.

◆ StoreObject()

TString TBufferJSON::StoreObject ( const void obj,
const TClass cl 
)

Store provided object as JSON structure Allows to configure different TBufferJSON properties before converting object into JSON Actual object class must be specified here Method can be safely called once - after that TBufferJSON instance must be destroyed Code should look like:

auto obj = new UserClass(); TBufferJSON buf; buf.SetCompact(TBufferJSON::kNoSpaces); // change any other settings in TBufferJSON auto json = buf.StoreObject(obj, TClass::GetClass<UserClass>());

Definition at line 701 of file TBufferJSON.cxx.

◆ StreamObject() [1/4]

void TBufferText::StreamObject ( TObject obj)
overridevirtual

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 
)
overridevirtual

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 
)
overridevirtual

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 
)
finalvirtual

stream object to/from buffer

Implements TBuffer.

Definition at line 3510 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 75 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 2010 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 2100 of file TBufferJSON.cxx.

◆ WriteArray() [1/13]

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

Write array of Bool_t to buffer.

Implements TBuffer.

Definition at line 3132 of file TBufferJSON.cxx.

◆ WriteArray() [2/13]

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

Write array of Char_t to buffer.

Implements TBuffer.

Definition at line 3141 of file TBufferJSON.cxx.

◆ WriteArray() [3/13]

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

Write array of Double_t to buffer.

Implements TBuffer.

Definition at line 3240 of file TBufferJSON.cxx.

◆ WriteArray() [4/13]

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

Write array of Float_t to buffer.

Implements TBuffer.

Definition at line 3231 of file TBufferJSON.cxx.

◆ WriteArray() [5/13]

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

Write array of Int_ to buffer.

Implements TBuffer.

Definition at line 3177 of file TBufferJSON.cxx.

◆ WriteArray() [6/13]

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

Write array of Long64_t to buffer.

Implements TBuffer.

Definition at line 3213 of file TBufferJSON.cxx.

◆ WriteArray() [7/13]

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

Write array of Long_t to buffer.

Implements TBuffer.

Definition at line 3195 of file TBufferJSON.cxx.

◆ WriteArray() [8/13]

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

Write array of Short_t to buffer.

Implements TBuffer.

Definition at line 3159 of file TBufferJSON.cxx.

◆ WriteArray() [9/13]

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

Write array of UChar_t to buffer.

Implements TBuffer.

Definition at line 3150 of file TBufferJSON.cxx.

◆ WriteArray() [10/13]

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

Write array of UInt_t to buffer.

Implements TBuffer.

Definition at line 3186 of file TBufferJSON.cxx.

◆ WriteArray() [11/13]

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

Write array of ULong64_t to buffer.

Implements TBuffer.

Definition at line 3222 of file TBufferJSON.cxx.

◆ WriteArray() [12/13]

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

Write array of ULong_t to buffer.

Implements TBuffer.

Definition at line 3204 of file TBufferJSON.cxx.

◆ WriteArray() [13/13]

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

Write array of UShort_t to buffer.

Implements TBuffer.

Definition at line 3168 of file TBufferJSON.cxx.

◆ WriteBool()

void TBufferJSON::WriteBool ( Bool_t  b)
finalvirtual

Writes Bool_t value to buffer.

Implements TBuffer.

Definition at line 3698 of file TBufferJSON.cxx.

◆ WriteChar()

void TBufferJSON::WriteChar ( Char_t  c)
finalvirtual

Writes Char_t value to buffer.

Implements TBuffer.

Definition at line 3707 of file TBufferJSON.cxx.

◆ WriteCharP()

void TBufferJSON::WriteCharP ( const Char_t c)
finalvirtual

Writes array of characters to buffer.

Implements TBuffer.

Definition at line 3815 of file TBufferJSON.cxx.

◆ WriteCharStar()

void TBufferJSON::WriteCharStar ( char *  s)
finalvirtual

Writes a char*.

Implements TBuffer.

Definition at line 3848 of file TBufferJSON.cxx.

◆ WriteClass()

void TBufferJSON::WriteClass ( const TClass cl)
finalvirtual

suppressed function of TBuffer

Implements TBuffer.

Definition at line 2456 of file TBufferJSON.cxx.

◆ WriteDouble()

void TBufferJSON::WriteDouble ( Double_t  d)
finalvirtual

Writes Double_t value to buffer.

Implements TBuffer.

Definition at line 3806 of file TBufferJSON.cxx.

◆ WriteFastArray() [1/15]

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

Write array of Bool_t to buffer.

Implements TBuffer.

Definition at line 3289 of file TBufferJSON.cxx.

◆ WriteFastArray() [2/15]

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

Write array of Char_t to buffer.

Implements TBuffer.

Definition at line 3297 of file TBufferJSON.cxx.

◆ WriteFastArray() [3/15]

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

Write array of Double_t to buffer.

Implements TBuffer.

Definition at line 3393 of file TBufferJSON.cxx.

◆ WriteFastArray() [4/15]

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

Write array of Float_t to buffer.

Implements TBuffer.

Definition at line 3385 of file TBufferJSON.cxx.

◆ WriteFastArray() [5/15]

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

Write array of Int_t to buffer.

Implements TBuffer.

Definition at line 3337 of file TBufferJSON.cxx.

◆ WriteFastArray() [6/15]

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

Write array of Long64_t to buffer.

Implements TBuffer.

Definition at line 3369 of file TBufferJSON.cxx.

◆ WriteFastArray() [7/15]

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

Write array of Long_t to buffer.

Implements TBuffer.

Definition at line 3353 of file TBufferJSON.cxx.

◆ WriteFastArray() [8/15]

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

Write array of Short_t to buffer.

Implements TBuffer.

Definition at line 3321 of file TBufferJSON.cxx.

◆ WriteFastArray() [9/15]

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

Write array of UChar_t to buffer.

Implements TBuffer.

Definition at line 3313 of file TBufferJSON.cxx.

◆ WriteFastArray() [10/15]

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

Write array of UInt_t to buffer.

Implements TBuffer.

Definition at line 3345 of file TBufferJSON.cxx.

◆ WriteFastArray() [11/15]

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

Write array of ULong64_t to buffer.

Implements TBuffer.

Definition at line 3377 of file TBufferJSON.cxx.

◆ WriteFastArray() [12/15]

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

Write array of ULong_t to buffer.

Implements TBuffer.

Definition at line 3361 of file TBufferJSON.cxx.

◆ WriteFastArray() [13/15]

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

Write array of UShort_t to buffer.

Implements TBuffer.

Definition at line 3329 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 
)
finalvirtual

Recall TBuffer function to avoid gcc warning message.

Implements TBuffer.

Definition at line 3454 of file TBufferJSON.cxx.

◆ WriteFastArray() [15/15]

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

Recall TBuffer function to avoid gcc warning message.

Implements TBuffer.

Definition at line 3401 of file TBufferJSON.cxx.

◆ WriteFastArrayString()

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

Write array of Char_t to buffer.

Implements TBuffer.

Definition at line 3305 of file TBufferJSON.cxx.

◆ WriteFloat()

void TBufferJSON::WriteFloat ( Float_t  f)
finalvirtual

Writes Float_t value to buffer.

Implements TBuffer.

Definition at line 3797 of file TBufferJSON.cxx.

◆ WriteInt()

void TBufferJSON::WriteInt ( Int_t  i)
finalvirtual

Writes Int_t value to buffer.

Implements TBuffer.

Definition at line 3743 of file TBufferJSON.cxx.

◆ WriteLong()

void TBufferJSON::WriteLong ( Long_t  l)
finalvirtual

Writes Long_t value to buffer.

Implements TBuffer.

Definition at line 3761 of file TBufferJSON.cxx.

◆ WriteLong64()

void TBufferJSON::WriteLong64 ( Long64_t  l)
finalvirtual

Writes Long64_t value to buffer.

Implements TBuffer.

Definition at line 3779 of file TBufferJSON.cxx.

◆ WriteObjectClass()

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

Write object to buffer. Only used from TBuffer.

Implements TBufferIO.

Definition at line 2508 of file TBufferJSON.cxx.

◆ WriteShort()

void TBufferJSON::WriteShort ( Short_t  s)
finalvirtual

Writes Short_t value to buffer.

Implements TBuffer.

Definition at line 3725 of file TBufferJSON.cxx.

◆ WriteStdString() [1/3]

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

Writes a std::string.

Implements TBuffer.

Definition at line 3835 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)
finalvirtual

Writes a TString.

Implements TBuffer.

Definition at line 3825 of file TBufferJSON.cxx.

◆ WriteUChar()

void TBufferJSON::WriteUChar ( UChar_t  c)
finalvirtual

Writes UChar_t value to buffer.

Implements TBuffer.

Definition at line 3716 of file TBufferJSON.cxx.

◆ WriteUInt()

void TBufferJSON::WriteUInt ( UInt_t  i)
finalvirtual

Writes UInt_t value to buffer.

Implements TBuffer.

Definition at line 3752 of file TBufferJSON.cxx.

◆ WriteULong()

void TBufferJSON::WriteULong ( ULong_t  l)
finalvirtual

Writes ULong_t value to buffer.

Implements TBuffer.

Definition at line 3770 of file TBufferJSON.cxx.

◆ WriteULong64()

void TBufferJSON::WriteULong64 ( ULong64_t  l)
finalvirtual

Writes ULong64_t value to buffer.

Implements TBuffer.

Definition at line 3788 of file TBufferJSON.cxx.

◆ WriteUShort()

void TBufferJSON::WriteUShort ( UShort_t  s)
finalvirtual

Writes UShort_t value to buffer.

Implements TBuffer.

Definition at line 3734 of file TBufferJSON.cxx.

◆ WriteVersion()

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

Ignored in TBufferJSON.

Implements TBuffer.

Definition at line 2484 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 325 of file TBufferJSON.h.

◆ fArraySepar

TString TBufferJSON::fArraySepar
protected

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

Definition at line 326 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 322 of file TBufferJSON.h.

◆ fJsonrCnt

unsigned TBufferJSON::fJsonrCnt {0}
protected

! counter for all objects, used for referencing

Definition at line 320 of file TBufferJSON.h.

◆ fMapAsObject

Bool_t TBufferJSON::fMapAsObject {kFALSE}
protected

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

Definition at line 323 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 327 of file TBufferJSON.h.

◆ fOutBuffer

TString TBufferJSON::fOutBuffer
protected

! main output buffer for json code

Definition at line 317 of file TBufferJSON.h.

◆ fOutput

TString* TBufferJSON::fOutput {nullptr}
protected

! current output buffer for json code

Definition at line 318 of file TBufferJSON.h.

◆ fSemicolon

TString TBufferJSON::fSemicolon
protected

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

Definition at line 324 of file TBufferJSON.h.

◆ fSkipClasses

std::vector<const TClass *> TBufferJSON::fSkipClasses
protected

! list of classes, which class info is not stored

Definition at line 330 of file TBufferJSON.h.

◆ fStack

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

! hierarchy of currently streamed element

Definition at line 321 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 328 of file TBufferJSON.h.

◆ fTypeVersionTag

TString TBufferJSON::fTypeVersionTag
protected

! JSON member used to store class version, default empty

Definition at line 329 of file TBufferJSON.h.

◆ fValue

TString TBufferJSON::fValue
protected

! buffer for current value

Definition at line 319 of file TBufferJSON.h.

Libraries for TBufferJSON:
[legend]

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