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

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

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

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

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

TH1 *h1 = new TH1I("h1", "title", 100, 0, 10);
h1->FillRandom("gaus",10000);

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

TH1 *hnew = nullptr;
if (hnew) hnew->Draw("hist");

JSON data 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.

Definition at line 27 of file TBufferJSON.h.

Public Member Functions

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

Static Public Member Functions

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

Protected Member Functions

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

Static Protected Member Functions

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

Protected Attributes

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

Additional Inherited Members

- Public Types inherited from TBufferIO
enum  { kMapSize = 503 }
 
enum  EStatusBits {
  kNotDecompressed = BIT(15), kTextBasedStreaming = BIT(18), kUser1 = BIT(21), kUser2 = BIT(22),
  kUser3 = BIT(23)
}
 
- Public Types inherited from TBuffer
enum  { kInitialSize = 1024, kMinimalSize = 128 }
 
enum  EMode { kRead = 0, kWrite = 1 }
 
enum  EStatusBits { kIsOwner = BIT(16), kCannotHandleMemberWiseStreaming = BIT(17) }
 
- Public Types inherited from TObject
enum  {
  kIsOnHeap = 0x01000000, kNotDeleted = 0x02000000, kZombie = 0x04000000, kInconsistent = 0x08000000,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = BIT(0), kOverwrite = BIT(1), kWriteDelete = BIT(2) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = BIT(3) }
 
enum  EStatusBits {
  kCanDelete = BIT(0), kMustCleanup = BIT(3), kIsReferenced = BIT(4), kHasUUID = BIT(5),
  kCannotPick = BIT(6), kNoContextMenu = BIT(8), kInvalidObject = BIT(13)
}
 
- Protected Types inherited from TBufferIO
enum  { kNullTag = 0 }
 
- Protected Types inherited from TBuffer
typedef std::vector< TVirtualArray * > CacheList_t
 
- Static Protected Attributes inherited from TBufferText
static const char * fgDoubleFmt = "%.14e"
 ! printf argument for doubles, either "%f" or "%e" or "%10f" and so on More...
 
static const char * fgFloatFmt = "%e"
 ! printf argument for floats, either "%f" or "%e" or "%10f" and so on More...
 
- Static Protected Attributes inherited from TBufferIO
static Int_t fgMapSize = kMapSize
 Default map size for all TBuffer objects. More...
 

#include <TBufferJSON.h>

Inheritance diagram for TBufferJSON:
[legend]

Constructor & Destructor Documentation

◆ TBufferJSON()

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

Creates buffer object to serialize data into json.

Definition at line 368 of file TBufferJSON.cxx.

◆ ~TBufferJSON()

TBufferJSON::~TBufferJSON ( )
virtual

destroy buffer

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

◆ ClassBegin()

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

Should be called in the beginning of custom class streamer.

Informs buffer data about class which will be streamed now.

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

Implements TBuffer.

Definition at line 1840 of file TBufferJSON.cxx.

◆ ClassEnd()

void TBufferJSON::ClassEnd ( const TClass )
virtual

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

Implements TBuffer.

Definition at line 1849 of file TBufferJSON.cxx.

◆ ClassMember()

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

Method indicates name and typename of class member, which should be now streamed in custom streamer Following combinations are supported:

  1. name = "ClassName", typeName = 0 or typename==ClassName This is a case, when data of parent class "ClassName" should be streamed. For instance, if class directly inherited from TObject, custom streamer should include following code:
    b.ClassMember("TObject");
    TObject::Streamer(b);
  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 1891 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 717 of file TBufferJSON.cxx.

◆ ConvertFromJSONAny()

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

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

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

Definition at line 740 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 770 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, trailing zeros, required JSROOT v5
  • 2 - check values repetition and empty gaps, required JSROOT v5

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

Definition at line 414 of file TBufferJSON.cxx.

◆ ConvertToJSON() [2/3]

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

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

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

Second digit of compact parameter defines algorithm for arrays compression

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

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

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

◆ DecrementLevel()

