Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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);
nlohmann::json json
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:541
TH1 is the base class of all histogram classes in ROOT.
Definition TH1.h:59
virtual void FillRandom(TF1 *f1, Int_t ntimes=5000, TRandom *rng=nullptr)
Definition TH1.cxx:3530
Basic string class.
Definition TString.h:139
TH1F * h1
Definition legend1.C:5

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

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

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";
TMarker 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;
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
@ kMapAsObject
store std::map, std::unordered_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 = (1ULL << ( 15 )) , kTextBasedStreaming = (1ULL << ( 18 )) , kUser1 = (1ULL << ( 21 )) , kUser2 = (1ULL << ( 22 )) ,
  kUser3 = (1ULL << ( 23 ))
}
 
- Public Types inherited from TBuffer
enum  { kInitialSize = 1024 , kMinimalSize = 128 }
 
enum  EMode { kRead = 0 , kWrite = 1 }
 
enum  EStatusBits { kIsOwner = (1ULL << ( 16 )) , kCannotHandleMemberWiseStreaming = (1ULL << ( 17 )) }
 
- Public Types inherited from TObject
enum  {
  kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 ,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = (1ULL << ( 0 )) , kOverwrite = (1ULL << ( 1 )) , kWriteDelete = (1ULL << ( 2 )) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = (1ULL << ( 3 )) }
 
enum  EStatusBits {
  kCanDelete = (1ULL << ( 0 )) , kMustCleanup = (1ULL << ( 3 )) , kIsReferenced = (1ULL << ( 4 )) , kHasUUID = (1ULL << ( 5 )) ,
  kCannotPick = (1ULL << ( 6 )) , kNoContextMenu = (1ULL << ( 8 )) , kInvalidObject = (1ULL << ( 13 ))
}
 

Public Member Functions

 TBufferJSON (TBuffer::EMode mode=TBuffer::kWrite)
 Creates buffer object to serialize data into json.
 
 ~TBufferJSON () override
 destroy buffer
 
void ClassBegin (const TClass *, Version_t=-1) final
 Should be called in the beginning of custom class streamer.
 
void ClassEnd (const TClass *) final
 Should be called at the end of custom streamer See TBufferJSON::ClassBegin for more details.
 
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:
 
void DecrementLevel (TVirtualStreamerInfo *) final
 Function is called from TStreamerInfo WriteBuffer and ReadBuffer functions and decrease level in json structure.
 
TVirtualStreamerInfoGetInfo () final
 Return current streamer info element.
 
void IncrementLevel (TVirtualStreamerInfo *) final
 Function is called from TStreamerInfo WriteBuffer and ReadBuffer functions and indent new level in json structure.
 
TClassIsA () const override
 
Bool_t IsSkipClassInfo (const TClass *cl) const
 Returns true if class info will be skipped from JSON.
 
Int_t ReadArray (Bool_t *&b) final
 Read array of Bool_t from buffer.
 
Int_t ReadArray (Char_t *&c) final
 Read array of Char_t from buffer.
 
Int_t ReadArray (Double_t *&d) final
 Read array of Double_t from buffer.
 
Int_t ReadArray (Float_t *&f) final
 Read array of Float_t from buffer.
 
Int_t ReadArray (Int_t *&i) final
 Read array of Int_t from buffer.
 
Int_t ReadArray (Long64_t *&l) final
 Read array of Long64_t from buffer.
 
Int_t ReadArray (Long_t *&l) final
 Read array of Long_t from buffer.
 
Int_t ReadArray (Short_t *&h) final
 Read array of Short_t from buffer.
 
Int_t ReadArray (UChar_t *&c) final
 Read array of UChar_t from buffer.
 
Int_t ReadArray (UInt_t *&i) final
 Read array of UInt_t from buffer.
 
Int_t ReadArray (ULong64_t *&l) final
 Read array of ULong64_t from buffer.
 
Int_t ReadArray (ULong_t *&l) final
 Read array of ULong_t from buffer.
 
Int_t ReadArray (UShort_t *&h) final
 Read array of UShort_t from buffer.
 
void ReadBaseClass (void *start, TStreamerBase *elem) final
 Read data of base class.
 
void ReadBool (Bool_t &b) final
 Reads Bool_t value from buffer.
 
void ReadChar (Char_t &c) final
 Reads Char_t value from buffer.
 
void ReadCharP (Char_t *c) final
 Reads array of characters from buffer.
 
void ReadCharStar (char *&s) final
 Reads a char* string.
 
TClassReadClass (const TClass *cl=nullptr, UInt_t *objTag=nullptr) final
 suppressed function of TBuffer
 
void ReadDouble (Double_t &d) final
 Reads Double_t value from buffer.
 
void ReadFastArray (Bool_t *b, Int_t n) final
 read array of Bool_t from buffer
 
void ReadFastArray (Char_t *c, Int_t n) final
 read array of Char_t from buffer
 
void ReadFastArray (Double_t *d, Int_t n) final
 read array of Double_t from buffer
 
void ReadFastArray (Float_t *f, Int_t n) final
 read array of Float_t from buffer
 
void ReadFastArray (Int_t *i, Int_t n) final
 read array of Int_t from buffer
 
void ReadFastArray (Long64_t *l, Int_t n) final
 read array of Long64_t from buffer
 
void ReadFastArray (Long_t *l, Int_t n) final
 read array of Long_t from buffer
 
void ReadFastArray (Short_t *h, Int_t n) final
 read array of Short_t from buffer
 
void ReadFastArray (UChar_t *c, Int_t n) final
 read array of UChar_t from buffer
 
void ReadFastArray (UInt_t *i, Int_t n) final
 read array of UInt_t from buffer
 
void ReadFastArray (ULong64_t *l, Int_t n) final
 read array of ULong64_t from buffer
 
void ReadFastArray (ULong_t *l, Int_t n) final
 read array of ULong_t from buffer
 
void ReadFastArray (UShort_t *h, Int_t n) final
 read array of UShort_t from buffer
 
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
 
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.
 
void ReadFastArrayString (Char_t *c, Int_t n) final
 read array of Char_t from buffer
 
void ReadFloat (Float_t &f) final
 Reads Float_t value from buffer.
 
void ReadInt (Int_t &i) final
 Reads Int_t value from buffer.
 
void ReadLong (Long_t &l) final
 Reads Long_t value from buffer.
 
void ReadLong64 (Long64_t &l) final
 Reads Long64_t value from buffer.
 
