ROOT » NET » HTTP » TBufferJSON

class TBufferJSON: public TBuffer


 Class for serializing object into 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, one should use TBufferJSON::ConvertToJSON method like:

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


Function Members (Methods)

public:
virtual~TBufferJSON()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual Int_tApplySequence(const TStreamerInfoActions::TActionSequence& sequence, void* object)
virtual Int_tApplySequence(const TStreamerInfoActions::TActionSequence& sequence, void* start_collection, void* end_collection)
virtual Int_tApplySequenceVecPtr(const TStreamerInfoActions::TActionSequence& sequence, void* start_collection, void* end_collection)
voidTBuffer::AutoExpand(Int_t size_needed)
virtual voidTObject::Browse(TBrowser* b)
char*TBuffer::Buffer() const
Int_tTBuffer::BufferSize() const
virtual Int_tCheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass* clss)
virtual Int_tCheckByteCount(UInt_t startpos, UInt_t bcnt, const char* classname)
virtual Bool_tCheckObject(const TObject*)
virtual Bool_tCheckObject(const void*, const TClass*)
static TClass*Class()
virtual voidClassBegin(const TClass*, Version_t = -1)
virtual voidClassEnd(const TClass*)
virtual voidClassMember(const char* name, const char* typeName = 0, Int_t arrsize1 = -1, Int_t arrsize2 = -1)
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
static TStringConvertToJSON(const TObject* obj, Int_t compact = 0)
static TStringConvertToJSON(const void* obj, const TClass* cl, Int_t compact = 0)
static TStringConvertToJSON(const void* obj, TDataMember* member, Int_t compact = 0)
virtual voidTObject::Copy(TObject& object) const
virtual voidDecrementLevel(TVirtualStreamerInfo*)
virtual voidTObject::Delete(Option_t* option = "")MENU
voidTBuffer::DetachBuffer()
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
voidTBuffer::Expand(Int_t newsize, Bool_t copy = kTRUE)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual voidForceWriteInfo(TVirtualStreamerInfo*, Bool_t)
virtual voidForceWriteInfoClones(TClonesArray*)
virtual Int_tGetBufferDisplacement() const
Int_tTBuffer::GetBufferVersion() const
static TClass*TBuffer::GetClass(const type_info& typeinfo)
static TClass*TBuffer::GetClass(const char* className)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
static const char*GetFloatFormat()
virtual const char*TObject::GetIconName() const
virtual TVirtualStreamerInfo*GetInfo()
virtual TProcessID*GetLastProcessID(TRefTable*) const
virtual Int_tGetMapCount() const
virtual voidGetMappedObject(UInt_t, void*&, TClass*&) const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
TObject*TBuffer::GetParent() const
virtual UShort_tGetPidOffset() const
ReAllocCharFun_tTBuffer::GetReAllocFunc() const
virtual const char*TObject::GetTitle() const
virtual UInt_tGetTRefExecId()
virtual UInt_tTObject::GetUniqueID() const
virtual Int_tGetVersionOwner() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidIncrementLevel(TVirtualStreamerInfo*)
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidInitMap()
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
Bool_tTBuffer::IsReading() const
virtual Bool_tTObject::IsSortable() const
Bool_tTBuffer::IsWriting() const
Bool_tTObject::IsZombie() const
Int_tTBuffer::Length() const
virtual voidTObject::ls(Option_t* option = "") const
virtual voidMapObject(const TObject*, UInt_t = 1)
virtual voidMapObject(const void*, const TClass*, UInt_t = 1)
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
voidTObject::operator delete(void* ptr)
voidTObject::operator delete(void* ptr, void* vp)
voidTObject::operator delete[](void* ptr)
voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
TBufferJSON&operator=(const TBufferJSON&)
virtual voidTObject::Paint(Option_t* option = "")
virtual TVirtualArray*TBuffer::PeekDataCache() const
virtual voidTObject::Pop()
virtual TVirtualArray*TBuffer::PopDataCache()
virtual voidTObject::Print(Option_t* option = "") const
virtual voidTBuffer::PushDataCache(TVirtualArray*)
virtual Int_tReadArray(Bool_t*& b)
virtual Int_tReadArray(Char_t*& c)
virtual Int_tReadArray(UChar_t*& c)
virtual Int_tReadArray(Short_t*& h)
virtual Int_tReadArray(UShort_t*& h)
virtual Int_tReadArray(Int_t*& i)
virtual Int_tReadArray(UInt_t*& i)
virtual Int_tReadArray(Long_t*& l)
virtual Int_tReadArray(ULong_t*& l)
virtual Int_tReadArray(Long64_t*& l)
virtual Int_tReadArray(ULong64_t*& l)
virtual Int_tReadArray(Float_t*& f)
virtual Int_tReadArray(Double_t*& d)
virtual Int_tReadArrayDouble32(Double_t*& d, TStreamerElement* ele = 0)
virtual Int_tReadArrayFloat16(Float_t*& f, TStreamerElement* ele = 0)
virtual voidReadBool(Bool_t& b)
virtual Int_tReadBuf(void*, Int_t)
virtual voidReadChar(Char_t& c)
virtual voidReadCharP(Char_t* c)
virtual TClass*ReadClass(const TClass* cl = 0, UInt_t* objTag = 0)
virtual Int_tReadClassBuffer(const TClass*, void*, const TClass* = 0)
virtual Int_tReadClassBuffer(const TClass*, void*, Int_t, UInt_t, UInt_t, const TClass* = 0)
virtual Int_tReadClassEmulated(const TClass*, void*, const TClass* = 0)
virtual Int_tReadClones(TClonesArray*, Int_t, Version_t)
virtual voidReadDouble(Double_t& d)
virtual voidReadDouble32(Double_t* d, TStreamerElement* ele = 0)
virtual voidReadFastArray(Bool_t* b, Int_t n)
virtual voidReadFastArray(Char_t* c, Int_t n)
virtual voidReadFastArray(UChar_t* c, Int_t n)
virtual voidReadFastArray(Short_t* h, Int_t n)
virtual voidReadFastArray(UShort_t* h, Int_t n)
virtual voidReadFastArray(Int_t* i, Int_t n)
virtual voidReadFastArray(UInt_t* i, Int_t n)
virtual voidReadFastArray(Long_t* l, Int_t n)
virtual voidReadFastArray(ULong_t* l, Int_t n)
virtual voidReadFastArray(Long64_t* l, Int_t n)
virtual voidReadFastArray(ULong64_t* l, Int_t n)
virtual voidReadFastArray(Float_t* f, Int_t n)
virtual voidReadFastArray(Double_t* d, Int_t n)
virtual voidReadFastArray(void* start, const TClass* cl, Int_t n = 1, TMemberStreamer* s = 0, const TClass* onFileClass = 0)
virtual voidReadFastArray(void** startp, const TClass* cl, Int_t n = 1, Bool_t isPreAlloc = kFALSE, TMemberStreamer* s = 0, const TClass* onFileClass = 0)
virtual voidReadFastArrayDouble32(Double_t* d, Int_t n, TStreamerElement* ele = 0)
virtual voidReadFastArrayFloat16(Float_t* f, Int_t n, TStreamerElement* ele = 0)
virtual voidReadFastArrayString(Char_t* c, Int_t n)
virtual voidReadFastArrayWithFactor(Float_t* ptr, Int_t n, Double_t factor, Double_t minvalue)
virtual voidReadFastArrayWithFactor(Double_t* ptr, Int_t n, Double_t factor, Double_t minvalue)
virtual voidReadFastArrayWithNbits(Float_t* ptr, Int_t n, Int_t nbits)
virtual voidReadFastArrayWithNbits(Double_t* ptr, Int_t n, Int_t nbits)
virtual voidReadFloat(Float_t& f)
virtual voidReadFloat16(Float_t* f, TStreamerElement* ele = 0)
virtual voidReadInt(Int_t& i)
virtual voidReadLong(Long_t& l)
virtual voidReadLong64(Long64_t& l)
virtual TObject*ReadObject(const TClass*)
virtual void*ReadObjectAny(const TClass* clCast)
virtual TProcessID*ReadProcessID(UShort_t)
virtual voidReadShort(Short_t& s)
virtual Int_tReadStaticArray(Bool_t* b)
virtual Int_tReadStaticArray(Char_t* c)
virtual Int_tReadStaticArray(UChar_t* c)
virtual Int_tReadStaticArray(Short_t* h)
virtual Int_tReadStaticArray(UShort_t* h)
virtual Int_tReadStaticArray(Int_t* i)
virtual Int_tReadStaticArray(UInt_t* i)
virtual Int_tReadStaticArray(Long_t* l)
virtual Int_tReadStaticArray(ULong_t* l)
virtual Int_tReadStaticArray(Long64_t* l)
virtual Int_tReadStaticArray(ULong64_t* l)
virtual Int_tReadStaticArray(Float_t* f)
virtual Int_tReadStaticArray(Double_t* d)
virtual Int_tReadStaticArrayDouble32(Double_t* d, TStreamerElement* ele = 0)
virtual Int_tReadStaticArrayFloat16(Float_t* f, TStreamerElement* ele = 0)
virtual char*ReadString(char*, Int_t)
virtual voidReadTString(TString& s)
virtual voidReadUChar(UChar_t& c)
virtual voidReadUInt(UInt_t& i)
virtual voidReadULong(ULong_t& l)
virtual voidReadULong64(ULong64_t& l)
virtual voidReadUShort(UShort_t& s)
virtual Version_tReadVersion(UInt_t* start = 0, UInt_t* bcnt = 0, const TClass* cl = 0)
virtual Version_tReadVersionForMemberWise(const TClass* = 0)
virtual Version_tReadVersionNoCheckSum(UInt_t*, UInt_t*)
virtual voidReadWithFactor(Float_t* ptr, Double_t factor, Double_t minvalue)
virtual voidReadWithFactor(Double_t* ptr, Double_t factor, Double_t minvalue)
virtual voidReadWithNbits(Float_t* ptr, Int_t nbits)
virtual voidReadWithNbits(Double_t* ptr, Int_t nbits)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual voidReset()
voidTObject::ResetBit(UInt_t f)
virtual voidResetMap()
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidTBuffer::SetBuffer(void* buf, UInt_t bufsiz = 0, Bool_t adopt = kTRUE, ReAllocCharFun_t reallocfunc = 0)
virtual voidSetBufferDisplacement()
virtual voidSetBufferDisplacement(Int_t)
voidTBuffer::SetBufferOffset(Int_t offset = 0)
virtual voidSetByteCount(UInt_t cntpos, Bool_t packInVersion = kFALSE)
voidSetCompact(int level)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidSetFloatFormat(const char* fmt = "%e")
static voidTObject::SetObjectStat(Bool_t stat)
voidTBuffer::SetParent(TObject* parent)
virtual voidSetPidOffset(UShort_t)
voidTBuffer::SetReadMode()
virtual voidSetReadParam(Int_t)
voidTBuffer::SetReAllocFunc(ReAllocCharFun_t reallocfunc = 0)
virtual voidSetStreamerElementNumber(TStreamerElement* elem, Int_t comp_type)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidTBuffer::SetWriteMode()
virtual voidSetWriteParam(Int_t)
virtual voidShowMembers(TMemberInspector& insp) const
virtual voidSkipObjectAny()
virtual voidSkipVersion(const TClass* cl = 0)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidStreamObject(TObject* obj)
virtual voidStreamObject(void* obj, const type_info& typeinfo, const TClass* onFileClass = 0)
virtual voidStreamObject(void* obj, const char* className, const TClass* onFileClass = 0)
virtual voidStreamObject(void* obj, const TClass* cl, const TClass* onFileClass = 0)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
virtual voidTagStreamerInfo(TVirtualStreamerInfo*)
TBufferJSON()
TBufferJSON(const TBufferJSON&)
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual voidWriteArray(const Bool_t* b, Int_t n)
virtual voidWriteArray(const Char_t* c, Int_t n)
virtual voidWriteArray(const UChar_t* c, Int_t n)
virtual voidWriteArray(const Short_t* h, Int_t n)
virtual voidWriteArray(const UShort_t* h, Int_t n)
virtual voidWriteArray(const Int_t* i, Int_t n)
virtual voidWriteArray(const UInt_t* i, Int_t n)
virtual voidWriteArray(const Long_t* l, Int_t n)
virtual voidWriteArray(const ULong_t* l, Int_t n)
virtual voidWriteArray(const Long64_t* l, Int_t n)
virtual voidWriteArray(const ULong64_t* l, Int_t n)
virtual voidWriteArray(const Float_t* f, Int_t n)
virtual voidWriteArray(const Double_t* d, Int_t n)
virtual voidWriteArrayDouble32(const Double_t* d, Int_t n, TStreamerElement* ele = 0)
virtual voidWriteArrayFloat16(const Float_t* f, Int_t n, TStreamerElement* ele = 0)
virtual voidWriteBool(Bool_t b)
virtual voidWriteBuf(const void*, Int_t)
virtual voidWriteChar(Char_t c)
virtual voidWriteCharP(const Char_t* c)
virtual voidWriteClass(const TClass* cl)
virtual Int_tWriteClassBuffer(const TClass* cl, void* pointer)
virtual Int_tWriteClones(TClonesArray* a, Int_t nobjects)
virtual voidWriteDouble(Double_t d)
virtual voidWriteDouble32(Double_t* d, TStreamerElement* ele = 0)
virtual voidWriteFastArray(const Bool_t* b, Int_t n)
virtual voidWriteFastArray(const Char_t* c, Int_t n)
virtual voidWriteFastArray(const UChar_t* c, Int_t n)
virtual voidWriteFastArray(const Short_t* h, Int_t n)
virtual voidWriteFastArray(const UShort_t* h, Int_t n)
virtual voidWriteFastArray(const Int_t* i, Int_t n)
virtual voidWriteFastArray(const UInt_t* i, Int_t n)
virtual voidWriteFastArray(const Long_t* l, Int_t n)
virtual voidWriteFastArray(const ULong_t* l, Int_t n)
virtual voidWriteFastArray(const Long64_t* l, Int_t n)
virtual voidWriteFastArray(const ULong64_t* l, Int_t n)
virtual voidWriteFastArray(const Float_t* f, Int_t n)
virtual voidWriteFastArray(const Double_t* d, Int_t n)
virtual voidWriteFastArray(void* start, const TClass* cl, Int_t n = 1, TMemberStreamer* s = 0)
virtual Int_tWriteFastArray(void** startp, const TClass* cl, Int_t n = 1, Bool_t isPreAlloc = kFALSE, TMemberStreamer* s = 0)
virtual voidWriteFastArrayDouble32(const Double_t* d, Int_t n, TStreamerElement* ele = 0)
virtual voidWriteFastArrayFloat16(const Float_t* d, Int_t n, TStreamerElement* ele = 0)
virtual voidWriteFastArrayString(const Char_t* c, Int_t n)
virtual voidWriteFloat(Float_t f)
virtual voidWriteFloat16(Float_t* f, TStreamerElement* ele = 0)
virtual voidWriteInt(Int_t i)
virtual voidWriteLong(Long_t l)
virtual voidWriteLong64(Long64_t l)
virtual voidWriteObject(const TObject* obj)
virtual Int_tWriteObjectAny(const void* obj, const TClass* ptrClass)
virtual UShort_tWriteProcessID(TProcessID*)
virtual voidWriteShort(Short_t s)
virtual voidWriteString(const char*)
virtual voidWriteTString(const TString& s)
virtual voidWriteUChar(UChar_t c)
virtual voidWriteUInt(UInt_t i)
virtual voidWriteULong(ULong_t l)
virtual voidWriteULong64(ULong64_t l)
virtual voidWriteUShort(UShort_t s)
virtual UInt_tWriteVersion(const TClass* cl, Bool_t useBcnt = kFALSE)
virtual UInt_tWriteVersionMemberWise(const TClass*, Bool_t = kFALSE)
protected:
voidAppendOutput(const char* line0, const char* line1 = 0)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidJsonDisablePostprocessing()
Int_tJsonSpecialClass(const TClass* cl) const
voidJsonStartElement(const TStreamerElement* elem, const TClass* base_class = 0)
voidJsonStreamCollection(TCollection* obj, const TClass* objClass)
voidJsonWriteBasic(Char_t value)
voidJsonWriteBasic(Short_t value)
voidJsonWriteBasic(Int_t value)
voidJsonWriteBasic(Long_t value)
voidJsonWriteBasic(Long64_t value)
voidJsonWriteBasic(Float_t value)
voidJsonWriteBasic(Double_t value)
voidJsonWriteBasic(Bool_t value)
voidJsonWriteBasic(UChar_t value)
voidJsonWriteBasic(UShort_t value)
voidJsonWriteBasic(UInt_t value)
voidJsonWriteBasic(ULong_t value)
voidJsonWriteBasic(ULong64_t value)
TStringJsonWriteMember(const void* ptr, TDataMember* member, TClass* memberClass)
voidJsonWriteObject(const void* obj, const TClass* objClass, Bool_t check_map = kTRUE)
voidTObject::MakeZombie()
voidPerformPostProcessing(TJSONStackObj* stack, const TStreamerElement* elem = 0)
TJSONStackObj*PopStack()
TJSONStackObj*PushStack(Int_t inclevel = 0)
virtual Int_tTBuffer::Read(const char* name)
TJSONStackObj*Stack(Int_t depth = 0)
voidWorkWithClass(TStreamerInfo* info, const TClass* cl = 0)
voidWorkWithElement(TStreamerElement* elem, Int_t comp_type)
virtual Int_tTBuffer::Write(const char* name, Int_t opt, Int_t bufs)
virtual Int_tTBuffer::Write(const char* name, Int_t opt, Int_t bufs) const
virtual voidWriteObjectClass(const void* actualObjStart, const TClass* actualClass)