void TBufferJSON::DecrementLevel ( TVirtualStreamerInfo info)
virtual

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

Implements TBuffer.

Definition at line 1707 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 557 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 637 of file TBufferJSON.cxx.

◆ FromJSON()

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

Definition at line 53 of file TBufferJSON.h.

◆ GetInfo()

TVirtualStreamerInfo * TBufferJSON::GetInfo ( )
virtual

Return current streamer info element.

Implements TBuffer.

Definition at line 1738 of file TBufferJSON.cxx.

◆ IncrementLevel()

void TBufferJSON::IncrementLevel ( TVirtualStreamerInfo info)
virtual

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

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

Implements TBuffer.

Definition at line 1655 of file TBufferJSON.cxx.

◆ JsonDisablePostprocessing()

void TBufferJSON::JsonDisablePostprocessing ( )
protected

disable post-processing of the code

Definition at line 1027 of file TBufferJSON.cxx.

◆ JsonPushValue()

void TBufferJSON::JsonPushValue ( )
protected

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

Definition at line 2183 of file TBufferJSON.cxx.

◆ JsonReadArray()

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

Read static array from JSON - not used.

Definition at line 2297 of file TBufferJSON.cxx.

◆ JsonReadBasic()

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

Template function to read basic value from JSON.

Definition at line 3150 of file TBufferJSON.cxx.

◆ JsonReadCollection()

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

read content of ROOT collection

Definition at line 1359 of file TBufferJSON.cxx.

◆ JsonReadFastArray()

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

Template method to read array from the JSON.

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

◆ JsonReadTObjectMembers()

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

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

◆ JsonStartElement()

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

Start new class member in JSON structures.

Definition at line 969 of file TBufferJSON.cxx.

◆ JsonWriteArrayCompress()

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

Definition at line 2674 of file TBufferJSON.cxx.

◆ JsonWriteBasic() [1/13]

void TBufferJSON::JsonWriteBasic ( Char_t  value)
protected

converts Char_t to string and add to json value buffer

Definition at line 3483 of file TBufferJSON.cxx.

◆ JsonWriteBasic() [2/13]

void TBufferJSON::JsonWriteBasic ( Short_t  value)
protected

converts Short_t to string and add to json value buffer

Definition at line 3493 of file TBufferJSON.cxx.

◆ JsonWriteBasic() [3/13]

void TBufferJSON::JsonWriteBasic ( Int_t  value)
protected

converts Int_t to string and add to json value buffer

Definition at line 3503 of file TBufferJSON.cxx.

◆ JsonWriteBasic() [4/13]

void TBufferJSON::JsonWriteBasic ( Long_t  value)
protected

converts Long_t to string and add to json value buffer

Definition at line 3513 of file TBufferJSON.cxx.

◆ JsonWriteBasic() [5/13]

void TBufferJSON::JsonWriteBasic ( Long64_t  value)
protected

converts Long64_t to string and add to json value buffer

Definition at line 3523 of file TBufferJSON.cxx.

◆ JsonWriteBasic() [6/13]

void TBufferJSON::JsonWriteBasic ( Float_t  value)
protected

converts Float_t to string and add to json value buffer

Definition at line 3531 of file TBufferJSON.cxx.

◆ JsonWriteBasic() [7/13]

void TBufferJSON::JsonWriteBasic ( Double_t  value)
protected

converts Double_t to string and add to json value buffer

Definition at line 3544 of file TBufferJSON.cxx.

◆ JsonWriteBasic() [8/13]

void TBufferJSON::JsonWriteBasic ( Bool_t  value)
protected

converts Bool_t to string and add to json value buffer

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

◆ JsonWriteBasic() [10/13]

void TBufferJSON::JsonWriteBasic ( UShort_t  value)
protected

converts UShort_t to string and add to json value buffer

Definition at line 3575 of file TBufferJSON.cxx.

◆ JsonWriteBasic() [11/13]

void TBufferJSON::JsonWriteBasic ( UInt_t  value)
protected

converts UInt_t to string and add to json value buffer

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