void * ReadObjectAny (const TClass *clCast) final
 Read object from buffer. Only used from TBuffer.
 
void ReadShort (Short_t &s) final
 Reads Short_t value from buffer.
 
Int_t ReadStaticArray (Bool_t *b) final
 Read array of Bool_t from buffer.
 
Int_t ReadStaticArray (Char_t *c) final
 Read array of Char_t from buffer.
 
Int_t ReadStaticArray (Double_t *d) final
 Read array of Double_t from buffer.
 
Int_t ReadStaticArray (Float_t *f) final
 Read array of Float_t from buffer.
 
Int_t ReadStaticArray (Int_t *i) final
 Read array of Int_t from buffer.
 
Int_t ReadStaticArray (Long64_t *l) final
 Read array of Long64_t from buffer.
 
Int_t ReadStaticArray (Long_t *l) final
 Read array of Long_t from buffer.
 
Int_t ReadStaticArray (Short_t *h) final
 Read array of Short_t from buffer.
 
Int_t ReadStaticArray (UChar_t *c) final
 Read array of UChar_t from buffer.
 
Int_t ReadStaticArray (UInt_t *i) final
 Read array of UInt_t from buffer.
 
Int_t ReadStaticArray (ULong64_t *l) final
 Read array of ULong64_t from buffer.
 
Int_t ReadStaticArray (ULong_t *l) final
 Read array of ULong_t from buffer.
 
Int_t ReadStaticArray (UShort_t *h) final
 Read array of UShort_t from buffer.
 
virtual void ReadStdString (std::string &s)
 
void ReadStdString (std::string *s) final
 Reads a std::string.
 
virtual void ReadStdString (std::string *s)=0
 
void ReadTString (TString &s) final
 Reads a TString.
 
void ReadUChar (UChar_t &c) final
 Reads UChar_t value from buffer.
 
void ReadUInt (UInt_t &i) final
 Reads UInt_t value from buffer.
 
void ReadULong (ULong_t &l) final
 Reads ULong_t value from buffer.
 
void ReadULong64 (ULong64_t &l) final
 Reads ULong64_t value from buffer.
 
void ReadUShort (UShort_t &s) final
 Reads UShort_t value from buffer.
 
Version_t ReadVersion (UInt_t *start=nullptr, UInt_t *bcnt=nullptr, const TClass *cl=nullptr) final
 read version value from buffer
 
void * 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.
 
void SetCompact (int level)
 Set level of space/newline/array compression Lower digit of compact parameter define formatting rules.
 
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("")
 
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.
 
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.
 
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.
 
void SkipObjectAny () final
 Skip any kind of object from buffer.
 
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:
 
void Streamer (TBuffer &) override
 Stream an object of class TObject.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
void StreamObject (TObject *obj) override
 
void StreamObject (void *obj, const char *className, const TClass *onFileClass=nullptr) override
 stream object to/from buffer
 
void StreamObject (void *obj, const std::type_info &typeinfo, const TClass *onFileClass=nullptr) override
 stream object to/from buffer
 
void StreamObject (void *obj, const TClass *cl, const TClass *onFileClass=nullptr) final
 stream object to/from buffer
 
void WriteArray (const Bool_t *b, Int_t n) final
 Write array of Bool_t to buffer.
 
void WriteArray (const Char_t *c, Int_t n) final
 Write array of Char_t to buffer.
 
void WriteArray (const Double_t *d, Int_t n) final
 Write array of Double_t to buffer.
 
void WriteArray (const Float_t *f, Int_t n) final
 Write array of Float_t to buffer.
 
void WriteArray (const Int_t *i, Int_t n) final
 Write array of Int_ to buffer.
 
void WriteArray (const Long64_t *l, Int_t n) final
 Write array of Long64_t to buffer.
 
void WriteArray (const Long_t *l, Int_t n) final
 Write array of Long_t to buffer.
 
void WriteArray (const Short_t *h, Int_t n) final
 Write array of Short_t to buffer.
 
void WriteArray (const UChar_t *c, Int_t n) final
 Write array of UChar_t to buffer.
 
void WriteArray (const UInt_t *i, Int_t n) final
 Write array of UInt_t to buffer.
 
void WriteArray (const ULong64_t *l, Int_t n) final
 Write array of ULong64_t to buffer.
 
void WriteArray (const ULong_t *l, Int_t n) final
 Write array of ULong_t to buffer.
 
void WriteArray (const UShort_t *h, Int_t n) final
 Write array of UShort_t to buffer.
 
void WriteBool (Bool_t b) final
 Writes Bool_t value to buffer.
 
void WriteChar (Char_t c) final
 Writes Char_t value to buffer.
 
void WriteCharP (const Char_t *c) final
 Writes array of characters to buffer.
 
void WriteCharStar (char *s) final
 Writes a char*.
 
void WriteClass (const TClass *cl) final
 suppressed function of TBuffer
 
void WriteDouble (Double_t d) final
 Writes Double_t value to buffer.
 
void WriteFastArray (const Bool_t *b, Long64_t n) final
 Write array of Bool_t to buffer.
 
void WriteFastArray (const Char_t *c, Long64_t n) final
 Write array of Char_t to buffer.
 
void WriteFastArray (const Double_t *d, Long64_t n) final
 Write array of Double_t to buffer.
 
void WriteFastArray (const Float_t *f, Long64_t n) final
 Write array of Float_t to buffer.
 
void WriteFastArray (const Int_t *i, Long64_t n) final
 Write array of Int_t to buffer.
 
void WriteFastArray (const Long64_t *l, Long64_t n) final
 Write array of Long64_t to buffer.
 
void WriteFastArray (const Long_t *l, Long64_t n) final
 Write array of Long_t to buffer.
 
void WriteFastArray (const Short_t *h, Long64_t n) final
 Write array of Short_t to buffer.
 
void WriteFastArray (const UChar_t *c, Long64_t n) final
 Write array of UChar_t to buffer.
 
void WriteFastArray (const UInt_t *i, Long64_t n) final
 Write array of UInt_t to buffer.
 
void WriteFastArray (const ULong64_t *l, Long64_t n) final
 Write array of ULong64_t to buffer.
 
void WriteFastArray (const ULong_t *l, Long64_t n) final
 Write array of ULong_t to buffer.
 
void WriteFastArray (const UShort_t *h, Long64_t n) final
 Write array of UShort_t to buffer.
 
