ROOT » NET » HTTP » TRootSnifferScanRec

class TRootSnifferScanRec


TRootSnifferScanRec

Structure used to scan hierarchies of ROOT objects
Represents single level of hierarchy


Function Members (Methods)

public:
virtual~TRootSnifferScanRec()
voidBeforeNextChild()
Bool_tCanExpandItem()
Bool_tCanSetFields()
static TClass*Class()
voidCloseNode()
voidCreateNode(const char* _node_name)
Int_tDepth() const
Bool_tDone() const
Int_tExtraFolderLevel()
Bool_tGoInside(TRootSnifferScanRec& super, TObject* obj, const char* obj_name = 0)
virtual TClass*IsA() const
Bool_tIsReadyForResult() const
voidMakeItemName(const char* objname, TString& itemname)
TRootSnifferScanRec&operator=(const TRootSnifferScanRec&)
voidSetField(const char* name, const char* value, Bool_t with_quotes = kTRUE)
Bool_tSetResult(void* obj, TClass* cl, TDataMember* member = 0, Int_t chlds = -1)
voidSetRootClass(TClass* cl)
virtual voidShowMembers(TMemberInspector& insp) const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
TRootSnifferScanRec()
TRootSnifferScanRec(const TRootSnifferScanRec&)

Data Members

public:
TListfItemsNames! list of created items names, need to avoid duplication
Bool_thas_more! indicates that potentially there are more items can be found
Int_tlvl! current level of hierarchy
UInt_tmask! defines operation kind
Int_tnum_childs! number of childs
Int_tnum_fields! number of fields
TRootSnifferScanRec*parent! pointer on parent record
const char*searchpath! current path searched
TStringstarted_node! name of node stared
TRootSnifferStore*store! object to store results

Class Charts

Inheritance Chart:
TRootSnifferScanRec

Function documentation

TRootSnifferScanRec()
 constructor
~TRootSnifferScanRec()
 destructor
void SetField(const char* name, const char* value, Bool_t with_quotes = kTRUE)
 record field for current element
void BeforeNextChild()
 indicates that new child for current element will be started
void MakeItemName(const char* objname, TString& itemname)
 constructs item name from object name
 if special symbols like '/', '#', ':', '&', '?'  are used in object name
 they will be replaced with '_'.
 To avoid item name duplication, additional id number can be appended
void CreateNode(const char* _node_name)
 creates new node with specified name
 if special symbols like "[]&<>" are used, node name
 will be replaced by default name like "extra_item_N" and
 original node name will be recorded as "_original_name" field
 Optionally, object name can be recorded as "_realname" field
void CloseNode()
 close started node
void SetRootClass(TClass* cl)
 set root class name as node kind
 in addition, path to master item (streamer info) specified
 Such master item required to correctly unstream data on JavaScript
Bool_t Done() const
 returns true if scanning is done
 Can happen when searched element is found
Bool_t IsReadyForResult() const
 Checks if result will be accepted.
 Used to verify if sniffer should read object from the file
Bool_t SetResult(void* obj, TClass* cl, TDataMember* member = 0, Int_t chlds = -1)
 set results of scanning
Int_t Depth() const
 returns current depth of scanned hierarchy
Int_t ExtraFolderLevel()
 return level depth till folder, marked with extra flag
 Objects in such folder can be 'expanded' -
 one can get access to all class members
 If no extra folder found, -1 is returned
Bool_t CanExpandItem()
 returns true if current item can be expanded - means one could explore
 objects members
Bool_t GoInside(TRootSnifferScanRec& super, TObject* obj, const char* obj_name = 0)
 Method verifies if new level of hierarchy
 should be started with provided object.
 If required, all necessary nodes and fields will be created
 Used when different collection kinds should be scanned
TRootSnifferScanRec()
Bool_t CanSetFields()
 return true when fields could be set to the hierarchy item