◆ JsonWriteBasic() [13/13]

void TBufferJSON::JsonWriteBasic ( ULong64_t  value)
protected

converts ULong64_t to string and add to json value buffer

Definition at line 3605 of file TBufferJSON.cxx.

◆ JsonWriteCollection()

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

store content of ROOT collection

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

◆ JsonWriteFastArray()

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

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

Definition at line 2877 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 800 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 1074 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 1987 of file TBufferJSON.cxx.

◆ PopStack()

TJSONStackObj * TBufferJSON::PopStack ( )
protected

remove one level from stack

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

◆ ReadArray() [1/13]

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

Read array of Bool_t from buffer.

Implements TBuffer.

Definition at line 2192 of file TBufferJSON.cxx.

◆ ReadArray() [2/13]

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

Read array of Char_t from buffer.

Implements TBuffer.

Definition at line 2200 of file TBufferJSON.cxx.

◆ ReadArray() [3/13]

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

Read array of UChar_t from buffer.

Implements TBuffer.

Definition at line 2208 of file TBufferJSON.cxx.

◆ ReadArray() [4/13]

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

Read array of Short_t from buffer.

Implements TBuffer.

Definition at line 2216 of file TBufferJSON.cxx.

◆ ReadArray() [5/13]

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

Read array of UShort_t from buffer.

Implements TBuffer.

Definition at line 2224 of file TBufferJSON.cxx.

◆ ReadArray() [6/13]

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

Read array of Int_t from buffer.

Implements TBuffer.

Definition at line 2232 of file TBufferJSON.cxx.

◆ ReadArray() [7/13]

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

Read array of UInt_t from buffer.

Implements TBuffer.

Definition at line 2240 of file TBufferJSON.cxx.

◆ ReadArray() [8/13]

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

Read array of Long_t from buffer.

Implements TBuffer.

Definition at line 2248 of file TBufferJSON.cxx.

◆ ReadArray() [9/13]

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

Read array of ULong_t from buffer.

Implements TBuffer.

Definition at line 2256 of file TBufferJSON.cxx.

◆ ReadArray() [10/13]

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

Read array of Long64_t from buffer.

Implements TBuffer.

Definition at line 2264 of file TBufferJSON.cxx.

◆ ReadArray() [11/13]

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

Read array of ULong64_t from buffer.

Implements TBuffer.

Definition at line 2272 of file TBufferJSON.cxx.

◆ ReadArray() [12/13]

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

Read array of Float_t from buffer.

Implements TBuffer.

Definition at line 2280 of file TBufferJSON.cxx.

◆ ReadArray() [13/13]

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

Read array of Double_t from buffer.

Implements TBuffer.

Definition at line 2288 of file TBufferJSON.cxx.

◆ ReadBaseClass()

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

Read data of base class.

Reimplemented from TBufferText.

Definition at line 3654 of file TBufferJSON.cxx.

◆ ReadBool()

void TBufferJSON::ReadBool ( Bool_t b)
virtual

Reads Bool_t value from buffer.

Implements TBuffer.

Definition at line 3158 of file TBufferJSON.cxx.

◆ ReadChar()

void TBufferJSON::ReadChar ( Char_t c)
virtual

Reads Char_t value from buffer.

Implements TBuffer.

Definition at line 3166 of file TBufferJSON.cxx.

◆ ReadCharP()

void TBufferJSON::ReadCharP ( Char_t c)
virtual

Reads array of characters from buffer.

Implements TBuffer.

Definition at line 3276 of file TBufferJSON.cxx.

◆ ReadCharStar()

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

Reads a char* string.

Implements TBuffer.

Definition at line 3302 of file TBufferJSON.cxx.

◆ ReadClass()

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

suppressed function of TBuffer

Implements TBuffer.

Definition at line 2108 of file TBufferJSON.cxx.

◆ ReadDouble()

void TBufferJSON::ReadDouble ( Double_t d)
virtual

Reads Double_t value from buffer.

Implements TBuffer.