Int_t WriteFastArray (void **startp, const TClass *cl, Long64_t n=1, Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=nullptr) final
 Recall TBuffer function to avoid gcc warning message.
 
void WriteFastArray (void *start, const TClass *cl, Long64_t n=1, TMemberStreamer *s=nullptr) final
 Recall TBuffer function to avoid gcc warning message.
 
void WriteFastArrayString (const Char_t *c, Long64_t n) final
 Write array of Char_t to buffer.
 
void WriteFloat (Float_t f) final
 Writes Float_t value to buffer.
 
void WriteInt (Int_t i) final
 Writes Int_t value to buffer.
 
void WriteLong (Long_t l) final
 Writes Long_t value to buffer.
 
void WriteLong64 (Long64_t l) final
 Writes Long64_t value to buffer.
 
void WriteShort (Short_t s) final
 Writes Short_t value to buffer.
 
void WriteStdString (const std::string *s) final
 Writes a std::string.
 
virtual void WriteStdString (const std::string *s)=0
 
virtual void WriteStdString (std::string &s)
 
void WriteTString (const TString &s) final
 Writes a TString.
 
void WriteUChar (UChar_t c) final
 Writes UChar_t value to buffer.
 
void WriteUInt (UInt_t i) final
 Writes UInt_t value to buffer.
 
void WriteULong (ULong_t l) final
 Writes ULong_t value to buffer.
 
void WriteULong64 (ULong64_t l) final
 Writes ULong64_t value to buffer.
 
void WriteUShort (UShort_t s) final
 Writes UShort_t value to buffer.
 
UInt_t WriteVersion (const TClass *cl, Bool_t useBcnt=kFALSE) final
 Ignored in TBufferJSON.
 
- Public Member Functions inherited from TBufferText
 ~TBufferText () override
 destructor
 
Int_t ApplySequence (const TStreamerInfoActions::TActionSequence &sequence, void *object) final
 Read one collection of objects from the buffer using the StreamerInfoLoopAction.
 
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.
 
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.
 
Int_t CheckByteCount (UInt_t, UInt_t, const char *) final
 
Int_t CheckByteCount (UInt_t, UInt_t, const TClass *) final
 
TClassIsA () const override
 
Int_t ReadArrayDouble32 (Double_t *&d, TStreamerElement *ele=nullptr) override
 Read array of Double32_t from buffer.
 
Int_t ReadArrayFloat16 (Float_t *&f, TStreamerElement *ele=nullptr) override
 Read array of Float16_t from buffer.
 
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.
 
Int_t ReadClassBuffer (const TClass *, void *, Int_t, UInt_t, UInt_t, const TClass *=nullptr) override
 Deserialize information from a buffer into an object.
 
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
 
void ReadFastArrayDouble32 (Double_t *d, Int_t n, TStreamerElement *ele=nullptr) final
 read array of Double32_t from buffer
 
void ReadFastArrayFloat16 (Float_t *f, Int_t n, TStreamerElement *ele=nullptr) final
 read array of Float16_t from buffer
 
void ReadFastArrayWithFactor (Double_t *ptr, Int_t n, Double_t factor, Double_t minvalue) final
 read array of Double32_t from buffer
 
void ReadFastArrayWithFactor (Float_t *ptr, Int_t n, Double_t factor, Double_t minvalue) final
 read array of Float16_t from buffer
 
void ReadFastArrayWithNbits (Double_t *ptr, Int_t n, Int_t nbits) final
 read array of Double32_t from buffer
 
void ReadFastArrayWithNbits (Float_t *ptr, Int_t n, Int_t nbits) final
 read array of Float16_t from buffer
 
void ReadFloat16 (Float_t *f, TStreamerElement *ele=nullptr) final
 read a Float16_t from the buffer
 
TObjectReadObject (const TClass *) final
 
Int_t ReadStaticArrayDouble32 (Double_t *d, TStreamerElement *ele=nullptr) final
 Read array of Double32_t from buffer.
 
Int_t ReadStaticArrayFloat16 (Float_t *f, TStreamerElement *ele=nullptr) final
 Read array of Float16_t from buffer.
 
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().
 
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().
 
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().
 
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().
 
void SetByteCount (UInt_t, Bool_t=kFALSE) final
 
void SkipVersion (const TClass *cl=nullptr) final
 Skip class version from I/O buffer.
 
void Streamer (TBuffer &) override
 Stream an object of class TObject.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
void StreamObject (TObject *obj) override
 
virtual void StreamObject (TObject *obj)=0
 
void StreamObject (void *obj, const char *className, const TClass *onFileClass=nullptr) override
 stream object to/from buffer
 
virtual void StreamObject (void *obj, const char *className, const TClass *onFileClass=nullptr)=0
 
void StreamObject (void *obj, const std::type_info &typeinfo, const TClass *onFileClass=nullptr) override
 stream object to/from buffer
 
virtual void StreamObject (void *obj, const std::type_info &typeinfo, const TClass *onFileClass=nullptr)=0
 
virtual void StreamObject (void *obj, const TClass *cl, const TClass *onFileClass=nullptr)=0
 
void WriteArrayDouble32 (const Double_t *d, Int_t n, TStreamerElement *ele=nullptr) final
 Write array of Double32_t to buffer.
 
void WriteArrayFloat16 (const Float_t *f, Int_t n, TStreamerElement *ele=nullptr) final
 Write array of Float16_t to buffer.
 
virtual void WriteBaseClass (void *start, TStreamerBase *elem)
 Write data of base class.
 
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.
 
void WriteDouble32 (Double_t *d, TStreamerElement *ele=nullptr) final
 write a Double32_t to the buffer
 
void WriteFastArrayDouble32 (const Double_t *d, Long64_t n, TStreamerElement *ele=nullptr) final
 Write array of Double32_t to buffer.
 
void WriteFastArrayFloat16 (const Float_t *d, Long64_t n, TStreamerElement *ele=nullptr) final
 Write array of Float16_t to buffer.
 
void WriteFloat16 (Float_t *f, TStreamerElement *ele=nullptr) final
 write a Float16_t to the buffer
 
void WriteString (const char *) final
 
UInt_t WriteVersionMemberWise (const TClass *, Bool_t=kFALSE) final
 
- Public Member Functions inherited from TBufferIO
 ~TBufferIO () override
 destructor
 
Bool_t CheckObject (const TObject *obj) override
 Check if the specified object is already in the buffer.
 