Data Members

public:
static TObject::(anonymous)TObject::kBitMask
static TObject::EStatusBitsTObject::kCanDelete
static TBuffer::(anonymous)TBuffer::kCannotHandleMemberWiseStreaming
static TObject::EStatusBitsTObject::kCannotPick
static TObject::EStatusBitsTObject::kHasUUID
static TBuffer::(anonymous)TBuffer::kInitialSize
static TObject::EStatusBitsTObject::kInvalidObject
static TObject::(anonymous)TObject::kIsOnHeap
static TBuffer::(anonymous)TBuffer::kIsOwner
static TObject::EStatusBitsTObject::kIsReferenced
static TBuffer::(anonymous)TBuffer::kMinimalSize
static TObject::EStatusBitsTObject::kMustCleanup
static TObject::EStatusBitsTObject::kNoContextMenu
static TObject::(anonymous)TObject::kNotDeleted
static TObject::EStatusBitsTObject::kObjInCanvas
static TObject::(anonymous)TObject::kOverwrite
static TBuffer::EModeTBuffer::kRead
static TObject::(anonymous)TObject::kSingleKey
static TBuffer::EModeTBuffer::kWrite
static TObject::(anonymous)TObject::kWriteDelete
static TObject::(anonymous)TObject::kZombie
protected:
TStringfArraySepar! depending from compression level, ", " or ","
char*TBuffer::fBufCurCurrent position in buffer
char*TBuffer::fBufMaxEnd of buffer
Int_tTBuffer::fBufSizeSize of buffer
char*TBuffer::fBufferBuffer used to store objects
TBuffer::CacheList_tTBuffer::fCacheStackStack of pointers to the cache where to temporarily store the value of 'missing' data members
Int_tfCompact! 0 - no any compression, 1 - no spaces in the begin, 2 - no new lines, 3 - no spaces at all
Bool_tfExpectedChain! flag to resolve situation when several elements of same basic type stored as FastArray
unsigned intfJsonrCnt! counter for all objects and arrays
map<const void*,unsigned int>fJsonrMap! map of recorded objects, used in JsonR to restore references
Bool_tTBuffer::fModeRead or write mode
TStringfOutBuffer! main output buffer for json code
TString*fOutput! current output buffer for json code
TObject*TBuffer::fParentPointer to parent object owning this buffer
ReAllocCharFun_tTBuffer::fReAllocFunc! Realloc function to be used when extending the buffer.
TStringfSemicolon! depending from compression level, " : " or ":"
TObjArrayfStack! stack of streamer infos
TStringfValue! buffer for current value
Int_tTBuffer::fVersionBuffer format version
static const char*fgFloatFmt! printf argument for floats and doubles, either "%f" or "%e" or "%10f" and so on

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TBufferJSON()
 Creates buffer object to serialize data into json.