Definition at line 3264 of file TBufferJSON.cxx.

◆ ReadFastArray() [1/15]

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

read array of Bool_t from buffer

Implements TBuffer.

Definition at line 2473 of file TBufferJSON.cxx.

◆ ReadFastArray() [2/15]

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

read array of Char_t from buffer

Implements TBuffer.

Definition at line 2481 of file TBufferJSON.cxx.

◆ ReadFastArray() [3/15]

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

read array of UChar_t from buffer

Implements TBuffer.

Definition at line 2497 of file TBufferJSON.cxx.

◆ ReadFastArray() [4/15]

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

read array of Short_t from buffer

Implements TBuffer.

Definition at line 2505 of file TBufferJSON.cxx.

◆ ReadFastArray() [5/15]

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

read array of UShort_t from buffer

Implements TBuffer.

Definition at line 2513 of file TBufferJSON.cxx.

◆ ReadFastArray() [6/15]

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

read array of Int_t from buffer

Implements TBuffer.

Definition at line 2521 of file TBufferJSON.cxx.

◆ ReadFastArray() [7/15]

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

read array of UInt_t from buffer

Implements TBuffer.

Definition at line 2529 of file TBufferJSON.cxx.

◆ ReadFastArray() [8/15]

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

read array of Long_t from buffer

Implements TBuffer.

Definition at line 2537 of file TBufferJSON.cxx.

◆ ReadFastArray() [9/15]

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

read array of ULong_t from buffer

Implements TBuffer.

Definition at line 2545 of file TBufferJSON.cxx.

◆ ReadFastArray() [10/15]

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

read array of Long64_t from buffer

Implements TBuffer.

Definition at line 2553 of file TBufferJSON.cxx.

◆ ReadFastArray() [11/15]

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

read array of ULong64_t from buffer

Implements TBuffer.

Definition at line 2561 of file TBufferJSON.cxx.

◆ ReadFastArray() [12/15]

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

read array of Float_t from buffer

Implements TBuffer.

Definition at line 2569 of file TBufferJSON.cxx.

◆ ReadFastArray() [13/15]

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

read array of Double_t from buffer

Implements TBuffer.

Definition at line 2577 of file TBufferJSON.cxx.

◆ ReadFastArray() [14/15]

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

Read an array of 'n' objects from the I/O buffer.

Stores the objects read starting at the address 'start'. The objects in the array are assume to be of class 'cl'. Copied code from TBufferFile

Implements TBuffer.

Definition at line 2588 of file TBufferJSON.cxx.

◆ ReadFastArray() [15/15]

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

redefined here to avoid warning message from gcc

Implements TBuffer.

Definition at line 2628 of file TBufferJSON.cxx.

◆ ReadFastArrayString()

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

read array of Char_t from buffer

Implements TBuffer.

Definition at line 2489 of file TBufferJSON.cxx.

◆ ReadFloat()

void TBufferJSON::ReadFloat ( Float_t f)
virtual

Reads Float_t value from buffer.

Implements TBuffer.

Definition at line 3252 of file TBufferJSON.cxx.

◆ ReadInt()

void TBufferJSON::ReadInt ( Int_t i)
virtual

Reads Int_t value from buffer.

Implements TBuffer.

Definition at line 3201 of file TBufferJSON.cxx.

◆ ReadLong()

void TBufferJSON::ReadLong ( Long_t l)
virtual

Reads Long_t value from buffer.

Implements TBuffer.

Definition at line 3220 of file TBufferJSON.cxx.

◆ ReadLong64()

void TBufferJSON::ReadLong64 ( Long64_t l)
virtual

Reads Long64_t value from buffer.

Implements TBuffer.

Definition at line 3236 of file TBufferJSON.cxx.

◆ ReadObjectAny()

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

Read object from buffer. Only used from TBuffer.

Implements TBuffer.

Definition at line 2154 of file TBufferJSON.cxx.

◆ ReadShort()

void TBufferJSON::ReadShort ( Short_t s)
virtual

Reads Short_t value from buffer.