Bool_t CheckObject (const void *obj, const TClass *ptrClass) override
 Check if the specified object of the specified class is already in the buffer.
 
void ForceWriteInfo (TVirtualStreamerInfo *info, Bool_t force) override
 force writing the TStreamerInfo to the file
 
void ForceWriteInfoClones (TClonesArray *a) override
 Make sure TStreamerInfo is not optimized, otherwise it will not be possible to support schema evolution in read mode.
 
Int_t GetBufferDisplacement () const override
 
TProcessIDGetLastProcessID (TRefTable *reftable) const override
 Return the last TProcessID in the file.
 
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.
 
UShort_t GetPidOffset () const override
 
UInt_t GetTRefExecId () override
 Return the exec id stored in the current TStreamerInfo element.
 
Int_t GetVersionOwner () const override
 Return the version number of the owner file.
 
void InitMap () override
 Create the fMap container and initialize them with the null object.
 
void MapObject (const TObject *obj, UInt_t offset=1) override
 Add object to the fMap container.
 
void MapObject (const void *obj, const TClass *cl, UInt_t offset=1) override
 Add object to the fMap container.
 
Int_t ReadClones (TClonesArray *a, Int_t nobjects, Version_t objvers) override
 Interface to TStreamerInfo::ReadBufferClones.
 
TProcessIDReadProcessID (UShort_t pidf) override
 The TProcessID with number pidf is read from file.
 
void Reset () override
 Reset buffer object. Resets map and buffer offset.
 
void ResetMap () override
 Delete existing fMap and reset map counter.
 
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.
 
void SetReadParam (Int_t mapsize) override
 Set the initial size of the map used to store object and class references during reading.
 
void SetWriteParam (Int_t mapsize) override
 Set the initial size of the hashtable used to store object and class references during writing.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
void TagStreamerInfo (TVirtualStreamerInfo *info) override
 Mark the classindex of the current file as using this TStreamerInfo.
 
Int_t WriteClones (TClonesArray *a, Int_t nobjects) override
 Interface to TStreamerInfo::WriteBufferClones.
 
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.
 
Int_t WriteObjectAny (const void *obj, const TClass *ptrClass, Bool_t cacheReuse=kTRUE) override
 Write object to I/O buffer.
 
UShort_t WriteProcessID (TProcessID *pid) override
 Check if the ProcessID pid is already in the file.
 
- Public Member Functions inherited from TBuffer
 TBuffer (EMode mode)
 Create an I/O buffer object.
 
 TBuffer (EMode mode, Int_t bufsiz)
 Create an I/O buffer object.
 
 TBuffer (EMode mode, Int_t bufsiz, void *buf, Bool_t adopt=kTRUE, ReAllocCharFun_t reallocfunc=nullptr)
 Create an I/O buffer object.
 
virtual ~TBuffer ()
 Delete an I/O buffer object.
 
void AutoExpand (Int_t size_needed)
 Automatically calculate a new size and expand the buffer to fit at least size_needed.
 
char * Buffer () const
 
Int_t BufferSize () const
 
Bool_t ByteSwapBuffer (Long64_t n, EDataType type)
 Byte-swap N primitive-elements in the buffer.
 
void DetachBuffer ()
 
void Expand (Int_t newsize, Bool_t copy=kTRUE)
 Expand (or shrink) the I/O buffer to newsize bytes.
 
Int_t GetBufferVersion () const
 
char * GetCurrent () const
 
TObjectGetParent () const
 Return pointer to parent of this buffer.
 
ReAllocCharFun_t GetReAllocFunc () const
 Return the reallocation method currently used.
 
Bool_t IsReading () const
 
Bool_t IsWriting () const
 
Int_t Length () const
 
virtual TVirtualArrayPeekDataCache () const
 Return the 'current' data cache area from the list of area to be used for temporarily store 'missing' data members.
 
virtual TVirtualArrayPopDataCache ()
 Pop and Return the 'current' data cache area from the list of area to be used for temporarily store 'missing' data members.
 
virtual void PushDataCache (TVirtualArray *)
 Push a new data cache area onto the list of area to be used for temporarily store 'missing' data members.
 
void SetBuffer (void *buf, UInt_t bufsiz=0, Bool_t adopt=kTRUE, ReAllocCharFun_t reallocfunc=nullptr)
 Sets a new buffer in an existing TBuffer object.
 
void SetBufferOffset (Int_t offset=0)
 
void SetParent (TObject *parent)
 Set parent owning this buffer.
 
void SetReadMode ()
 Set buffer in read mode.
 
void SetReAllocFunc (ReAllocCharFun_t reallocfunc=nullptr)
 Set which memory reallocation method to use.
 
void SetWriteMode ()
 Set buffer in write mode.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
template<class T >
Int_t WriteObject (const T *objptr, Bool_t cacheReuse=kTRUE)
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor.
 
 TObject (const TObject &object)
 TObject copy ctor.
 
virtual ~TObject ()
 TObject destructor.
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract.
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad.
 
virtual void Browse (TBrowser *b)
 Browse object. May be overridden for another default action.
 
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.
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs.
 
virtual void Clear (Option_t *="")
 
virtual TObjectClone (const char *newname="") const
 Make a clone of an object using the Streamer facility.
 
virtual Int_t Compare (const TObject *obj) const
 Compare abstract method.
 
virtual void Copy (TObject &object) const
 Copy this to obj.
 
virtual void Delete (Option_t *option="")
 Delete this object.
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object.
 
virtual void Draw (Option_t *option="")
 Default Draw method for all objects.
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs.
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1).
 
virtual void Dump () const
 Dump contents of object on stdout.
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message.
 
virtual void Execute (const char *method, const char *params, Int_t *error=nullptr)
 Execute method on this object with the given parameter string, e.g.
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr)
 Execute method on this object with parameters stored in the TObjArray.
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py).
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message.
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes.
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes.
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object.
 
virtual const char * GetIconName () const
 Returns mime type name of object.
 
virtual const char * GetName () const
 Returns name of object.
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py).
 
virtual Option_tGetOption () const
 
virtual const char * GetTitle () const
 Returns title of object.
 
virtual UInt_t GetUniqueID () const
 Return the unique object id.
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out.
 
virtual ULong_t Hash () const
 Return hash value for this object.
 
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.
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message.
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname".
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl.
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas.
 
void InvertBit (UInt_t f)
 