~TBufferJSON()
 destroy buffer
TString ConvertToJSON(const TObject* obj, Int_t compact = 0)
 converts object, inherited from TObject class, to JSON string
void SetCompact(int level)
 Set level of space/newline compression
   0 - no any compression
   1 - exclude spaces in the begin
   2 - remove newlines
   3 - exclude spaces as much as possible
TString ConvertToJSON(const void* obj, const TClass* cl, Int_t compact = 0)
 converts any type of object to JSON string
 following values of compact
   0 - no any compression
   1 - exclude spaces in the begin
   2 - remove newlines
   3 - exclude spaces as much as possible
TString ConvertToJSON(const void* obj, TDataMember* member, Int_t compact = 0)
 converts selected data member into json
TString JsonWriteMember(const void* ptr, TDataMember* member, TClass* memberClass)
 Convert single data member to JSON structures
 Returns string with converted member
Bool_t CheckObject(const TObject* )
 Check that object already stored in the buffer
Bool_t CheckObject(const void* , const TClass* )
 Check that object already stored in the buffer
void WriteObject(const TObject* obj)
 Convert object into json structures.
 !!! Should be used only by TBufferJSON itself.
 Use ConvertToJSON() methods to convert object to json
 Redefined here to avoid gcc 3.x warning
TJSONStackObj * PushStack(Int_t inclevel = 0)
 add new level to the structures stack
