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:
To reconstruct object from the JSON string, one should do:
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:
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:
Will generate json string:
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:
Will produce JSON output:
Another possibility to enforce such conversion - add "JSON_object" into comment line of correspondent data member like:
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 } |
![]() | |
enum | { kMapSize = 503 } |
enum | EStatusBits { kNotDecompressed = BIT(15) , kTextBasedStreaming = BIT(18) , kUser1 = BIT(21) , kUser2 = BIT(22) , kUser3 = BIT(23) } |
![]() | |
enum | { kInitialSize = 1024 , kMinimalSize = 128 } |
enum | EMode { kRead = 0 , kWrite = 1 } |
enum | EStatusBits { kIsOwner = BIT(16) , kCannotHandleMemberWiseStreaming = BIT(17) } |
![]() | |
enum | { kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 , kBitMask = 0x00ffffff } |
enum | { kSingleKey = BIT(0) , kOverwrite = BIT(1) , kWriteDelete = BIT(2) } |
enum | EDeprecatedStatusBits { kObjInCanvas = BIT(3) } |
enum | EStatusBits { kCanDelete = BIT(0) , kMustCleanup = BIT(3) , kIsReferenced = BIT(4) , kHasUUID = BIT(5) , kCannotPick = BIT(6) , kNoContextMenu = BIT(8) , kInvalidObject = BIT(13) } |
Public Member Functions | |
TBufferJSON (TBuffer::EMode mode=TBuffer::kWrite) | |
Creates buffer object to serialize data into json. | |
virtual | ~TBufferJSON () |
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. | |
TVirtualStreamerInfo * | GetInfo () 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. | |
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. | |
TClass * | ReadClass (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 | 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, Int_t n) final |
Write array of Bool_t to buffer. | |
void | WriteFastArray (const Char_t *c, Int_t n) final |
Write array of Char_t to buffer. | |
void | WriteFastArray (const Double_t *d, Int_t n) final |
Write array of Double_t to buffer. | |
void | WriteFastArray (const Float_t *f, Int_t n) final |
Write array of Float_t to buffer. | |
void | WriteFastArray (const Int_t *i, Int_t n) final |
Write array of Int_t to buffer. | |
void | WriteFastArray (const Long64_t *l, Int_t n) final |
Write array of Long64_t to buffer. | |
void | WriteFastArray (const Long_t *l, Int_t n) final |
Write array of Long_t to buffer. | |
void | WriteFastArray (const Short_t *h, Int_t n) final |
Write array of Short_t to buffer. | |
void | WriteFastArray (const UChar_t *c, Int_t n) final |
Write array of UChar_t to buffer. | |
void | WriteFastArray (const UInt_t *i, Int_t n) final |
Write array of UInt_t to buffer. | |
void | WriteFastArray (const ULong64_t *l, Int_t n) final |
Write array of ULong64_t to buffer. | |
void | WriteFastArray (const ULong_t *l, Int_t n) final |
Write array of ULong_t to buffer. | |
void | WriteFastArray (const UShort_t *h, Int_t n) final |
Write array of UShort_t to buffer. | |
Int_t | WriteFastArray (void **startp, const TClass *cl, Int_t n=1, Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=nullptr) final |
Recall TBuffer function to avoid gcc warning message. | |
void | WriteFastArray (void *start, const TClass *cl, Int_t n=1, TMemberStreamer *s=nullptr) final |
Recall TBuffer function to avoid gcc warning message. | |
void | WriteFastArrayString (const Char_t *c, Int_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. | |
![]() | |
virtual | ~TBufferText () |
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 |
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 | |
TObject * | ReadObject (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 | StreamObject (TObject *obj) override |
virtual void | StreamObject (TObject *obj)=0 |
virtual void | StreamObject (void *obj, const char *className, const TClass *onFileClass=0)=0 |
void | StreamObject (void *obj, const char *className, const TClass *onFileClass=nullptr) override |
stream object to/from buffer | |
virtual void | StreamObject (void *obj, const std::type_info &typeinfo, const TClass *onFileClass=0)=0 |
void | StreamObject (void *obj, const std::type_info &typeinfo, const TClass *onFileClass=nullptr) override |
stream object to/from buffer | |
virtual void | StreamObject (void *obj, const TClass *cl, const TClass *onFileClass=0)=0 |
void | WriteArrayDouble32 (const Double_t *d, Int_t n, TStreamerElement *ele=nullptr) final |
Write array of Double32_t to buffer. | |
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, Int_t n, TStreamerElement *ele=nullptr) final |
Write array of Double32_t to buffer. | |
void | WriteFastArrayFloat16 (const Float_t *d, Int_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 |
![]() | |
virtual | ~TBufferIO () |
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 |
TProcessID * | GetLastProcessID (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. | |
TProcessID * | ReadProcessID (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 | 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. | |
![]() | |
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=0) | |
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 |
TObject * | GetParent () 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 TVirtualArray * | PeekDataCache () const |
Return the 'current' data cache area from the list of area to be used for temporarily store 'missing' data members. | |
virtual TVirtualArray * | PopDataCache () |
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=0) |
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=0) |
Set which memory reallocation method to use. | |
void | SetWriteMode () |
Set buffer in write mode. | |
template<class T > | |
Int_t | WriteObject (const T *objptr, Bool_t cacheReuse=kTRUE) |
![]() | |
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 TObject * | Clone (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 TObject * | DrawClone (Option_t *option="") const |
Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad) . | |
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=0) |
Execute method on this object with the given parameter string, e.g. | |
virtual void | Execute (TMethod *method, TObjArray *params, Int_t *error=0) |
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 TObject * | FindObject (const char *name) const |
Must be redefined in derived classes. | |
virtual TObject * | FindObject (const TObject *obj) const |
Must be redefined in derived classes. | |
virtual Option_t * | GetDrawOption () 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_t * | GetOption () 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. | |
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) |
Operator delete []. | |
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) |
TObject & | operator= (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. | |
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 TObject * | ConvertFromJSON (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 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 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 * | 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 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 TClass * | GetClass (const char *className) |
Forward to TROOT::GetClass(). | |
static TClass * | GetClass (const std::type_info &typeinfo) |
Forward to TROOT::GetClass(). | |
![]() | |
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 > | |
R__ALWAYS_INLINE Int_t | JsonReadArray (T *value) |
Read static array from JSON - not used. | |
template<typename T > | |
R__ALWAYS_INLINE 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 > | |
R__ALWAYS_INLINE 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. | |
TJSONStackObj * | JsonStartObjectWrite (const TClass *obj_class, TStreamerInfo *info=nullptr) |
Start object element with typeinfo. | |
template<typename T > | |
R__ALWAYS_INLINE void | JsonWriteArrayCompress (const T *vname, Int_t arrsize, const char *typname) |
void | JsonWriteBasic (Bool_t value) |
converts Bool_t to string and add to json value buffer | |
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 > | |
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() | |
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. | |
TJSONStackObj * | PopStack () |
remove one level from stack | |
TJSONStackObj * | PushStack (Int_t inclevel=0, void *readnode=nullptr) |
add new level to the structures stack | |
TJSONStackObj * | Stack () |
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. | |
![]() | |
TBufferText () | |
Default constructor. | |
TBufferText (TBuffer::EMode mode, TObject *parent=nullptr) | |
Normal constructor. | |
ClassDefOverride (TBufferText, 0) | |
![]() | |
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. | |
![]() | |
TBuffer () | |
TBuffer (const TBuffer &)=delete | |
void | operator= (const TBuffer &)=delete |
Int_t | Read (const char *name) |
Read contents of object with specified name from the current directory. | |
Int_t | Write (const char *name, Int_t opt, Int_t bufs) |
Write this object to the current directory. | |
Int_t | Write (const char *name, Int_t opt, Int_t bufs) const |
Write this object to the current directory. | |
![]() | |
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 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 | |
TString * | fOutput {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 | |
![]() | |
TExMap * | fClassMap {nullptr} |
Map containing object,class pairs for reading. | |
Int_t | fDisplacement {0} |
Value to be added to the map offsets. | |
TExMap * | fMap {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. | |
![]() | |
char * | fBufCur |
char * | fBuffer |
char * | fBufMax |
Int_t | fBufSize |
CacheList_t | fCacheStack |
Realloc function to be used when extending the buffer. | |
Bool_t | fMode |
TObject * | fParent |
ReAllocCharFun_t | fReAllocFunc |
Int_t | fVersion |
Additional Inherited Members | |
![]() | |
enum | { kNullTag = 0 } |
![]() | |
typedef std::vector< TVirtualArray * > | CacheList_t |
![]() | |
enum | { kOnlyPrepStep = BIT(3) } |
![]() | |
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 Int_t | fgMapSize = kMapSize |
Default map size for all TBuffer objects. | |
#include <TBufferJSON.h>
anonymous enum |
Definition at line 34 of file TBufferJSON.h.
TBufferJSON::TBufferJSON | ( | TBuffer::EMode | mode = TBuffer::kWrite | ) |
Creates buffer object to serialize data into json.
Definition at line 476 of file TBufferJSON.cxx.
|
virtual |
destroy buffer
Definition at line 497 of file TBufferJSON.cxx.
|
protected |
Append two string to the output JSON, normally separate by line break.
Definition at line 1156 of file TBufferJSON.cxx.
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.
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.
|
finalvirtual |
Method indicates name and typename of class member, which should be now streamed in custom streamer Following combinations are supported:
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.
|
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.
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.
|
staticprotected |
Read objects from JSON, one can reuse existing object.
Definition at line 977 of file TBufferJSON.cxx.
|
static |
Converts object, inherited from TObject class, to JSON string Lower digit of compact parameter define formatting rules.
Second digit of compact parameter defines algorithm for arrays compression
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.
|
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.
|
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.
|
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.
|
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.
|
static |
Convert object into JSON and store in text file Returns size of the produce file.
Definition at line 831 of file TBufferJSON.cxx.
|
inlinestatic |
Definition at line 90 of file TBufferJSON.h.
|
inlinestatic |
Definition at line 81 of file TBufferJSON.h.
|
finalvirtual |
Return current streamer info element.
Implements TBuffer.
Definition at line 2082 of file TBufferJSON.cxx.
|
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.
Returns true if class info will be skipped from JSON.
Definition at line 614 of file TBufferJSON.cxx.
|
protected |
disable post-processing of the code
Definition at line 1276 of file TBufferJSON.cxx.
|
protected |
If value exists, push in the current stack for post-processing.
Definition at line 2524 of file TBufferJSON.cxx.
|
protected |
Read static array from JSON - not used.
Definition at line 2638 of file TBufferJSON.cxx.
|
protected |
Template function to read basic value from JSON.
Definition at line 3548 of file TBufferJSON.cxx.
|
protected |
read content of ROOT collection
Definition at line 1674 of file TBufferJSON.cxx.
|
protected |
Template method to read array from the JSON.
Definition at line 2752 of file TBufferJSON.cxx.
|
protected |
Read object from current JSON node.
Definition at line 1772 of file TBufferJSON.cxx.
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.
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.
|
protected |
Start new class member in JSON structures.
Definition at line 1212 of file TBufferJSON.cxx.
|
protected |
Start object element with typeinfo.
Definition at line 1178 of file TBufferJSON.cxx.
|
protected |
Definition at line 3034 of file TBufferJSON.cxx.
converts Bool_t to string and add to json value buffer
Definition at line 3961 of file TBufferJSON.cxx.
converts Char_t to string and add to json value buffer
Definition at line 3881 of file TBufferJSON.cxx.
converts Double_t to string and add to json value buffer
Definition at line 3945 of file TBufferJSON.cxx.
converts Float_t to string and add to json value buffer
Definition at line 3929 of file TBufferJSON.cxx.
converts Int_t to string and add to json value buffer
Definition at line 3901 of file TBufferJSON.cxx.
converts Long64_t to string and add to json value buffer
Definition at line 3921 of file TBufferJSON.cxx.
converts Long_t to string and add to json value buffer
Definition at line 3911 of file TBufferJSON.cxx.
converts Short_t to string and add to json value buffer
Definition at line 3891 of file TBufferJSON.cxx.
converts UChar_t to string and add to json value buffer
Definition at line 3969 of file TBufferJSON.cxx.
converts UInt_t to string and add to json value buffer
Definition at line 3989 of file TBufferJSON.cxx.
converts ULong64_t to string and add to json value buffer
Definition at line 4009 of file TBufferJSON.cxx.
converts ULong_t to string and add to json value buffer
Definition at line 3999 of file TBufferJSON.cxx.
converts UShort_t to string and add to json value buffer
Definition at line 3979 of file TBufferJSON.cxx.
|
protected |
store content of ROOT collection
Definition at line 1600 of file TBufferJSON.cxx.
|
protected |
writes string value, processing all kind of special characters
Definition at line 4017 of file TBufferJSON.cxx.
|
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 3257 of file TBufferJSON.cxx.
|
protected |
Convert single data member to JSON structures Returns string with converted member.
Definition at line 1007 of file TBufferJSON.cxx.
|
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.
|
protected |
Function is converts TObject and TString structures to more compact representation.
Definition at line 2331 of file TBufferJSON.cxx.
|
protected |
remove one level from stack
Definition at line 1145 of file TBufferJSON.cxx.
|
protected |
add new level to the structures stack
Definition at line 1127 of file TBufferJSON.cxx.
Read array of Bool_t from buffer.
Implements TBuffer.
Definition at line 2533 of file TBufferJSON.cxx.
Read array of Char_t from buffer.
Implements TBuffer.
Definition at line 2541 of file TBufferJSON.cxx.
Read array of Double_t from buffer.
Implements TBuffer.
Definition at line 2629 of file TBufferJSON.cxx.
Read array of Float_t from buffer.
Implements TBuffer.
Definition at line 2621 of file TBufferJSON.cxx.
Read array of Int_t from buffer.
Implements TBuffer.
Definition at line 2573 of file TBufferJSON.cxx.
Read array of Long64_t from buffer.
Implements TBuffer.
Definition at line 2605 of file TBufferJSON.cxx.
Read array of Long_t from buffer.
Implements TBuffer.
Definition at line 2589 of file TBufferJSON.cxx.
Read array of Short_t from buffer.
Implements TBuffer.
Definition at line 2557 of file TBufferJSON.cxx.
Read array of UChar_t from buffer.
Implements TBuffer.
Definition at line 2549 of file TBufferJSON.cxx.
Read array of UInt_t from buffer.
Implements TBuffer.
Definition at line 2581 of file TBufferJSON.cxx.
Read array of ULong64_t from buffer.
Implements TBuffer.
Definition at line 2613 of file TBufferJSON.cxx.
Read array of ULong_t from buffer.
Implements TBuffer.
Definition at line 2597 of file TBufferJSON.cxx.
Read array of UShort_t from buffer.
Implements TBuffer.
Definition at line 2565 of file TBufferJSON.cxx.
|
finalvirtual |
Read data of base class.
Reimplemented from TBufferText.
Definition at line 4073 of file TBufferJSON.cxx.
Reads Bool_t value from buffer.
Implements TBuffer.
Definition at line 3556 of file TBufferJSON.cxx.
Reads Char_t value from buffer.
Implements TBuffer.
Definition at line 3564 of file TBufferJSON.cxx.
Reads array of characters from buffer.
Implements TBuffer.
Definition at line 3674 of file TBufferJSON.cxx.
|
finalvirtual |
Reads Double_t value from buffer.
Implements TBuffer.
Definition at line 3662 of file TBufferJSON.cxx.
read array of Bool_t from buffer
Implements TBuffer.
Definition at line 2833 of file TBufferJSON.cxx.
read array of Char_t from buffer
Implements TBuffer.
Definition at line 2841 of file TBufferJSON.cxx.
read array of Double_t from buffer
Implements TBuffer.
Definition at line 2937 of file TBufferJSON.cxx.
read array of Float_t from buffer
Implements TBuffer.
Definition at line 2929 of file TBufferJSON.cxx.
read array of Int_t from buffer
Implements TBuffer.
Definition at line 2881 of file TBufferJSON.cxx.
read array of Long64_t from buffer
Implements TBuffer.
Definition at line 2913 of file TBufferJSON.cxx.
read array of Long_t from buffer
Implements TBuffer.
Definition at line 2897 of file TBufferJSON.cxx.
read array of Short_t from buffer
Implements TBuffer.
Definition at line 2865 of file TBufferJSON.cxx.
read array of UChar_t from buffer
Implements TBuffer.
Definition at line 2857 of file TBufferJSON.cxx.
read array of UInt_t from buffer
Implements TBuffer.
Definition at line 2889 of file TBufferJSON.cxx.
read array of ULong64_t from buffer
Implements TBuffer.
Definition at line 2921 of file TBufferJSON.cxx.
read array of ULong_t from buffer
Implements TBuffer.
Definition at line 2905 of file TBufferJSON.cxx.
read array of UShort_t from buffer
Implements TBuffer.
Definition at line 2873 of file TBufferJSON.cxx.
|
finalvirtual |
redefined here to avoid warning message from gcc
Implements TBuffer.
Definition at line 2988 of file TBufferJSON.cxx.
|
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.
read array of Char_t from buffer
Implements TBuffer.
Definition at line 2849 of file TBufferJSON.cxx.
Reads Float_t value from buffer.
Implements TBuffer.
Definition at line 3650 of file TBufferJSON.cxx.
Reads Long_t value from buffer.
Implements TBuffer.
Definition at line 3618 of file TBufferJSON.cxx.
Reads Long64_t value from buffer.
Implements TBuffer.
Definition at line 3634 of file TBufferJSON.cxx.
Read object from buffer. Only used from TBuffer.
Implements TBuffer.
Definition at line 2497 of file TBufferJSON.cxx.
Reads Short_t value from buffer.
Implements TBuffer.
Definition at line 3583 of file TBufferJSON.cxx.
Read array of Bool_t from buffer.
Implements TBuffer.
Definition at line 2647 of file TBufferJSON.cxx.
Read array of Char_t from buffer.
Implements TBuffer.
Definition at line 2655 of file TBufferJSON.cxx.
Read array of Double_t from buffer.
Implements TBuffer.
Definition at line 2743 of file TBufferJSON.cxx.
Read array of Float_t from buffer.
Implements TBuffer.
Definition at line 2735 of file TBufferJSON.cxx.
Read array of Int_t from buffer.
Implements TBuffer.
Definition at line 2687 of file TBufferJSON.cxx.
Read array of Long64_t from buffer.
Implements TBuffer.
Definition at line 2719 of file TBufferJSON.cxx.
Read array of Long_t from buffer.
Implements TBuffer.
Definition at line 2703 of file TBufferJSON.cxx.
Read array of Short_t from buffer.
Implements TBuffer.
Definition at line 2671 of file TBufferJSON.cxx.
Read array of UChar_t from buffer.
Implements TBuffer.
Definition at line 2663 of file TBufferJSON.cxx.
Read array of UInt_t from buffer.
Implements TBuffer.
Definition at line 2695 of file TBufferJSON.cxx.
Read array of ULong64_t from buffer.
Implements TBuffer.
Definition at line 2727 of file TBufferJSON.cxx.
Read array of ULong_t from buffer.
Implements TBuffer.
Definition at line 2711 of file TBufferJSON.cxx.
Read array of UShort_t from buffer.
Implements TBuffer.
Definition at line 2679 of file TBufferJSON.cxx.
|
inlinevirtual |
|
finalvirtual |
Reads UChar_t value from buffer.
Implements TBuffer.
Definition at line 3575 of file TBufferJSON.cxx.
Reads UInt_t value from buffer.
Implements TBuffer.
Definition at line 3610 of file TBufferJSON.cxx.
Reads ULong_t value from buffer.
Implements TBuffer.
Definition at line 3626 of file TBufferJSON.cxx.
Reads ULong64_t value from buffer.
Implements TBuffer.
Definition at line 3642 of file TBufferJSON.cxx.
Reads UShort_t value from buffer.
Implements TBuffer.
Definition at line 3591 of file TBufferJSON.cxx.
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.
Set level of space/newline/array compression Lower digit of compact parameter define formatting rules.
Second digit of compact parameter defines algorithm for arrays compression
Third digit defines usage of typeinfo
Definition at line 554 of file TBufferJSON.cxx.
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.
|
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.
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.
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.
|
finalvirtual |
Skip any kind of object from buffer.
Implements TBuffer.
Definition at line 2508 of file TBufferJSON.cxx.
|
inlineprotected |
Definition at line 257 of file TBufferJSON.h.
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.
Implements TBuffer.
Definition at line 33 of file TBufferText.cxx.
|
inlinestatic |
Definition at line 75 of file TBufferJSON.h.
|
protected |
Prepares buffer to stream data of specified class.
Definition at line 2015 of file TBufferJSON.cxx.
|
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.
Write array of Bool_t to buffer.
Implements TBuffer.
Definition at line 3137 of file TBufferJSON.cxx.
Write array of Char_t to buffer.
Implements TBuffer.
Definition at line 3146 of file TBufferJSON.cxx.
Write array of Double_t to buffer.
Implements TBuffer.
Definition at line 3245 of file TBufferJSON.cxx.
Write array of Float_t to buffer.
Implements TBuffer.
Definition at line 3236 of file TBufferJSON.cxx.
Write array of Long64_t to buffer.
Implements TBuffer.
Definition at line 3218 of file TBufferJSON.cxx.
Write array of Long_t to buffer.
Implements TBuffer.
Definition at line 3200 of file TBufferJSON.cxx.
Write array of Short_t to buffer.
Implements TBuffer.
Definition at line 3164 of file TBufferJSON.cxx.
Write array of UChar_t to buffer.
Implements TBuffer.
Definition at line 3155 of file TBufferJSON.cxx.
Write array of UInt_t to buffer.
Implements TBuffer.
Definition at line 3191 of file TBufferJSON.cxx.
Write array of ULong64_t to buffer.
Implements TBuffer.
Definition at line 3227 of file TBufferJSON.cxx.
Write array of ULong_t to buffer.
Implements TBuffer.
Definition at line 3209 of file TBufferJSON.cxx.
Write array of UShort_t to buffer.
Implements TBuffer.
Definition at line 3173 of file TBufferJSON.cxx.
Writes array of characters to buffer.
Implements TBuffer.
Definition at line 3838 of file TBufferJSON.cxx.
|
finalvirtual |
Writes Double_t value to buffer.
Implements TBuffer.
Definition at line 3829 of file TBufferJSON.cxx.
Write array of Bool_t to buffer.
Implements TBuffer.
Definition at line 3294 of file TBufferJSON.cxx.
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 3306 of file TBufferJSON.cxx.
Write array of Double_t to buffer.
Implements TBuffer.
Definition at line 3416 of file TBufferJSON.cxx.
Write array of Float_t to buffer.
Implements TBuffer.
Definition at line 3408 of file TBufferJSON.cxx.
Write array of Int_t to buffer.
Implements TBuffer.
Definition at line 3360 of file TBufferJSON.cxx.
Write array of Long64_t to buffer.
Implements TBuffer.
Definition at line 3392 of file TBufferJSON.cxx.
Write array of Long_t to buffer.
Implements TBuffer.
Definition at line 3376 of file TBufferJSON.cxx.
Write array of Short_t to buffer.
Implements TBuffer.
Definition at line 3344 of file TBufferJSON.cxx.
Write array of UChar_t to buffer.
Implements TBuffer.
Definition at line 3336 of file TBufferJSON.cxx.
Write array of UInt_t to buffer.
Implements TBuffer.
Definition at line 3368 of file TBufferJSON.cxx.
Write array of ULong64_t to buffer.
Implements TBuffer.
Definition at line 3400 of file TBufferJSON.cxx.
Write array of ULong_t to buffer.
Implements TBuffer.
Definition at line 3384 of file TBufferJSON.cxx.
Write array of UShort_t to buffer.
Implements TBuffer.
Definition at line 3352 of file TBufferJSON.cxx.
|
finalvirtual |
Recall TBuffer function to avoid gcc warning message.
Implements TBuffer.
Definition at line 3477 of file TBufferJSON.cxx.
|
finalvirtual |
Recall TBuffer function to avoid gcc warning message.
Implements TBuffer.
Definition at line 3424 of file TBufferJSON.cxx.
Write array of Char_t to buffer.
Implements TBuffer.
Definition at line 3328 of file TBufferJSON.cxx.
Writes Float_t value to buffer.
Implements TBuffer.
Definition at line 3820 of file TBufferJSON.cxx.
Writes Long64_t value to buffer.
Implements TBuffer.
Definition at line 3802 of file TBufferJSON.cxx.
|
finalprotectedvirtual |
Write object to buffer. Only used from TBuffer.
Implements TBufferIO.
Definition at line 2513 of file TBufferJSON.cxx.
Writes Short_t value to buffer.
Implements TBuffer.
Definition at line 3748 of file TBufferJSON.cxx.
|
finalvirtual |
|
inlinevirtual |
Writes UChar_t value to buffer.
Implements TBuffer.
Definition at line 3739 of file TBufferJSON.cxx.
Writes ULong_t value to buffer.
Implements TBuffer.
Definition at line 3793 of file TBufferJSON.cxx.
Writes ULong64_t value to buffer.
Implements TBuffer.
Definition at line 3811 of file TBufferJSON.cxx.
Writes UShort_t value to buffer.
Implements TBuffer.
Definition at line 3757 of file TBufferJSON.cxx.
|
protected |
! 0 - no array compression, 1 - exclude leading/trailing zeros, 2 - check value repetition
Definition at line 325 of file TBufferJSON.h.
|
protected |
! depending from compression level, ", " or ","
Definition at line 326 of file TBufferJSON.h.
|
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.
|
protected |
! counter for all objects, used for referencing
Definition at line 320 of file TBufferJSON.h.
! when true, std::map will be converted into JSON object
Definition at line 323 of file TBufferJSON.h.
|
protected |
! stored value of setlocale(LC_NUMERIC), which should be recovered at the end
Definition at line 327 of file TBufferJSON.h.
|
protected |
! main output buffer for json code
Definition at line 317 of file TBufferJSON.h.
|
protected |
! current output buffer for json code
Definition at line 318 of file TBufferJSON.h.
|
protected |
! depending from compression level, " : " or ":"
Definition at line 324 of file TBufferJSON.h.
|
protected |
! list of classes, which class info is not stored
Definition at line 330 of file TBufferJSON.h.
|
protected |
! hierarchy of currently streamed element
Definition at line 321 of file TBufferJSON.h.
|
protected |
! JSON member used for storing class name, when empty - no class name will be stored
Definition at line 328 of file TBufferJSON.h.
|
protected |
! JSON member used to store class version, default empty
Definition at line 329 of file TBufferJSON.h.
|
protected |
! buffer for current value
Definition at line 319 of file TBufferJSON.h.