Bool_t IsDestructed () const
 IsDestructed.
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory).
 
virtual Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
 
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.
 
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).
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification (the base implementation is no-op).
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete.
 
void operator delete (void *ptr)
 Operator delete.
 
void operator delete (void *ptr, void *vp)
 Only called by placement new when throwing an exception.
 
void operator delete[] (void *ptr)
 Operator delete [].
 
void operator delete[] (void *ptr, void *vp)
 Only called by placement new[] when throwing an exception.
 
void * operator new (size_t sz)
 
void * operator new (size_t sz, void *vp)
 
void * operator new[] (size_t sz)
 
void * operator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator.
 
virtual void Paint (Option_t *option="")
 This method must be overridden if a class wants to paint itself.
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list.
 
virtual void Print (Option_t *option="") const
 This method must be overridden when a class wants to print itself.
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list.
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename.
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out".
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f.
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object.
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message.
 
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.
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message.
 

Static Public Member Functions

static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static TObjectConvertFromJSON (const char *str)
 Read TObject-based class from JSON, produced by ConvertToJSON() method.
 
static void * ConvertFromJSONAny (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.
 
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.
 
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.
 
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.
 
static const char * DeclFileName ()
 
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()
 
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.
 
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 TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static void CompactFloatString (char *buf, unsigned len)
 method compress float string, excluding exp and/or move float point
 
static const char * ConvertDouble (Double_t v, char *buf, unsigned len, Bool_t not_optimize=kFALSE)
 convert float to string with configured format
 
static const char * ConvertFloat (Float_t v, char *buf, unsigned len, Bool_t not_optimize=kFALSE)
 convert float to string with configured format
 
static const char * DeclFileName ()
 
static const char * GetDoubleFormat ()
 return current printf format for double members, default "%.14e"
 
static const char * GetFloatFormat ()
 return current printf format for float members, default "%e"
 
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
 
static void SetFloatFormat (const char *fmt="%e")
 set printf format for float/double members, default "%e" to change format only for doubles, use SetDoubleFormat
 
- Static Public Member Functions inherited from TBufferIO
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
static Int_t GetGlobalReadParam ()
 Get default read map size.
 
static Int_t GetGlobalWriteParam ()
 Get default write map size.
 
static void SetGlobalReadParam (Int_t mapsize)
 Set the initial size of the map used to store object and class references during reading.
 
static void SetGlobalWriteParam (Int_t mapsize)
 Set the initial size of the map used to store object and class references during reading.
 
- Static Public Member Functions inherited from TBuffer
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
static TClassGetClass (const char *className)
 Forward to TROOT::GetClass().
 
static TClassGetClass (const std::type_info &typeinfo)
 Forward to TROOT::GetClass().
 
- Static Public Member Functions inherited from TObject
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
static Longptr_t GetDtorOnly ()
 Return destructor only flag.
 
static Bool_t GetObjectStat ()
 Get status of object stat flag.
 
static void SetDtorOnly (void *obj)
 Set destructor only flag.
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable.
 

Protected Member Functions

void AppendOutput (const char *line0, const char *line1=nullptr)
 Append two string to the output JSON, normally separate by line break.
 
void JsonDisablePostprocessing ()
 disable post-processing of the code
 
void JsonPushValue ()
 If value exists, push in the current stack for post-processing.
 
template<typename T >
Int_t JsonReadArray (T *value)
 Read static array from JSON - not used.
 
template<typename T >
void JsonReadBasic (T &value)
 Template function to read basic value from JSON.
 
void JsonReadCollection (TCollection *obj, const TClass *objClass)
 read content of ROOT collection
 
template<typename T >
void JsonReadFastArray (T *arr, Int_t arrsize, bool asstring=false)
 Template method to read array from the JSON.
 
void * JsonReadObject (void *obj, const TClass *objClass=nullptr, TClass **readClass=nullptr)
 Read object from current JSON node.
 
void JsonReadTObjectMembers (TObject *obj, void *node=nullptr)
 Read TObject data members from JSON.
 
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)
 
void JsonStartElement (const TStreamerElement *elem, const TClass *base_class)
 Start new class member in JSON structures.
 
TJSONStackObjJsonStartObjectWrite (const TClass *obj_class, TStreamerInfo *info=nullptr)
 Start object element with typeinfo.
 
template<typename T >
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
 
void JsonWriteBasic (Char_t value)
 converts Char_t to string and add to json value buffer
 
void JsonWriteBasic (Double_t value)
 converts Double_t to string and add to json value buffer
 
void JsonWriteBasic (Float_t value)
 converts Float_t to string and add to json value buffer
 
void JsonWriteBasic (Int_t value)
 converts Int_t to string and add to json value buffer
 
void JsonWriteBasic (Long64_t value)
 converts Long64_t to string and add to json value buffer
 
void JsonWriteBasic (Long_t value)
 converts Long_t to string and add to json value buffer
 
void JsonWriteBasic (Short_t value)
 converts Short_t to string and add to json value buffer
 
void JsonWriteBasic (UChar_t value)
 converts UChar_t to string and add to json value buffer
 
void JsonWriteBasic (UInt_t value)
 converts UInt_t to string and add to json value buffer
 
void JsonWriteBasic (ULong64_t value)
 converts ULong64_t to string and add to json value buffer
 
void JsonWriteBasic (ULong_t value)
 converts ULong_t to string and add to json value buffer
 
void JsonWriteBasic (UShort_t value)
 converts UShort_t to string and add to json value buffer
 
void JsonWriteCollection (TCollection *obj, const TClass *objClass)
 store content of ROOT collection
 
void JsonWriteConstChar (const char *value, Int_t len=-1, const char *=nullptr)
 writes string value, processing all kind of special characters
 