TJSONStackObj * PopStack()
 remove one level from stack
TJSONStackObj * Stack(Int_t depth = 0)
 return stack object of specified depth
void AppendOutput(const char* line0, const char* line1 = 0)
 Info("AppendOutput","  '%s' '%s'", line0, line1?line1 : "---");
void JsonStartElement(const TStreamerElement* elem, const TClass* base_class = 0)
void JsonDisablePostprocessing()
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 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 JsonStreamCollection(TCollection* obj, const TClass* objClass)
 store content of collection
void IncrementLevel(TVirtualStreamerInfo* )
 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
void WorkWithClass(TStreamerInfo* info, const TClass* cl = 0)
 Prepares buffer to stream data of specified class
void DecrementLevel(TVirtualStreamerInfo* )
 Function is called from TStreamerInfo WriteBuffer and ReadBuffer functions
 and decrease level in json structure.
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
void WorkWithElement(TStreamerElement* elem, Int_t comp_type)
 This is call-back from streamer which indicates
 that class member will be streamed
 Name of element used in JSON
void ClassBegin(const TClass* , Version_t = -1)
 Should be called in the beginning of custom class streamer.
 Informs buffer data about class which will be streamed now.

 ClassBegin(), ClassEnd() and ClassMemeber() 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
void ClassEnd(const TClass* )
 Should be called at the end of custom streamer
 See TBufferJSON::ClassBegin for more details