Implements TBuffer.

Definition at line 3185 of file TBufferJSON.cxx.

◆ ReadStaticArray() [1/13]

Int_t TBufferJSON::ReadStaticArray ( Bool_t b)
virtual

Read array of Bool_t from buffer.

Implements TBuffer.

Definition at line 2306 of file TBufferJSON.cxx.

◆ ReadStaticArray() [2/13]

Int_t TBufferJSON::ReadStaticArray ( Char_t c)
virtual

Read array of Char_t from buffer.

Implements TBuffer.

Definition at line 2314 of file TBufferJSON.cxx.

◆ ReadStaticArray() [3/13]

Int_t TBufferJSON::ReadStaticArray ( UChar_t c)
virtual

Read array of UChar_t from buffer.

Implements TBuffer.

Definition at line 2322 of file TBufferJSON.cxx.

◆ ReadStaticArray() [4/13]

Int_t TBufferJSON::ReadStaticArray ( Short_t h)
virtual

Read array of Short_t from buffer.

Implements TBuffer.

Definition at line 2330 of file TBufferJSON.cxx.

◆ ReadStaticArray() [5/13]

Int_t TBufferJSON::ReadStaticArray ( UShort_t h)
virtual

Read array of UShort_t from buffer.

Implements TBuffer.

Definition at line 2338 of file TBufferJSON.cxx.

◆ ReadStaticArray() [6/13]

Int_t TBufferJSON::ReadStaticArray ( Int_t i)
virtual

Read array of Int_t from buffer.

Implements TBuffer.

Definition at line 2346 of file TBufferJSON.cxx.

◆ ReadStaticArray() [7/13]

Int_t TBufferJSON::ReadStaticArray ( UInt_t i)
virtual

Read array of UInt_t from buffer.

Implements TBuffer.

Definition at line 2354 of file TBufferJSON.cxx.

◆ ReadStaticArray() [8/13]

Int_t TBufferJSON::ReadStaticArray ( Long_t l)
virtual

Read array of Long_t from buffer.

Implements TBuffer.

Definition at line 2362 of file TBufferJSON.cxx.

◆ ReadStaticArray() [9/13]

Int_t TBufferJSON::ReadStaticArray ( ULong_t l)
virtual

Read array of ULong_t from buffer.

Implements TBuffer.

Definition at line 2370 of file TBufferJSON.cxx.

◆ ReadStaticArray() [10/13]

Int_t TBufferJSON::ReadStaticArray ( Long64_t l)
virtual

Read array of Long64_t from buffer.

Implements TBuffer.

Definition at line 2378 of file TBufferJSON.cxx.

◆ ReadStaticArray() [11/13]

Int_t TBufferJSON::ReadStaticArray ( ULong64_t l)
virtual

Read array of ULong64_t from buffer.

Implements TBuffer.

Definition at line 2386 of file TBufferJSON.cxx.

◆ ReadStaticArray() [12/13]

Int_t TBufferJSON::ReadStaticArray ( Float_t f)
virtual

Read array of Float_t from buffer.

Implements TBuffer.

Definition at line 2394 of file TBufferJSON.cxx.

◆ ReadStaticArray() [13/13]

Int_t TBufferJSON::ReadStaticArray ( Double_t d)
virtual

Read array of Double_t from buffer.

Implements TBuffer.

Definition at line 2402 of file TBufferJSON.cxx.

◆ ReadStdString()

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

Reads a std::string.

Implements TBuffer.

Definition at line 3294 of file TBufferJSON.cxx.

◆ ReadTString()

void TBufferJSON::ReadTString ( TString s)
virtual

Reads a TString.

Implements TBuffer.

Definition at line 3284 of file TBufferJSON.cxx.

◆ ReadUChar()

void TBufferJSON::ReadUChar ( UChar_t c)
virtual

Reads UChar_t value from buffer.

Implements TBuffer.

Definition at line 3177 of file TBufferJSON.cxx.

◆ ReadUInt()

void TBufferJSON::ReadUInt ( UInt_t i)
virtual