template<typename T >
void JsonWriteFastArray (const T *arr, Long64_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()
 
TString JsonWriteMember (const void *ptr, TDataMember *member, TClass *memberClass, Int_t arraylen)
 Convert single data member to JSON structures Returns string with converted member.
 
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.
 
void PerformPostProcessing (TJSONStackObj *stack, const TClass *obj_cl=nullptr)
 Function is converts TObject and TString structures to more compact representation.
 
TJSONStackObjPopStack ()
 remove one level from stack
 
TJSONStackObjPushStack (Int_t inclevel=0, void *readnode=nullptr)
 add new level to the structures stack
 
TJSONStackObjStack ()
 
void WorkWithClass (TStreamerInfo *info, const TClass *cl=nullptr)
 Prepares buffer to stream data of specified class.
 
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.
 
void WriteObjectClass (const void *actualObjStart, const TClass *actualClass, Bool_t cacheReuse) final
 Write object to buffer. Only used from TBuffer.
 
- Protected Member Functions inherited from TBufferText
 TBufferText ()
 Default constructor.
 
 TBufferText (TBuffer::EMode mode, TObject *parent=nullptr)
 Normal constructor.
 
- Protected Member Functions inherited from TBufferIO
 TBufferIO ()
 
 TBufferIO (TBuffer::EMode mode)
 constructor
 
 TBufferIO (TBuffer::EMode mode, Int_t bufsiz)
 constructor
 
 TBufferIO (TBuffer::EMode mode, Int_t bufsiz, void *buf, Bool_t adopt=kTRUE, ReAllocCharFun_t reallocfunc=nullptr)
 constructor
 
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.
 
- Protected Member Functions inherited from TBuffer
 TBuffer ()
 
 TBuffer (const TBuffer &)=delete
 
void operator= (const TBuffer &)=delete
 
Int_t Read (const char *name) override
 Read contents of object with specified name from the current directory.
 
Int_t Write (const char *name, Int_t opt, Int_t bufs) const override
 Write this object to the current directory.
 
Int_t Write (const char *name, Int_t opt, Int_t bufs) override
 Write this object to the current directory.
 
- 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).
 
void MakeZombie ()
 

Static Protected Member Functions

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

Protected Attributes

Int_t fArrayCompact {0}
 ! 0 - no array compression, 1 - exclude leading/trailing zeros, 2 - check value repetition
 
TString fArraySepar
 ! depending from compression level, ", " or ","
 
Int_t fCompact {0}
 ! 0 - no any compression, 1 - no spaces in the begin, 2 - no new lines, 3 - no spaces at all
 
unsigned fJsonrCnt {0}
 ! counter for all objects, used for referencing
 
Bool_t fMapAsObject {kFALSE}
 ! when true, std::map will be converted into JSON object
 
TString fNumericLocale
 ! stored value of setlocale(LC_NUMERIC), which should be recovered at the end
 
TString fOutBuffer
 ! main output buffer for json code
 
TStringfOutput {nullptr}
 ! current output buffer for json code
 
TString fSemicolon
 ! depending from compression level, " : " or ":"
 
std::vector< const TClass * > fSkipClasses
 ! list of classes, which class info is not stored
 
std::deque< std::unique_ptr< TJSONStackObj > > fStack
 ! hierarchy of currently streamed element
 
TString fTypeNameTag
 ! JSON member used for storing class name, when empty - no class name will be stored
 
TString fTypeVersionTag
 ! JSON member used to store class version, default empty
 
TString fValue
 ! buffer for current value
 
- Protected Attributes inherited from TBufferIO
TExMapfClassMap {nullptr}
 Map containing object,class pairs for reading.
 
Int_t fDisplacement {0}
 Value to be added to the map offsets.
 
TExMapfMap {nullptr}
 Map containing object,offset pairs for reading/writing.
 
Int_t fMapCount {0}
 Number of objects or classes in map.
 
Int_t fMapSize {0}
 Default size of map.
 
UShort_t fPidOffset {0}
 Offset to be added to the pid index in this key/buffer.
 