void ClassMember(const char* name, const char* typeName = 0, 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:
 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.ClassMemeber("fName","TString");
      fName.Streamer(b);
 5. Pointer on object as data member
      b.ClassMemeber("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.
void PerformPostProcessing(TJSONStackObj* stack, const TStreamerElement* elem = 0)
 Function is converts TObject and TString structures to more compact representation
TClass * ReadClass(const TClass* cl = 0, UInt_t* objTag = 0)
 suppressed function of TBuffer
void WriteClass(const TClass* cl)
 suppressed function of TBuffer
Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass* clss)
 suppressed function of TBuffer
Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const char* classname)
 suppressed function of TBuffer
void SetByteCount(UInt_t cntpos, Bool_t packInVersion = kFALSE)
 suppressed function of TBuffer
void SkipVersion(const TClass* cl = 0)
 Skip class version from I/O buffer.
Version_t ReadVersion(UInt_t* start = 0, UInt_t* bcnt = 0, const TClass* cl = 0)
 read version value from buffer
UInt_t WriteVersion(const TClass* cl, Bool_t useBcnt = kFALSE)
 Ignored in TBufferJSON
void * ReadObjectAny(const TClass* clCast)
 Read object from buffer. Only used from TBuffer
void SkipObjectAny()
 Skip any kind of object from buffer
void WriteObjectClass(const void* actualObjStart, const TClass* actualClass)
 Write object to buffer. Only used from TBuffer
void ReadFloat16(Float_t* f, TStreamerElement* ele = 0)
 read a Float16_t from the buffer
void ReadDouble32(Double_t* d, TStreamerElement* ele = 0)
 read a Double32_t from the buffer
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().
 Currently TBufferJSON does not optimize space in this case.
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().
 Currently TBufferJSON does not optimize space in this case.
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().
 Currently TBufferJSON does not optimize space in this case.
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().
 Currently TBufferJSON does not optimize space in this case.
void WriteFloat16(Float_t* f, TStreamerElement* ele = 0)
 write a Float16_t to the buffer
void WriteDouble32(Double_t* d, TStreamerElement* ele = 0)
 write a Double32_t to the buffer
Int_t ReadArray(Bool_t*& b)
 Read array of Bool_t from buffer