Reads UInt_t value from buffer.

Implements TBuffer.

Definition at line 3212 of file TBufferJSON.cxx.

◆ ReadULong()

void TBufferJSON::ReadULong ( ULong_t l)
virtual

Reads ULong_t value from buffer.

Implements TBuffer.

Definition at line 3228 of file TBufferJSON.cxx.

◆ ReadULong64()

void TBufferJSON::ReadULong64 ( ULong64_t l)
virtual

Reads ULong64_t value from buffer.

Implements TBuffer.

Definition at line 3244 of file TBufferJSON.cxx.

◆ ReadUShort()

void TBufferJSON::ReadUShort ( UShort_t s)
virtual

Reads UShort_t value from buffer.

Implements TBuffer.

Definition at line 3193 of file TBufferJSON.cxx.

◆ ReadVersion()

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

read version value from buffer

Implements TBuffer.

Definition at line 2123 of file TBufferJSON.cxx.

◆ SetCompact()

void TBufferJSON::SetCompact ( int  level)

Definition at line 443 of file TBufferJSON.cxx.

◆ SetStreamerElementNumber()

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

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

Implements TBuffer.

Definition at line 1748 of file TBufferJSON.cxx.

◆ SkipObjectAny()

void TBufferJSON::SkipObjectAny ( )
virtual

Skip any kind of object from buffer.

Implements TBuffer.

Definition at line 2165 of file TBufferJSON.cxx.

◆ Stack()

TJSONStackObj* TBufferJSON::Stack ( )
inlineprotected

Definition at line 222 of file TBufferJSON.h.

◆ StreamObject()

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

stream object to/from buffer

Implements TBuffer.

Definition at line 3135 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 47 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 1666 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 1761 of file TBufferJSON.cxx.

◆ WriteArray() [1/13]

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

Write array of Bool_t to buffer.

Implements TBuffer.

Definition at line 2757 of file TBufferJSON.cxx.

◆ WriteArray() [2/13]

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

Write array of Char_t to buffer.

Implements TBuffer.

Definition at line 2766 of file TBufferJSON.cxx.

◆ WriteArray() [3/13]

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

Write array of UChar_t to buffer.

Implements TBuffer.

Definition at line 2775 of file TBufferJSON.cxx.

◆ WriteArray() [4/13]

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

Write array of Short_t to buffer.

Implements TBuffer.

Definition at line 2784 of file TBufferJSON.cxx.

◆ WriteArray() [5/13]

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

Write array of UShort_t to buffer.

Implements TBuffer.

Definition at line 2793 of file TBufferJSON.cxx.

◆ WriteArray() [6/13]

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

Write array of Int_ to buffer.

Implements TBuffer.

Definition at line 2802 of file TBufferJSON.cxx.

◆ WriteArray() [7/13]

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

Write array of UInt_t to buffer.

Implements TBuffer.

Definition at line 2811 of file TBufferJSON.cxx.

◆ WriteArray() [8/13]

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

Write array of Long_t to buffer.

Implements TBuffer.

Definition at line 2820 of file TBufferJSON.cxx.

◆ WriteArray() [9/13]

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

Write array of ULong_t to buffer.

Implements TBuffer.

Definition at line 2829 of file TBufferJSON.cxx.

◆ WriteArray() [10/13]

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

Write array of Long64_t to buffer.

Implements TBuffer.

Definition at line 2838 of file TBufferJSON.cxx.

◆ WriteArray() [11/13]

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

Write array of ULong64_t to buffer.

Implements TBuffer.

Definition at line 2847 of file TBufferJSON.cxx.

◆ WriteArray() [12/13]

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

Write array of Float_t to buffer.

Implements TBuffer.

Definition at line 2856 of file TBufferJSON.cxx.

◆ WriteArray() [13/13]

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

Write array of Double_t to buffer.

Implements TBuffer.

Definition at line 2865 of file TBufferJSON.cxx.

◆ WriteBool()

void TBufferJSON::WriteBool ( Bool_t  b)
virtual