- 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.
 
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 = (1ULL << ( 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
 
static const char * fgFloatFmt = "%e"
 ! printf argument for floats, either "%f" or "%e" or "%10f" and so on
 
- Static Protected Attributes inherited from TBufferIO
static Int_t fgMapSize = kMapSize
 Default map size for all TBuffer objects.
 

#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::unordered_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 

do not store typenames in JSON

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

◆ ~TBufferJSON()

TBufferJSON::~TBufferJSON ( )
override

destroy buffer

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

◆ Class()

static TClass * TBufferJSON::Class ( )
static
Returns
TClass describing this class

◆ Class_Name()

static const char * TBufferJSON::Class_Name ( )
static
Returns
Name of this class

◆ Class_Version()

static constexpr Version_t TBufferJSON::Class_Version ( )
inlinestaticconstexpr
Returns
Version of this class

Definition at line 332 of file TBufferJSON.h.

◆ 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 2184 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 2193 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");
    #define b(i)
    Definition RSha256.hxx:100
    virtual void Streamer(TBuffer &)
    Stream an object of class TObject.
    Definition TObject.cxx:906
  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 2235 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 911 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 934 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 977 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 522 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 638 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 724 of file TBufferJSON.cxx.

◆ DeclFileName()

static const char * TBufferJSON::DeclFileName ( )
inlinestatic
Returns
Name of the file containing the class declaration

Definition at line 332 of file TBufferJSON.h.

◆ 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 2051 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 751 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 831 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 2082 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 2004 of file TBufferJSON.cxx.

◆ IsA()

TClass * TBufferJSON::IsA ( ) const
inlineoverridevirtual
Returns
TClass describing current object

Reimplemented from TBufferIO.

Definition at line 332 of file TBufferJSON.h.

◆ IsSkipClassInfo()

Bool_t TBufferJSON::IsSkipClassInfo ( const TClass cl) const

Returns true if class info will be skipped from JSON.

Definition at line 614 of file TBufferJSON.cxx.

◆ JsonDisablePostprocessing()

void TBufferJSON::JsonDisablePostprocessing ( )
protected

disable post-processing of the code

Definition at line 1276 of file TBufferJSON.cxx.

◆ JsonPushValue()

void TBufferJSON::JsonPushValue ( )
protected

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

Definition at line 2524 of file TBufferJSON.cxx.

◆ JsonReadArray()

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

Read static array from JSON - not used.

Definition at line 2638 of file TBufferJSON.cxx.

◆ JsonReadBasic()

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

Template function to read basic value from JSON.

Definition at line 3556 of file TBufferJSON.cxx.

◆ JsonReadCollection()

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

read content of ROOT collection

Definition at line 1674 of file TBufferJSON.cxx.

◆ JsonReadFastArray()

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

Template method to read array from the JSON.

Definition at line 2752 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 1772 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 1979 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 1285 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 1212 of file TBufferJSON.cxx.

◆ JsonStartObjectWrite()

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

Start object element with typeinfo.

Definition at line 1178 of file TBufferJSON.cxx.

◆ JsonWriteArrayCompress()

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

Definition at line 3034 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 3969 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 3889 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 3953 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 3937 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 3909 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 3929 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 3919 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 3899 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 3977 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 3997 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 4017 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 4007 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 3987 of file TBufferJSON.cxx.

◆ JsonWriteCollection()

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

store content of ROOT collection

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

◆ JsonWriteFastArray()

template<typename T >
void TBufferJSON::JsonWriteFastArray ( const T *  arr,
Long64_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()

Note
Due to the current limit of the buffer size, the function aborts execution of the program in case of overflow. See https://github.com/root-project/root/issues/6734 for more details.

Definition at line 3258 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 1007 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 1323 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 2331 of file TBufferJSON.cxx.

◆ PopStack()

TJSONStackObj * TBufferJSON::PopStack ( )
protected

remove one level from stack

Definition at line 1145 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 1127 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 2533 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 2541 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 2629 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 2621 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 2573 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 2605 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 2589 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 2557 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 2549 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 2581 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 2613 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 2597 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 2565 of file TBufferJSON.cxx.

◆ ReadBaseClass()

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

Read data of base class.

Reimplemented from TBufferText.

Definition at line 4081 of file TBufferJSON.cxx.

◆ ReadBool()

void TBufferJSON::ReadBool ( Bool_t b)
finalvirtual

Reads Bool_t value from buffer.

Implements TBuffer.

Definition at line 3564 of file TBufferJSON.cxx.

◆ ReadChar()

void TBufferJSON::ReadChar ( Char_t c)
finalvirtual

Reads Char_t value from buffer.

Implements TBuffer.

Definition at line 3572 of file TBufferJSON.cxx.

◆ ReadCharP()

void TBufferJSON::ReadCharP ( Char_t c)
finalvirtual

Reads array of characters from buffer.

Implements TBuffer.

Definition at line 3682 of file TBufferJSON.cxx.

◆ ReadCharStar()

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

Reads a char* string.

Implements TBuffer.

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

◆ ReadDouble()

void TBufferJSON::ReadDouble ( Double_t d)
finalvirtual

Reads Double_t value from buffer.

Implements TBuffer.

Definition at line 3670 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 2833 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 2841 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 2937 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 2929 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 2881 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 2913 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 2897 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 2865 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 2857 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 2889 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 2921 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 2905 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 2873 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 2988 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 2948 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 2849 of file TBufferJSON.cxx.

◆ ReadFloat()

void TBufferJSON::ReadFloat ( Float_t f)
finalvirtual

Reads Float_t value from buffer.

Implements TBuffer.

Definition at line 3658 of file TBufferJSON.cxx.

◆ ReadInt()

void TBufferJSON::ReadInt ( Int_t i)
finalvirtual

Reads Int_t value from buffer.

Implements TBuffer.

Definition at line 3607 of file TBufferJSON.cxx.

◆ ReadLong()

void TBufferJSON::ReadLong ( Long_t l)
finalvirtual

Reads Long_t value from buffer.

Implements TBuffer.

Definition at line 3626 of file TBufferJSON.cxx.

◆ ReadLong64()

void TBufferJSON::ReadLong64 ( Long64_t l)
finalvirtual

Reads Long64_t value from buffer.

Implements TBuffer.

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

◆ ReadShort()

void TBufferJSON::ReadShort ( Short_t s)
finalvirtual

Reads Short_t value from buffer.

Implements TBuffer.

Definition at line 3591 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 2647 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 2655 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 2743 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 2735 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 2687 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 2719 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 2703 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 2671 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 2663 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 2695 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 2727 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 2711 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 2679 of file TBufferJSON.cxx.

◆ ReadStdString() [1/3]

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

Reimplemented from TBuffer.

Definition at line 292 of file TBuffer.h.

◆ ReadStdString() [2/3]

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

Reads a std::string.

Implements TBuffer.

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

◆ ReadUChar()

void TBufferJSON::ReadUChar ( UChar_t c)
finalvirtual

Reads UChar_t value from buffer.

Implements TBuffer.

Definition at line 3583 of file TBufferJSON.cxx.

◆ ReadUInt()

void TBufferJSON::ReadUInt ( UInt_t i)
finalvirtual

Reads UInt_t value from buffer.

Implements TBuffer.

Definition at line 3618 of file TBufferJSON.cxx.

◆ ReadULong()

void TBufferJSON::ReadULong ( ULong_t l)
finalvirtual

Reads ULong_t value from buffer.

Implements TBuffer.

Definition at line 3634 of file TBufferJSON.cxx.

◆ ReadULong64()

void TBufferJSON::ReadULong64 ( ULong64_t l)
finalvirtual

Reads ULong64_t value from buffer.

Implements TBuffer.

Definition at line 3650 of file TBufferJSON.cxx.

◆ ReadUShort()

void TBufferJSON::ReadUShort ( UShort_t s)
finalvirtual

Reads UShort_t value from buffer.

Implements TBuffer.

Definition at line 3599 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 2466 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 946 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 554 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 605 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 2092 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 578 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 592 of file TBufferJSON.cxx.

◆ SkipObjectAny()

void TBufferJSON::SkipObjectAny ( )
finalvirtual

Skip any kind of object from buffer.

Implements TBuffer.

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

◆ Streamer()

void TBufferJSON::Streamer ( TBuffer R__b)
overridevirtual

Stream an object of class TObject.

Reimplemented from TBufferIO.

◆ StreamerNVirtual()

void TBufferJSON::StreamerNVirtual ( TBuffer ClassDef_StreamerNVirtual_b)
inline

Definition at line 332 of file TBufferJSON.h.

◆ StreamObject() [1/4]

void TBufferText::StreamObject ( TObject obj)
overridevirtual

Implements TBuffer.

Definition at line 33 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

Implements TBuffer.

Definition at line 32 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

Implements TBuffer.

Definition at line 31 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 3541 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 2015 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 2105 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 3137 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 3146 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 3245 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 3236 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 3182 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 3218 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 3200 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 3164 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 3155 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 3191 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 3227 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 3209 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 3173 of file TBufferJSON.cxx.

◆ WriteBool()

void TBufferJSON::WriteBool ( Bool_t  b)
finalvirtual

Writes Bool_t value to buffer.

Implements TBuffer.

Definition at line 3729 of file TBufferJSON.cxx.

◆ WriteChar()

void TBufferJSON::WriteChar ( Char_t  c)
finalvirtual

Writes Char_t value to buffer.

Implements TBuffer.

Definition at line 3738 of file TBufferJSON.cxx.

◆ WriteCharP()

void TBufferJSON::WriteCharP ( const Char_t c)
finalvirtual

Writes array of characters to buffer.

Implements TBuffer.

Definition at line 3846 of file TBufferJSON.cxx.

◆ WriteCharStar()

void TBufferJSON::WriteCharStar ( char *  s)
finalvirtual

Writes a char*.

Implements TBuffer.

Definition at line 3879 of file TBufferJSON.cxx.

◆ WriteClass()

void TBufferJSON::WriteClass ( const TClass cl)
finalvirtual

suppressed function of TBuffer

Implements TBuffer.

Definition at line 2461 of file TBufferJSON.cxx.

◆ WriteDouble()

void TBufferJSON::WriteDouble ( Double_t  d)
finalvirtual

Writes Double_t value to buffer.

Implements TBuffer.

Definition at line 3837 of file TBufferJSON.cxx.

◆ WriteFastArray() [1/15]

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

Write array of Bool_t to buffer.

Implements TBuffer.

Definition at line 3302 of file TBufferJSON.cxx.

◆ WriteFastArray() [2/15]

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

Write array of Char_t to buffer.

Normally written as JSON string, but if string includes \0 in the middle or some special characters, uses regular array. From array size 1000 it will be automatically converted into base64 coding

Implements TBuffer.

Definition at line 3314 of file TBufferJSON.cxx.

◆ WriteFastArray() [3/15]

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

Write array of Double_t to buffer.

Implements TBuffer.

Definition at line 3424 of file TBufferJSON.cxx.

◆ WriteFastArray() [4/15]

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

Write array of Float_t to buffer.

Implements TBuffer.

Definition at line 3416 of file TBufferJSON.cxx.

◆ WriteFastArray() [5/15]

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

Write array of Int_t to buffer.

Implements TBuffer.

Definition at line 3368 of file TBufferJSON.cxx.

◆ WriteFastArray() [6/15]

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

Write array of Long64_t to buffer.

Implements TBuffer.

Definition at line 3400 of file TBufferJSON.cxx.

◆ WriteFastArray() [7/15]

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

Write array of Long_t to buffer.

Implements TBuffer.

Definition at line 3384 of file TBufferJSON.cxx.

◆ WriteFastArray() [8/15]

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

Write array of Short_t to buffer.

Implements TBuffer.

Definition at line 3352 of file TBufferJSON.cxx.

◆ WriteFastArray() [9/15]

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

Write array of UChar_t to buffer.

Implements TBuffer.

Definition at line 3344 of file TBufferJSON.cxx.

◆ WriteFastArray() [10/15]

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

Write array of UInt_t to buffer.

Implements TBuffer.

Definition at line 3376 of file TBufferJSON.cxx.

◆ WriteFastArray() [11/15]

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

Write array of ULong64_t to buffer.

Implements TBuffer.

Definition at line 3408 of file TBufferJSON.cxx.

◆ WriteFastArray() [12/15]

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

Write array of ULong_t to buffer.

Implements TBuffer.

Definition at line 3392 of file TBufferJSON.cxx.

◆ WriteFastArray() [13/15]

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

Write array of UShort_t to buffer.

Implements TBuffer.

Definition at line 3360 of file TBufferJSON.cxx.

◆ WriteFastArray() [14/15]

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

Recall TBuffer function to avoid gcc warning message.

Implements TBuffer.

Definition at line 3485 of file TBufferJSON.cxx.

◆ WriteFastArray() [15/15]

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

Recall TBuffer function to avoid gcc warning message.

Implements TBuffer.

Definition at line 3432 of file TBufferJSON.cxx.

◆ WriteFastArrayString()

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

Write array of Char_t to buffer.

Implements TBuffer.

Definition at line 3336 of file TBufferJSON.cxx.

◆ WriteFloat()

void TBufferJSON::WriteFloat ( Float_t  f)
finalvirtual

Writes Float_t value to buffer.

Implements TBuffer.

Definition at line 3828 of file TBufferJSON.cxx.

◆ WriteInt()

void TBufferJSON::WriteInt ( Int_t  i)
finalvirtual

Writes Int_t value to buffer.

Implements TBuffer.

Definition at line 3774 of file TBufferJSON.cxx.

◆ WriteLong()

void TBufferJSON::WriteLong ( Long_t  l)
finalvirtual

Writes Long_t value to buffer.

Implements TBuffer.

Definition at line 3792 of file TBufferJSON.cxx.

◆ WriteLong64()

void TBufferJSON::WriteLong64 ( Long64_t  l)
finalvirtual

Writes Long64_t value to buffer.

Implements TBuffer.

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

◆ WriteShort()

void TBufferJSON::WriteShort ( Short_t  s)
finalvirtual

Writes Short_t value to buffer.

Implements TBuffer.

Definition at line 3756 of file TBufferJSON.cxx.

◆ WriteStdString() [1/3]

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

Writes a std::string.

Implements TBuffer.

Definition at line 3866 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 312 of file TBuffer.h.

◆ WriteTString()

void TBufferJSON::WriteTString ( const TString s)
finalvirtual

Writes a TString.

Implements TBuffer.

Definition at line 3856 of file TBufferJSON.cxx.

◆ WriteUChar()

void TBufferJSON::WriteUChar ( UChar_t  c)
finalvirtual

Writes UChar_t value to buffer.

Implements TBuffer.

Definition at line 3747 of file TBufferJSON.cxx.

◆ WriteUInt()

void TBufferJSON::WriteUInt ( UInt_t  i)
finalvirtual

Writes UInt_t value to buffer.

Implements TBuffer.

Definition at line 3783 of file TBufferJSON.cxx.

◆ WriteULong()

void TBufferJSON::WriteULong ( ULong_t  l)
finalvirtual

Writes ULong_t value to buffer.

Implements TBuffer.

Definition at line 3801 of file TBufferJSON.cxx.

◆ WriteULong64()

void TBufferJSON::WriteULong64 ( ULong64_t  l)
finalvirtual

Writes ULong64_t value to buffer.

Implements TBuffer.

Definition at line 3819 of file TBufferJSON.cxx.

◆ WriteUShort()

void TBufferJSON::WriteUShort ( UShort_t  s)
finalvirtual

Writes UShort_t value to buffer.

Implements TBuffer.

Definition at line 3765 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 2489 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:

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