Int_t ReadArray(Char_t*& c)
 Read array of Char_t from buffer
Int_t ReadArray(UChar_t*& c)
 Read array of UChar_t from buffer
Int_t ReadArray(Short_t*& h)
 Read array of Short_t from buffer
Int_t ReadArray(UShort_t*& h)
 Read array of UShort_t from buffer
Int_t ReadArray(Int_t*& i)
 Read array of Int_t from buffer
Int_t ReadArray(UInt_t*& i)
 Read array of UInt_t from buffer
Int_t ReadArray(Long_t*& l)
 Read array of Long_t from buffer
Int_t ReadArray(ULong_t*& l)
 Read array of ULong_t from buffer
Int_t ReadArray(Long64_t*& l)
 Read array of Long64_t from buffer
Int_t ReadArray(ULong64_t*& l)
 Read array of ULong64_t from buffer
Int_t ReadArray(Float_t*& f)
 Read array of Float_t from buffer
Int_t ReadArray(Double_t*& d)
 Read array of Double_t from buffer
Int_t ReadArrayFloat16(Float_t*& f, TStreamerElement* ele = 0)
 Read array of Float16_t from buffer
Int_t ReadArrayDouble32(Double_t*& d, TStreamerElement* ele = 0)
 Read array of Double32_t from buffer
Int_t ReadStaticArray(Bool_t* b)
 Read array of Bool_t from buffer
Int_t ReadStaticArray(Char_t* c)
 Read array of Char_t from buffer
Int_t ReadStaticArray(UChar_t* c)
 Read array of UChar_t from buffer
Int_t ReadStaticArray(Short_t* h)
 Read array of Short_t from buffer
Int_t ReadStaticArray(UShort_t* h)
 Read array of UShort_t from buffer
Int_t ReadStaticArray(Int_t* i)
 Read array of Int_t from buffer
Int_t ReadStaticArray(UInt_t* i)
 Read array of UInt_t from buffer
Int_t ReadStaticArray(Long_t* l)
 Read array of Long_t from buffer
Int_t ReadStaticArray(ULong_t* l)
 Read array of ULong_t from buffer
Int_t ReadStaticArray(Long64_t* l)
 Read array of Long64_t from buffer
Int_t ReadStaticArray(ULong64_t* l)
 Read array of ULong64_t from buffer
Int_t ReadStaticArray(Float_t* f)
 Read array of Float_t from buffer
Int_t ReadStaticArray(Double_t* d)
 Read array of Double_t from buffer
Int_t ReadStaticArrayFloat16(Float_t* f, TStreamerElement* ele = 0)
 Read array of Float16_t from buffer
Int_t ReadStaticArrayDouble32(Double_t* d, TStreamerElement* ele = 0)
 Read array of Double32_t from buffer
void ReadFastArray(Bool_t* b, Int_t n)
 read array of Bool_t from buffer
void ReadFastArray(Char_t* c, Int_t n)
 read array of Char_t from buffer
void ReadFastArrayString(Char_t* c, Int_t n)
 read array of Char_t from buffer
void ReadFastArray(UChar_t* c, Int_t n)
 read array of UChar_t from buffer
void ReadFastArray(Short_t* h, Int_t n)
 read array of Short_t from buffer
void ReadFastArray(UShort_t* h, Int_t n)
 read array of UShort_t from buffer
void ReadFastArray(Int_t* i, Int_t n)
 read array of Int_t from buffer
void ReadFastArray(UInt_t* i, Int_t n)
 read array of UInt_t from buffer
void ReadFastArray(Long_t* l, Int_t n)
 read array of Long_t from buffer
void ReadFastArray(ULong_t* l, Int_t n)
 read array of ULong_t from buffer
void ReadFastArray(Long64_t* l, Int_t n)
 read array of Long64_t from buffer
void ReadFastArray(ULong64_t* l, Int_t n)
 read array of ULong64_t from buffer
void ReadFastArray(Float_t* f, Int_t n)
 read array of Float_t from buffer
void ReadFastArray(Double_t* d, Int_t n)
 read array of Double_t from buffer
void ReadFastArrayFloat16(Float_t* f, Int_t n, TStreamerElement* ele = 0)
 read array of Float16_t from buffer
void ReadFastArrayWithFactor(Float_t* ptr, Int_t n, Double_t factor, Double_t minvalue)
 read array of Float16_t from buffer
void ReadFastArrayWithNbits(Float_t* ptr, Int_t n, Int_t nbits)
 read array of Float16_t from buffer
void ReadFastArrayDouble32(Double_t* d, Int_t n, TStreamerElement* ele = 0)
 read array of Double32_t from buffer
void ReadFastArrayWithFactor(Double_t* ptr, Int_t n, Double_t factor, Double_t minvalue)
 read array of Double32_t from buffer
void ReadFastArrayWithNbits(Double_t* ptr, Int_t n, Int_t nbits)
 read array of Double32_t from buffer
void ReadFastArray(void* start, const TClass* cl, Int_t n = 1, TMemberStreamer* s = 0, const TClass* onFileClass = 0)
 redefined here to avoid warning message from gcc
void ReadFastArray(void** startp, const TClass* cl, Int_t n = 1, Bool_t isPreAlloc = kFALSE, TMemberStreamer* s = 0, const TClass* onFileClass = 0)
 redefined here to avoid warning message from gcc