Writes Bool_t value to buffer.

Implements TBuffer.

Definition at line 3323 of file TBufferJSON.cxx.

◆ WriteChar()

void TBufferJSON::WriteChar ( Char_t  c)
virtual

Writes Char_t value to buffer.

Implements TBuffer.

Definition at line 3332 of file TBufferJSON.cxx.

◆ WriteCharP()

void TBufferJSON::WriteCharP ( const Char_t c)
virtual

Writes array of characters to buffer.

Implements TBuffer.

Definition at line 3440 of file TBufferJSON.cxx.

◆ WriteCharStar()

void TBufferJSON::WriteCharStar ( char *  s)
virtual

Writes a char*.

Implements TBuffer.

Definition at line 3473 of file TBufferJSON.cxx.

◆ WriteClass()

void TBufferJSON::WriteClass ( const TClass cl)
virtual

suppressed function of TBuffer

Implements TBuffer.

Definition at line 2116 of file TBufferJSON.cxx.

◆ WriteDouble()

void TBufferJSON::WriteDouble ( Double_t  d)
virtual

Writes Double_t value to buffer.

Implements TBuffer.

Definition at line 3431 of file TBufferJSON.cxx.

◆ WriteFastArray() [1/15]

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

Write array of Bool_t to buffer.

Implements TBuffer.

Definition at line 2914 of file TBufferJSON.cxx.

◆ WriteFastArray() [2/15]

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

Write array of Char_t to buffer.

Implements TBuffer.

Definition at line 2922 of file TBufferJSON.cxx.

◆ WriteFastArray() [3/15]

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

Write array of UChar_t to buffer.

Implements TBuffer.

Definition at line 2938 of file TBufferJSON.cxx.

◆ WriteFastArray() [4/15]

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

Write array of Short_t to buffer.

Implements TBuffer.

Definition at line 2946 of file TBufferJSON.cxx.

◆ WriteFastArray() [5/15]

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

Write array of UShort_t to buffer.

Implements TBuffer.

Definition at line 2954 of file TBufferJSON.cxx.

◆ WriteFastArray() [6/15]

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

Write array of Int_t to buffer.

Implements TBuffer.

Definition at line 2962 of file TBufferJSON.cxx.

◆ WriteFastArray() [7/15]

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

Write array of UInt_t to buffer.

Implements TBuffer.

Definition at line 2970 of file TBufferJSON.cxx.

◆ WriteFastArray() [8/15]

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

Write array of Long_t to buffer.

Implements TBuffer.

Definition at line 2978 of file TBufferJSON.cxx.

◆ WriteFastArray() [9/15]

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

Write array of ULong_t to buffer.

Implements TBuffer.

Definition at line 2986 of file TBufferJSON.cxx.

◆ WriteFastArray() [10/15]

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

Write array of Long64_t to buffer.

Implements TBuffer.

Definition at line 2994 of file TBufferJSON.cxx.

◆ WriteFastArray() [11/15]

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

Write array of ULong64_t to buffer.

Implements TBuffer.

Definition at line 3002 of file TBufferJSON.cxx.

◆ WriteFastArray() [12/15]

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

Write array of Float_t to buffer.

Implements TBuffer.

Definition at line 3010 of file TBufferJSON.cxx.

◆ WriteFastArray() [13/15]

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

Write array of Double_t to buffer.

Implements TBuffer.

Definition at line 3018 of file TBufferJSON.cxx.

◆ WriteFastArray() [14/15]

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

Recall TBuffer function to avoid gcc warning message.

Implements TBuffer.

Definition at line 3026 of file TBufferJSON.cxx.

◆ WriteFastArray() [15/15]

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

Recall TBuffer function to avoid gcc warning message.

Implements TBuffer.

Definition at line 3079 of file TBufferJSON.cxx.

◆ WriteFastArrayString()

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

Write array of Char_t to buffer.

Implements TBuffer.

Definition at line 2930 of file TBufferJSON.cxx.

◆ WriteFloat()