void WriteArray(const Bool_t* b, Int_t n)
 Write array of Bool_t to buffer
void WriteArray(const Char_t* c, Int_t n)
 Write array of Char_t to buffer
void WriteArray(const UChar_t* c, Int_t n)
 Write array of UChar_t to buffer
void WriteArray(const Short_t* h, Int_t n)
 Write array of Short_t to buffer
void WriteArray(const UShort_t* h, Int_t n)
 Write array of UShort_t to buffer
void WriteArray(const Int_t* i, Int_t n)
 Write array of Int_ to buffer
void WriteArray(const UInt_t* i, Int_t n)
 Write array of UInt_t to buffer
void WriteArray(const Long_t* l, Int_t n)
 Write array of Long_t to buffer
void WriteArray(const ULong_t* l, Int_t n)
 Write array of ULong_t to buffer
void WriteArray(const Long64_t* l, Int_t n)
 Write array of Long64_t to buffer
void WriteArray(const ULong64_t* l, Int_t n)
 Write array of ULong64_t to buffer
void WriteArray(const Float_t* f, Int_t n)
 Write array of Float_t to buffer
void WriteArray(const Double_t* d, Int_t n)
 Write array of Double_t to buffer
void WriteArrayFloat16(const Float_t* f, Int_t n, TStreamerElement* ele = 0)
 Write array of Float16_t to buffer
void WriteArrayDouble32(const Double_t* d, Int_t n, TStreamerElement* ele = 0)
 Write array of Double32_t to buffer
void WriteFastArray(const Bool_t* b, Int_t n)
 Write array of Bool_t to buffer
void WriteFastArray(const Char_t* c, Int_t n)
 Write array of Char_t to buffer
 If array does not include any special characters,
 it will be reproduced as CharStar node with string as attribute
void WriteFastArrayString(const Char_t* c, Int_t n)
 Write array of Char_t to buffer
void WriteFastArray(const UChar_t* c, Int_t n)
 Write array of UChar_t to buffer
void WriteFastArray(const Short_t* h, Int_t n)
 Write array of Short_t to buffer
void WriteFastArray(const UShort_t* h, Int_t n)
 Write array of UShort_t to buffer
void WriteFastArray(const Int_t* i, Int_t n)
 Write array of Int_t to buffer
void WriteFastArray(const UInt_t* i, Int_t n)
 Write array of UInt_t to buffer
void WriteFastArray(const Long_t* l, Int_t n)
 Write array of Long_t to buffer
void WriteFastArray(const ULong_t* l, Int_t n)
 Write array of ULong_t to buffer
void WriteFastArray(const Long64_t* l, Int_t n)
 Write array of Long64_t to buffer
void WriteFastArray(const ULong64_t* l, Int_t n)
 Write array of ULong64_t to buffer
void WriteFastArray(const Float_t* f, Int_t n)
 Write array of Float_t to buffer
void WriteFastArray(const Double_t* d, Int_t n)
 Write array of Double_t to buffer
void WriteFastArrayFloat16(const Float_t* d, Int_t n, TStreamerElement* ele = 0)
 Write array of Float16_t to buffer
void WriteFastArrayDouble32(const Double_t* d, Int_t n, TStreamerElement* ele = 0)
 Write array of Double32_t to buffer
void WriteFastArray(void* start, const TClass* cl, Int_t n = 1, TMemberStreamer* s = 0)
 Recall TBuffer function to avoid gcc warning message
Int_t WriteFastArray(void** startp, const TClass* cl, Int_t n = 1, Bool_t isPreAlloc = kFALSE, TMemberStreamer* s = 0)
 Recall TBuffer function to avoid gcc warning message
void StreamObject(void* obj, const type_info& typeinfo, const TClass* onFileClass = 0)
 stream object to/from buffer
void StreamObject(void* obj, const char* className, const TClass* onFileClass = 0)
 stream object to/from buffer
void StreamObject(TObject* obj)
 stream object to/from buffer
void StreamObject(void* obj, const TClass* cl, const TClass* onFileClass = 0)
 stream object to/from buffer
void ReadBool(Bool_t& b)
 Reads Bool_t value from buffer
void ReadChar(Char_t& c)
 Reads Char_t value from buffer
void ReadUChar(UChar_t& c)
 Reads UChar_t value from buffer
void ReadShort(Short_t& s)
 Reads Short_t value from buffer
void ReadUShort(UShort_t& s)
 Reads UShort_t value from buffer
void ReadInt(Int_t& i)
 Reads Int_t value from buffer
void ReadUInt(UInt_t& i)
 Reads UInt_t value from buffer
void ReadLong(Long_t& l)
 Reads Long_t value from buffer
void ReadULong(ULong_t& l)
 Reads ULong_t value from buffer
void ReadLong64(Long64_t& l)
 Reads Long64_t value from buffer
void ReadULong64(ULong64_t& l)
 Reads ULong64_t value from buffer
void ReadFloat(Float_t& f)
 Reads Float_t value from buffer
void ReadDouble(Double_t& d)
 Reads Double_t value from buffer
void ReadCharP(Char_t* c)
 Reads array of characters from buffer
void ReadTString(TString& s)
 Reads a TString
void WriteBool(Bool_t b)
 Writes Bool_t value to buffer
void WriteChar(Char_t c)
 Writes Char_t value to buffer
void WriteUChar(UChar_t c)
 Writes UChar_t value to buffer
void WriteShort(Short_t s)
 Writes Short_t value to buffer
void WriteUShort(UShort_t s)
 Writes UShort_t value to buffer
void WriteInt(Int_t i)
 Writes Int_t value to buffer
void WriteUInt(UInt_t i)
 Writes UInt_t value to buffer
void WriteLong(Long_t l)
 Writes Long_t value to buffer
void WriteULong(ULong_t l)
 Writes ULong_t value to buffer
void WriteLong64(Long64_t l)
 Writes Long64_t value to buffer
void WriteULong64(ULong64_t l)
 Writes ULong64_t value to buffer
void WriteFloat(Float_t f)
 Writes Float_t value to buffer
void WriteDouble(Double_t d)
 Writes Double_t value to buffer
void WriteCharP(const Char_t* c)
 Writes array of characters to buffer
void WriteTString(const TString& s)
 Writes a TString
void JsonWriteBasic(Char_t value)
 converts Char_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(Int_t value)
 converts Int_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(Long64_t value)
 converts Long64_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(Double_t value)
 converts Double_t to string and add to json value buffer
void JsonWriteBasic(Bool_t value)
 converts Bool_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(UShort_t value)
 converts UShort_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(ULong_t value)
 converts ULong_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 SetFloatFormat(const char* fmt = "%e")
 set printf format for float/double members, default "%e"
const char * GetFloatFormat()
 return current printf format for float/double members, default "%e"
Int_t ApplySequence(const TStreamerInfoActions::TActionSequence& sequence, void* object)
 Read one collection of objects from the buffer using the StreamerInfoLoopAction.
 The collection needs to be a split TClonesArray or a split vector of pointers.
Int_t ApplySequenceVecPtr(const TStreamerInfoActions::TActionSequence& sequence, void* start_collection, void* end_collection)
 Read one collection of objects from the buffer using the StreamerInfoLoopAction.
 The collection needs to be a split TClonesArray or a split vector of pointers.
Int_t ApplySequence(const TStreamerInfoActions::TActionSequence& sequence, void* start_collection, void* end_collection)
 Read one collection of objects from the buffer using the StreamerInfoLoopAction.
Int_t WriteClones(TClonesArray* a, Int_t nobjects)
Int_t WriteObjectAny(const void* obj, const TClass* ptrClass)
 Write object to I/O buffer.
 This function assumes that the value in 'obj' is the value stored in
 a pointer to a "ptrClass". The actual type of the object pointed to
 can be any class derived from "ptrClass".
 Return:
  0: failure
  1: success
  2: truncated success (i.e actual class is missing. Only ptrClass saved.)
Int_t WriteClassBuffer(const TClass* cl, void* pointer)
 Function called by the Streamer functions to serialize object at p
 to buffer b. The optional argument info may be specified to give an
 alternative StreamerInfo instead of using the default StreamerInfo
 automatically built from the class definition.
 For more information, see class TStreamerInfo.
TBufferJSON()
Version_t ReadVersionNoCheckSum(UInt_t* , UInt_t* )
void TagStreamerInfo(TVirtualStreamerInfo* )
{}
Int_t ReadBuf(void* , Int_t )
 abstract virtual methods from TBuffer, which should be redefined
void WriteBuf(const void* , Int_t )
char * ReadString(char* , Int_t )
void WriteString(const char* )
Int_t GetVersionOwner() const
Int_t GetMapCount() const
void GetMappedObject(UInt_t , void*& , TClass*& ) const
void MapObject(const TObject* , UInt_t = 1)
void MapObject(const void* , const TClass* , UInt_t = 1)
void Reset()
void InitMap()
void ResetMap()
void SetReadParam(Int_t )
void SetWriteParam(Int_t )
Version_t ReadVersionForMemberWise(const TClass* = 0)
UInt_t WriteVersionMemberWise(const TClass* , Bool_t = kFALSE)
TVirtualStreamerInfo * GetInfo()
TObject * ReadObject(const TClass* )
UShort_t GetPidOffset() const
void SetPidOffset(UShort_t )
Int_t GetBufferDisplacement() const
void SetBufferDisplacement()
void SetBufferDisplacement(Int_t )
TProcessID * GetLastProcessID(TRefTable* ) const
UInt_t GetTRefExecId()
TProcessID * ReadProcessID(UShort_t )
UShort_t WriteProcessID(TProcessID* )
void ForceWriteInfo(TVirtualStreamerInfo* , Bool_t )
 Utilities for TStreamerInfo
void ForceWriteInfoClones(TClonesArray* )
Int_t ReadClones(TClonesArray* , Int_t , Version_t )
Int_t ReadClassEmulated(const TClass* , void* , const TClass* = 0)
 Utilities for TClass
Int_t ReadClassBuffer(const TClass* , void* , const TClass* = 0)
Int_t ReadClassBuffer(const TClass* , void* , Int_t , UInt_t , UInt_t , const TClass* = 0)