void TBufferJSON::WriteFloat ( Float_t  f)
virtual

Writes Float_t value to buffer.

Implements TBuffer.

Definition at line 3422 of file TBufferJSON.cxx.

◆ WriteInt()

void TBufferJSON::WriteInt ( Int_t  i)
virtual

Writes Int_t value to buffer.

Implements TBuffer.

Definition at line 3368 of file TBufferJSON.cxx.

◆ WriteLong()

void TBufferJSON::WriteLong ( Long_t  l)
virtual

Writes Long_t value to buffer.

Implements TBuffer.

Definition at line 3386 of file TBufferJSON.cxx.

◆ WriteLong64()

void TBufferJSON::WriteLong64 ( Long64_t  l)
virtual

Writes Long64_t value to buffer.

Implements TBuffer.

Definition at line 3404 of file TBufferJSON.cxx.

◆ WriteObjectClass()

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

Write object to buffer. Only used from TBuffer.

Implements TBufferIO.

Definition at line 2172 of file TBufferJSON.cxx.

◆ WriteShort()

void TBufferJSON::WriteShort ( Short_t  s)
virtual

Writes Short_t value to buffer.

Implements TBuffer.

Definition at line 3350 of file TBufferJSON.cxx.

◆ WriteStdString()

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

Writes a std::string.

Implements TBuffer.

Definition at line 3460 of file TBufferJSON.cxx.

◆ WriteTString()

void TBufferJSON::WriteTString ( const TString s)
virtual

Writes a TString.

Implements TBuffer.

Definition at line 3450 of file TBufferJSON.cxx.

◆ WriteUChar()

void TBufferJSON::WriteUChar ( UChar_t  c)
virtual

Writes UChar_t value to buffer.

Implements TBuffer.

Definition at line 3341 of file TBufferJSON.cxx.

◆ WriteUInt()

void TBufferJSON::WriteUInt ( UInt_t  i)
virtual

Writes UInt_t value to buffer.

Implements TBuffer.

Definition at line 3377 of file TBufferJSON.cxx.

◆ WriteULong()

void TBufferJSON::WriteULong ( ULong_t  l)
virtual

Writes ULong_t value to buffer.

Implements TBuffer.

Definition at line 3395 of file TBufferJSON.cxx.

◆ WriteULong64()

void TBufferJSON::WriteULong64 ( ULong64_t  l)
virtual

Writes ULong64_t value to buffer.

Implements TBuffer.

Definition at line 3413 of file TBufferJSON.cxx.

◆ WriteUShort()

void TBufferJSON::WriteUShort ( UShort_t  s)
virtual

Writes UShort_t value to buffer.

Implements TBuffer.

Definition at line 3359 of file TBufferJSON.cxx.

◆ WriteVersion()

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

Ignored in TBufferJSON.

Implements TBuffer.

Definition at line 2146 of file TBufferJSON.cxx.

Member Data Documentation

◆ fArraySepar

TString TBufferJSON::fArraySepar
protected

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

Definition at line 287 of file TBufferJSON.h.

◆ fCompact

Int_t TBufferJSON::fCompact
protected

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

Definition at line 285 of file TBufferJSON.h.

◆ fJsonrCnt

unsigned TBufferJSON::fJsonrCnt
protected

! counter for all objects, used for referencing

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

◆ fOutBuffer

TString TBufferJSON::fOutBuffer
protected

! main output buffer for json code

Definition at line 280 of file TBufferJSON.h.

◆ fOutput

TString* TBufferJSON::fOutput
protected

! current output buffer for json code

Definition at line 281 of file TBufferJSON.h.

◆ fSemicolon

TString TBufferJSON::fSemicolon
protected

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

Definition at line 286 of file TBufferJSON.h.

◆ fStack

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

! hierarchy of currently streamed element

Definition at line 284 of file TBufferJSON.h.

◆ fValue

TString TBufferJSON::fValue
protected

! buffer for current value

Definition at line 282 of file TBufferJSON.h.

Libraries for TBufferJSON:
[legend]

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