Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TXMLFile Class Referencefinal

Definition at line 25 of file TXMLFile.h.

Public Member Functions

 TXMLFile ()
 
 TXMLFile (const char *filename, Option_t *option="read", const char *title="title", Int_t compression=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault)
 Open or creates local XML file with name filename.
 
virtual ~TXMLFile ()
 destructor of TXMLFile object
 
Bool_t AddXmlComment (const char *comment)
 Add comment line on the top of the xml document This line can only be seen in xml editor and cannot be accessed later with TXMLFile methods.
 
Bool_t AddXmlLine (const char *line)
 Add just one line on the top of xml document For instance, line can contain special xml processing instructions Line should has correct xml syntax that later it can be decoded by xml parser To be parsed later by TXMLFile again, this line should contain either xml comments or xml processing instruction.
 
Bool_t AddXmlStyleSheet (const char *href, const char *type="text/css", const char *title=nullptr, int alternate=-1, const char *media=nullptr, const char *charset=nullptr)
 Adds style sheet definition on the top of xml document Creates <?xml-stylesheet alternate="yes" title="compact" href="small-base.css" type="text/css"?> Attributes href and type must be supplied, other attributes: title, alternate, media, charset are optional if alternate==0, attribute alternate="no" will be created, if alternate>0, attribute alternate="yes" if alternate<0, attribute will not be created This style sheet definition cannot be later access with TXMLFile methods.
 
void Close (Option_t *option="") final
 Close a XML file For more comments see TFile::Close() function.
 
TKeyCreateKey (TDirectory *mother, const TObject *obj, const char *name, Int_t bufsize) final
 create XML key, which will store object in xml structures
 
TKeyCreateKey (TDirectory *mother, const void *obj, const TClass *cl, const char *name, Int_t bufsize) final
 create XML key, which will store object in xml structures
 
void DrawMap (const char *="*", Option_t *="") final
 Draw map of objects in this file.
 
void FillBuffer (char *&) final
 Encode file output buffer.
 
void Flush () final
 Synchronize a file's in-memory and on-disk states.
 
Long64_t GetEND () const final
 
Int_t GetErrno () const final
 Method returning errno.
 
Int_t GetIOVersion () const
 
Int_t GetNbytesFree () const final
 
Int_t GetNbytesInfo () const final
 
Int_t GetNfree () const final
 
Long64_t GetSeekFree () const final
 
Long64_t GetSeekInfo () const final
 
Long64_t GetSize () const final
 Returns the current file size.
 
Bool_t IsOpen () const final
 return kTRUE if file is opened and can be accessed
 
void MakeFree (Long64_t, Long64_t) final
 Mark unused bytes on the file.
 
void MakeProject (const char *, const char *="*", Option_t *="new") final
 Generate source code necessary to access the objects stored in the file.
 
void Map () final
 
void Map (Option_t *) final
 List the contents of a file sequentially.
 
void Paint (Option_t *="") final
 Paint all objects in the file.
 
void Print (Option_t *="") const final
 Print all objects in the file.
 
Bool_t ReadBuffer (char *, Int_t) final
 Read a buffer from the file.
 
Bool_t ReadBuffer (char *, Long64_t, Int_t) final
 Read a buffer from the file at the offset 'pos' in the file.
 
void ReadFree () final
 Read the FREE linked list.
 
Int_t Recover () final
 Attempt to recover file if not correctly closed.
 
Int_t ReOpen (Option_t *mode) final
 Reopen a file with a different access mode, like from READ to See TFile::Open() for details.
 
void ResetErrno () const final
 Method resetting the errno.
 
void Seek (Long64_t, ERelativeTo=kBeg) final
 Seek to a specific position in the file. Pos it either kBeg, kCur or kEnd.
 
void SetEND (Long64_t) final
 
void SetStoreStreamerInfos (Bool_t iConvert=kTRUE) final
 If true, all correspondent to file TStreamerInfo objects will be stored in file this allows to apply schema evolution later for this file may be useful, when file used outside ROOT and TStreamerInfo objects does not required Can be changed only for newly created file.
 
void SetUsedDtd (Bool_t use=kTRUE) final
 Specify usage of DTD for this file.
 
void SetUseNamespaces (Bool_t iUseNamespaces=kTRUE) final
 Specify usage of namespaces in xml file In current implementation every instrumented class in file gets its unique namespace, which is equal to name of class and refer to root documentation page like <TAttPad xmlns:TAttPad="http://root.cern.ch/root/htmldoc/TAttPad.html" version="3"> And xml node for class member gets its name as combination of class name and member name <TAttPad:fLeftMargin v="0.100000"/> <TAttPad:fRightMargin v="0.100000"/> <TAttPad:fBottomMargin v="0.100000"/> and so on Usage of namespace increase size of xml file, but makes file more readable and allows to produce DTD in the case, when in several classes data member has same name Can be changed only for newly created file.
 
void SetXmlLayout (EXMLLayout layout) final
 Change layout of objects in xml file Can be changed only for newly created file.
 
Int_t Sizeof () const final
 Return the size in bytes of the file header.
 
Int_t Write (const char *=nullptr, Int_t=0, Int_t=0) const final
 One can not save a const TDirectory object.
 
Int_t Write (const char *=nullptr, Int_t=0, Int_t=0) final
 Write memory objects to this file.
 
Bool_t WriteBuffer (const char *, Int_t) final
 Write a buffer to the file.
 
void WriteFree () final
 Write FREE linked list on the file.
 
void WriteHeader () final
 Write File Header.
 
void WriteStreamerInfo () final
 convert all TStreamerInfo, used in file, to xml format
 
TXMLEngineXML ()
 
- Public Member Functions inherited from TFile
 TFile ()
 File default Constructor.
 
 TFile (const char *fname, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault)
 Opens or creates a local ROOT file.
 
virtual ~TFile ()
 File destructor.
 
void Copy (TObject &) const override
 Copy this to obj.
 
virtual Bool_t Cp (const char *dst, Bool_t progressbar=kTRUE, UInt_t buffersize=1000000)
 Allows to copy this file to the dst URL.
 
void Delete (const char *namecycle="") override
 Delete object namecycle.
 
void Draw (Option_t *option="") override
 Fill Graphics Structure and Paint.
 
TArchiveFileGetArchive () const
 
Long64_t GetArchiveOffset () const
 
Int_t GetBestBuffer () const
 Return the best buffer size of objects on this file.
 
virtual Long64_t GetBytesRead () const
 
virtual Long64_t GetBytesReadExtra () const
 
virtual Int_t GetBytesToPrefetch () const
 Max number of bytes to prefetch.
 
virtual Long64_t GetBytesWritten () const
 Return the total number of bytes written so far to the file.
 
TFileCacheReadGetCacheRead (const TObject *tree=nullptr) const
 Return a pointer to the current read cache.
 
TFileCacheWriteGetCacheWrite () const
 Return a pointer to the current write cache.
 
TArrayCGetClassIndex () const
 
Int_t GetCompressionAlgorithm () const
 
Float_t GetCompressionFactor ()
 Return the file compression factor.
 
Int_t GetCompressionLevel () const
 
Int_t GetCompressionSettings () const
 
virtual const TUrlGetEndpointUrl () const
 
Int_t GetFd () const
 
TListGetListOfFree () const
 
TObjArrayGetListOfProcessIDs () const
 
virtual TString GetNewUrl ()
 
virtual Int_t GetNProcessIDs () const
 
Option_tGetOption () const override
 
virtual Int_t GetReadCalls () const
 
Int_t GetRecordHeader (char *buf, Long64_t first, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen)
 Read the logical record header starting at a certain postion.
 
Long64_t GetRelOffset () const
 
const TListGetStreamerInfoCache ()
 Returns the cached list of StreamerInfos used in this file.
 
virtual TListGetStreamerInfoList () final
 Read the list of TStreamerInfo objects written to this file.
 
Int_t GetVersion () const
 
virtual void IncrementProcessIDs ()
 
virtual Bool_t IsArchive () const
 
Bool_t IsBinary () const
 
Bool_t IsRaw () const
 
void ls (Option_t *option="") const override
 List file contents.
 
virtual Bool_t Matches (const char *name)
 Return kTRUE if 'url' matches the coordinates of this file.
 
virtual Bool_t MustFlush () const
 
virtual Bool_t ReadBufferAsync (Long64_t offs, Int_t len)
 
virtual Bool_t ReadBuffers (char *buf, Long64_t *pos, Int_t *len, Int_t nbuf)
 Read the nbuf blocks described in arrays pos and len.
 
virtual TProcessIDReadProcessID (UShort_t pidf)
 The TProcessID with number pidf is read from this file.
 
virtual void ReadStreamerInfo ()
 Read the list of StreamerInfo from this file.
 
virtual void SetCacheRead (TFileCacheRead *cache, TObject *tree=0, ECacheAction action=kDisconnect)
 Set a pointer to the read cache.
 
virtual void SetCacheWrite (TFileCacheWrite *cache)
 Set a pointer to the write cache.
 
virtual void SetCompressionAlgorithm (Int_t algorithm=ROOT::RCompressionSetting::EAlgorithm::kUseGlobal)
 See comments for function SetCompressionSettings.
 
virtual void SetCompressionLevel (Int_t level=ROOT::RCompressionSetting::ELevel::kUseMin)
 See comments for function SetCompressionSettings.
 
virtual void SetCompressionSettings (Int_t settings=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault)
 Used to specify the compression level and algorithm.
 
virtual void SetOffset (Long64_t offset, ERelativeTo pos=kBeg)
 Set position from where to start reading.
 
virtual void SetOption (Option_t *option=">")
 
virtual void SetReadCalls (Int_t readcalls=0)
 
virtual void ShowStreamerInfo ()
 Show the StreamerInfo of all classes written to this file.
 
void SumBuffer (Int_t bufsize)
 Increment statistics for buffer sizes of objects in this file.
 
virtual UShort_t WriteProcessID (TProcessID *pid)
 Check if the ProcessID pidd is already in the file, if not, add it and return the index number in the local file list.
 
- Public Member Functions inherited from TDirectoryFile
 TDirectoryFile ()
 Default TDirectoryFile constructor.
 
 TDirectoryFile (const char *name, const char *title, Option_t *option="", TDirectory *motherDir=nullptr)
 Create a new TDirectoryFile.
 
virtual ~TDirectoryFile ()
 Destructor.
 
void Add (TObject *obj, Bool_t replace=kFALSE) override
 
void Append (TObject *obj, Bool_t replace=kFALSE) override
 Append object to this directory.
 
Int_t AppendKey (TKey *key) override
 Insert key in the linked list of keys of this directory.
 
void Browse (TBrowser *b) override
 Browse the content of the directory.
 
void Build (TFile *motherFile=nullptr, TDirectory *motherDir=nullptr) override
 
Bool_t cd () override
 Change current directory to "this" directory.
 
Bool_t cd (const char *path) override
 Change current directory the directory described by the path if given one.
 
TObjectCloneObject (const TObject *obj, Bool_t autoadd=kTRUE) override
 Make a clone of an object using the Streamer facility.
 
TKeyFindKey (const char *keyname) const override
 Find key with name keyname in the current directory.
 
TKeyFindKeyAny (const char *keyname) const override
 Find key with name keyname in the current directory or its subdirectories.
 
TObjectFindObjectAny (const char *name) const override
 Find object by name in the list of memory objects of the current directory or its sub-directories.
 
TObjectFindObjectAnyFile (const char *name) const override
 Scan the memory lists of all files for an object with name.
 
template<class T >
T * Get (const char *namecycle)
 See documentation of TDirectoryFile::Get(const char *namecycle)
 
TObjectGet (const char *namecycle) override
 Return pointer to object identified by namecycle.
 
Int_t GetBufferSize () const override
 Return the buffer size to create new TKeys.
 
const TDatimeGetCreationDate () const
 
TDirectoryGetDirectory (const char *apath, Bool_t printError=false, const char *funcname="GetDirectory") override
 Find a directory named "apath".
 
TFileGetFile () const override
 
TKeyGetKey (const char *name, Short_t cycle=9999) const override
 Return pointer to key with name,cycle.
 
TListGetListOfKeys () const override
 
const TDatimeGetModificationDate () const
 
Int_t GetNbytesKeys () const override
 
Int_t GetNkeys () const override
 
voidGetObjectChecked (const char *namecycle, const char *classname) override
 See documentation of TDirectoryFile::GetObjectCheck(const char *namecycle, const TClass *cl)
 
voidGetObjectChecked (const char *namecycle, const TClass *cl) override
 Return pointer to object identified by namecycle if and only if the actual object is a type suitable to be stored as a pointer to a "expectedClass" If expectedClass is null, no check is performed.
 
voidGetObjectUnchecked (const char *namecycle) override
 Return pointer to object identified by namecycle.
 
Long64_t GetSeekDir () const override
 
Long64_t GetSeekKeys () const override
 
Long64_t GetSeekParent () const override
 
Bool_t IsModified () const override
 
Bool_t IsWritable () const override
 
TDirectorymkdir (const char *name, const char *title="", Bool_t returnExistingDirectory=kFALSE) override
 Create a sub-directory "a" or a hierarchy of sub-directories "a/b/c/...".
 
TFileOpenFile (const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0) override
 Interface to TFile::Open.
 
void Purge (Short_t nkeep=1) override
 Purge lowest key cycles in a directory.
 
void ReadAll (Option_t *option="") override
 Read objects from a ROOT file directory into memory.
 
Int_t ReadKeys (Bool_t forceRead=kTRUE) override
 Read the linked list of keys.
 
Int_t ReadTObject (TObject *obj, const char *keyname) override
 Read object with keyname from the current directory.
 
virtual void ResetAfterMerge (TFileMergeInfo *)
 Reset the TDirectory after its content has been merged into another Directory.
 
void rmdir (const char *name) override
 Removes subdirectory from the directory.
 
void Save () override
 Save recursively all directory keys and headers.
 
Int_t SaveObjectAs (const TObject *obj, const char *filename="", Option_t *option="") const override
 Save object in filename.
 
void SaveSelf (Bool_t force=kFALSE) override
 Save Directory keys and header.
 
void SetBufferSize (Int_t bufsize) override
 Set the default buffer size when creating new TKeys.
 
void SetModified () override
 
void SetSeekDir (Long64_t v) override
 
void SetTRefAction (TObject *ref, TObject *parent) override
 Find the action to be executed in the dictionary of the parent class and store the corresponding exec number into fBits.
 
void SetWritable (Bool_t writable=kTRUE) override
 Set the new value of fWritable recursively.
 
void WriteDirHeader () override
 Overwrite the Directory header record.
 
void WriteKeys () override
 Write Keys linked list on the file.
 
Int_t WriteObjectAny (const void *obj, const char *classname, const char *name, Option_t *option="", Int_t bufsize=0) override
 Write object from pointer of class classname in this directory.
 
Int_t WriteObjectAny (const void *obj, const TClass *cl, const char *name, Option_t *option="", Int_t bufsize=0) override
 Write object of class with dictionary cl in this directory.
 
Int_t WriteTObject (const TObject *obj, const char *name=nullptr, Option_t *option="", Int_t bufsize=0) override
 Write object obj to this directory.
 
- Public Member Functions inherited from TDirectory
 TDirectory ()
 Directory default constructor.
 
 TDirectory (const char *name, const char *title, Option_t *option="", TDirectory *motherDir=nullptr)
 Create a new Directory.
 
virtual ~TDirectory ()
 Destructor.
 
void Clear (Option_t *option="") override
 Delete all objects from a Directory list.
 
virtual void DeleteAll (Option_t *option="")
 Delete all objects from memory.
 
TObjectFindObject (const char *name) const override
 Find object by name in the list of memory objects.
 
TObjectFindObject (const TObject *obj) const override
 Find object in the list of memory objects.
 
template<class T >
T * Get (const char *namecycle)
 See documentation of TDirectoryFile::Get(const char *namecycle)
 
virtual TListGetList () const
 
TObjectGetMother () const
 
TDirectoryGetMotherDir () const
 
template<class T >
void GetObject (const char *namecycle, T *&ptr)
 Get an object with proper type checking.
 
virtual const char * GetPath () const
 Returns the full path of the directory.
 
virtual const char * GetPathStatic () const
 Returns the full path of the directory.
 
TUUID GetUUID () const
 
Bool_t IsBuilt () const
 
Bool_t IsFolder () const override
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
 
virtual void pwd () const
 Print the path of the directory.
 
void RecursiveRemove (TObject *obj) override
 Recursively remove object from a Directory.
 
virtual TObjectRemove (TObject *)
 Remove an object from the in-memory list.
 
virtual void SetMother (TObject *mother)
 
void SetName (const char *newname) override
 Set the name for directory If the directory name is changed after the directory was written once, ROOT currently would NOT change the name of correspondent key in the mother directory.
 
template<typename T >
std::enable_if_t<!std::is_base_of< TObject, T >::value, Int_tWriteObject (const T *obj, const char *name, Option_t *option="", Int_t bufsize=0)
 Write an object with proper type checking.
 
template<typename T >
std::enable_if_t< std::is_base_of< TObject, T >::value, Int_tWriteObject (const T *obj, const char *name, Option_t *option="", Int_t bufsize=0)
 Write an object with proper type checking.
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TNamed &named)
 TNamed copy ctor.
 
 TNamed (const TString &name, const TString &title)
 
virtual ~TNamed ()
 TNamed destructor.
 
virtual TObjectClone (const char *newname="") const
 Make a clone of an object using the Streamer facility.
 
virtual Int_t Compare (const TObject *obj) const
 Compare two TNamed objects.
 
virtual const char * GetName () const
 Returns name of object.
 
virtual const char * GetTitle () const
 Returns title of object.
 
virtual ULong_t Hash () const
 Return hash value for this object.
 
virtual Bool_t IsSortable () const
 
TNamedoperator= (const TNamed &rhs)
 TNamed assignment operator.
 
virtual void SetNameTitle (const char *name, const char *title)
 Set all the TNamed parameters (name and title).
 
virtual void SetTitle (const char *title="")
 Set the title of the TNamed.
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor.
 
 TObject (const TObject &object)
 TObject copy ctor.
 
virtual ~TObject ()
 TObject destructor.
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract.
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad.
 
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 Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object.
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs.
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad 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 Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object.
 
virtual const char * GetIconName () const
 Returns mime type name of object.
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py).
 
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.
 
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).
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
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 [].
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator.
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list.
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory.
 
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.
 
- Public Member Functions inherited from TXMLSetup
 TXMLSetup ()=default
 
 TXMLSetup (const char *opt)
 creates TXMLSetup object getting values from string
 
 TXMLSetup (const TXMLSetup &src)
 copy constructor of TXMLSetup class
 
virtual ~TXMLSetup ()=default
 
Int_t GetNextRefCounter ()
 
TString GetSetupAsString ()
 return setup values as string
 
EXMLLayout GetXmlLayout () const
 
Bool_t IsStoreStreamerInfos () const
 
Bool_t IsUseDtd () const
 
Bool_t IsUseNamespaces () const
 
TXMLSetupoperator= (const TXMLSetup &rhs)
 assign operator
 
void PrintSetup ()
 show setup values
 
const char * XmlClassNameSpaceRef (const TClass *cl)
 produce string which used as reference in class namespace definition
 
const char * XmlConvertClassName (const char *name)
 convert class name to exclude any special symbols like ':', '<' '>' ',' and spaces
 
const char * XmlGetElementName (const TStreamerElement *el)
 return converted name for TStreamerElement
 

Protected Member Functions

void CombineNodesTree (TDirectory *dir, XMLNodePointer_t topnode, Bool_t dolink)
 Connect/disconnect all file nodes to single tree before/after saving.
 
Long64_t DirCreateEntry (TDirectory *) final
 Create key for directory entry in the key.
 
Int_t DirReadKeys (TDirectory *) final
 Read keys for directory Make sense only once, while next time no new subnodes will be created.
 
void DirWriteHeader (TDirectory *) final
 Write the directory header.
 
void DirWriteKeys (TDirectory *) final
 Update key attributes.
 
TKeyXMLFindDirKey (TDirectory *dir)
 Search for key which correspond to directory dir.
 
TDirectoryFindKeyDir (TDirectory *mother, Long64_t keyid)
 Find a directory in motherdir with a seek equal to keyid.
 
InfoListRet GetStreamerInfoListImpl (bool lookupSICache) final
 Read streamerinfo structures from xml format and provide them in the list It is user responsibility to destroy this list.
 
void InitXmlFile (Bool_t create)
 initialize xml file and correspondent structures identical to TFile::Init() function
 
Bool_t ReadFromFile ()
 read document from file Now full content of document reads into the memory Then document decomposed to separate keys and streamer info structures All irrelevant data will be cleaned
 
Int_t ReadKeysList (TDirectory *dir, XMLNodePointer_t topnode)
 Read list of keys for directory.
 
void ReadStreamerElement (XMLNodePointer_t node, TStreamerInfo *info)
 read and reconstruct single TStreamerElement from xml node
 
void SaveToFile ()
 Saves xml structures to the file xml elements are kept in list of TKeyXML objects When saving, all this elements are linked to root xml node At the end StreamerInfo structures are added After xml document is saved, all nodes will be unlinked from root node and kept in memory.
 
void StoreStreamerElement (XMLNodePointer_t node, TStreamerElement *elem)
 store data of single TStreamerElement in streamer node
 
Int_t SysClose (Int_t) final
 Interface to system close. All arguments like in POSIX close().
 
Int_t SysOpen (const char *, Int_t, UInt_t) final
 Interface to system open. All arguments like in POSIX open().
 
Int_t SysRead (Int_t, void *, Int_t) final
 Interface to system read. All arguments like in POSIX read().
 
Long64_t SysSeek (Int_t, Long64_t, Int_t) final
 Interface to system lseek.
 
Int_t SysStat (Int_t, Long_t *, Long64_t *, Long_t *, Long_t *) final
 Return file stat information.
 
Int_t SysSync (Int_t) final
 Interface to system fsync. All arguments like in POSIX fsync().
 
Int_t SysWrite (Int_t, const void *, Int_t) final
 Interface to system write. All arguments like in POSIX write().
 
- Protected Member Functions inherited from TFile
Bool_t FlushWriteCache ()
 Flush the write cache if active.
 
virtual EAsyncOpenStatus GetAsyncOpenStatus ()
 
virtual void Init (Bool_t create)
 Initialize a TFile object.
 
Int_t MakeProjectParMake (const char *packname, const char *filename)
 Create makefile at 'filemake' for PAR package 'pack'.
 
Int_t MakeProjectParProofInf (const char *packname, const char *proofinfdir)
 Create BUILD.sh and SETUP.C under 'proofinf' for PAR package 'pack'.
 
Int_t ReadBufferViaCache (char *buf, Int_t len)
 Read buffer via cache.
 
Int_t WriteBufferViaCache (const char *buf, Int_t len)
 Write buffer via cache.
 
- Protected Member Functions inherited from TDirectoryFile
void BuildDirectoryFile (TFile *motherFile, TDirectory *motherDir)
 Initialise directory to defaults.
 
void CleanTargets ()
 Clean the pointers to this object (gDirectory, TContext, etc.)
 
void InitDirectoryFile (TClass *cl=nullptr)
 Initialize the key associated with this directory (and the related data members.
 
- Protected Member Functions inherited from TDirectory
 TDirectory (const TDirectory &directory)=delete
 
void BuildDirectory (TFile *motherFile, TDirectory *motherDir)
 Initialise directory to defaults.
 
Bool_t cd1 (const char *path)
 flag to add histograms, graphs,etc to the directory
 
void CleanTargets ()
 Clean the pointers to this object (gDirectory, TContext, etc.).
 
void FillFullPath (TString &buf) const
 Recursive method to fill full path for directory.
 
void operator= (const TDirectory &)=delete
 
void RegisterContext (TContext *ctxt)
 Register a TContext pointing to this TDirectory object.
 
void RegisterGDirectory (SharedGDirectory_t &ptr)
 Register a std::atomic<TDirectory*> that will soon be pointing to this TDirectory object.
 
void UnregisterContext (TContext *ctxt)
 UnRegister a TContext pointing to this TDirectory object.
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected).
 
void MakeZombie ()
 
- Protected Member Functions inherited from TXMLSetup
Int_t AtoI (const char *sbuf, Int_t def=0, const char *errinfo=nullptr)
 converts string to integer.
 
const char * GetElItemName (TStreamerElement *el)
 get item name for given element
 
Bool_t IsValidXmlSetup (const char *setupstr)
 checks if string is valid setup
 
Bool_t ReadSetupFromStr (const char *setupstr)
 get values from string
 
TClassXmlDefineClass (const char *xmlClassName)
 define class for the converted class name, where special symbols were replaced by '_'
 

Static Protected Member Functions

static void ProduceFileNames (const char *filename, TString &fname, TString &dtdname)
 function produces pair of xml and dtd file names
 
- Static Protected Member Functions inherited from TDirectory
static Bool_t Cd1 (const char *path)
 Change current directory to "path".
 
static SharedGDirectory_tGetSharedLocalCurrentDirectory ()
 Return the (address of) a shared pointer to the struct holding the actual thread local gDirectory pointer and the atomic_flag for its lock.
 

Protected Attributes

XMLDocPointer_t fDoc {nullptr}
 
Int_t fIOVersion {0}
 object for interface with xml library
 
Long64_t fKeyCounter {0}
 indicates format of ROOT xml file
 
XMLNodePointer_t fStreamerInfoNode {nullptr}
 
std::unique_ptr< TXMLEnginefXML
 pointer of node with streamer info data
 
- Protected Attributes inherited from TFile
TArchiveFilefArchive {nullptr}
 !Archive file from which we read this file
 
Long64_t fArchiveOffset {0}
 !Offset at which file starts in archive
 
TFileOpenHandlefAsyncHandle {nullptr}
 !For proper automatic cleanup
 
EAsyncOpenStatus fAsyncOpenStatus {kAOSNotAsync}
 !Status of an asynchronous open request
 
Long64_t fBEGIN {0}
 First used byte in file.
 
Long64_t fBytesRead {0}
 Number of bytes read from this file.
 
Long64_t fBytesReadExtra {0}
 Number of extra bytes (overhead) read by the readahead buffer.
 
Long64_t fBytesWrite {0}
 Number of bytes written to this file.
 
TFileCacheReadfCacheRead {nullptr}
 !Pointer to the read cache (if any)
 
TMapfCacheReadMap {nullptr}
 !Pointer to the read cache (if any)
 
TFileCacheWritefCacheWrite {nullptr}
 !Pointer to the write cache (if any)
 
TArrayCfClassIndex {nullptr}
 !Index of TStreamerInfo classes written to this file
 
Int_t fCompress {0}
 Compression level and algorithm.
 
Int_t fD {-1}
 File descriptor.
 
Long64_t fEND {0}
 Last used byte in file.
 
TListfFree {nullptr}
 Free segments linked list table.
 
bool fGlobalRegistration = true
 ! if true, bypass use of global lists
 
TListfInfoCache {nullptr}
 !Cached list of the streamer infos in this file
 
Bool_t fInitDone {kFALSE}
 !True if the file has been initialized
 
Bool_t fIsArchive {kFALSE}
 !True if this is a pure archive file
 
Bool_t fIsPcmFile {kFALSE}
 !True if the file is a ROOT pcm file.
 
Bool_t fIsRootFile {kTRUE}
 !True is this is a ROOT file, raw file otherwise
 
Bool_t fMustFlush {kTRUE}
 !True if the file buffers must be flushed
 
Int_t fNbytesFree {0}
 Number of bytes for free segments structure.
 
Int_t fNbytesInfo {0}
 Number of bytes for StreamerInfo record.
 
Bool_t fNoAnchorInName {kFALSE}
 !True if we don't want to force the anchor to be appended to the file name
 
Int_t fNProcessIDs {0}
 Number of TProcessID written to this file.
 
Long64_t fOffset {0}
 !Seek offset cache
 
TListfOpenPhases {nullptr}
 !Time info about open phases
 
TString fOption
 File options.
 
TObjArrayfProcessIDs {nullptr}
 !Array of pointers to TProcessIDs
 
Int_t fReadCalls {0}
 Number of read calls ( not counting the cache calls )
 
TString fRealName
 Effective real file name (not original url)
 
Long64_t fSeekFree {0}
 Location on disk of free segments structure.
 
Long64_t fSeekInfo {0}
 Location on disk of StreamerInfo record.
 
Double_t fSum2Buffer {0}
 Sum of squares of buffer sizes of objects written so far.
 
Double_t fSumBuffer {0}
 Sum of buffer sizes of objects written so far.
 
Char_t fUnits {0}
 Number of bytes for file pointers.
 
TUrl fUrl
 !URL of file
 
Int_t fVersion {0}
 File format version.
 
std::mutex fWriteMutex
 !Lock for writing baskets / keys into the file.
 
Int_t fWritten {0}
 Number of objects written so far.
 
- Protected Attributes inherited from TDirectoryFile
Int_t fBufferSize {0}
 Default buffer size to create new TKeys.
 
TDatime fDatimeC
 Date and time when directory is created.
 
TDatime fDatimeM
 Date and time of last modification.
 
TFilefFile {nullptr}
 Pointer to current file in memory.
 
TListfKeys {nullptr}
 Pointer to keys list in memory.
 
Bool_t fModified {kFALSE}
 True if directory has been modified.
 
Int_t fNbytesKeys {0}
 Number of bytes for the keys.
 
Int_t fNbytesName {0}
 Number of bytes in TNamed at creation time.
 
Long64_t fSeekDir {0}
 Location of directory on file.
 
Long64_t fSeekKeys {0}
 Location of Keys record on file.
 
Long64_t fSeekParent {0}
 Location of parent directory on file.
 
Bool_t fWritable {kFALSE}
 True if directory is writable.
 
- Protected Attributes inherited from TDirectory
TContextfContext {nullptr}
 Buffer for GetPath() function.
 
std::atomic< size_t > fContextPeg {0}
 thread local gDirectory pointing to this object.
 
std::vector< SharedGDirectory_tfGDirectories
 
TListfList {nullptr}
 
TObjectfMother {nullptr}
 
TString fPathBuffer
 
std::atomic_flag fSpinLock
 Counter delaying the TDirectory destructor from finishing.
 
TUUID fUUID
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 
- Protected Attributes inherited from TXMLSetup
Int_t fRefCounter {0}
 
Bool_t fStoreStreamerInfos {kTRUE}
 
TString fStrBuf
 counter , used to build id of xml references
 
Bool_t fUseDtd {kFALSE}
 
Bool_t fUseNamespaces {kFALSE}
 
EXMLLayout fXmlLayout {kSpecialized}
 

Private Member Functions

 TXMLFile (const TXMLFile &)=delete
 
void operator= (const TXMLFile &)=delete
 

Additional Inherited Members

- Public Types inherited from TFile
enum  { kStartBigFile = 2000000000 }
 
enum  EAsyncOpenStatus { kAOSNotAsync = -1 , kAOSFailure = 0 , kAOSInProgress = 1 , kAOSSuccess = 2 }
 Asynchronous open request status. More...
 
enum  ECacheAction { kDisconnect = 0 , kDoNotDisconnect = 1 }
 TTreeCache flushing semantics. More...
 
enum  EFileType {
  kDefault = 0 , kLocal = 1 , kNet = 2 , kWeb = 3 ,
  kFile = 4 , kMerge = 5
}
 File type. More...
 
enum  EOpenTimeOut { kInstantTimeout = 0 , kEternalTimeout = 999999999 }
 Open timeout constants. More...
 
enum  ERelativeTo { kBeg = 0 , kCur = 1 , kEnd = 2 }
 
enum  EStatusBits {
  kRecovered = BIT(10) , kHasReferences = BIT(11) , kDevNull = BIT(12) , kWriteError = BIT(14) ,
  kBinaryFile = BIT(15) , kRedirected = BIT(16) , kReproducible = BIT(17)
}
 TFile status bits. BIT(13) is taken up by TObject. More...
 
- Public Types inherited from TDirectoryFile
enum  EStatusBits { kCloseDirectory = BIT(7) }
 
- Public Types inherited from TObject
enum  {
  kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 ,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = BIT(0) , kOverwrite = BIT(1) , kWriteDelete = BIT(2) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = BIT(3) }
 
enum  EStatusBits {
  kCanDelete = BIT(0) , kMustCleanup = BIT(3) , kIsReferenced = BIT(4) , kHasUUID = BIT(5) ,
  kCannotPick = BIT(6) , kNoContextMenu = BIT(8) , kInvalidObject = BIT(13)
}
 
- Public Types inherited from TXMLSetup
enum  EXMLLayout { kSpecialized = 2 , kGeneralized = 3 }
 
- Static Public Member Functions inherited from TFile
static TFileOpenHandleAsyncOpen (const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
 Submit an asynchronous open request.
 
static Bool_t Cp (const char *src, const char *dst, Bool_t progressbar=kTRUE, UInt_t buffersize=1000000)
 Allows to copy file from src to dst URL.
 
static TFile *& CurrentFile ()
 Return the current ROOT file if any.
 
static EAsyncOpenStatus GetAsyncOpenStatus (const char *name)
 Get status of the async open request related to 'name'.
 
static EAsyncOpenStatus GetAsyncOpenStatus (TFileOpenHandle *handle)
 Get status of the async open request related to 'handle'.
 
static const char * GetCacheFileDir ()
 Get the directory where to locally stage/cache remote files.
 
static const TUrlGetEndpointUrl (const char *name)
 Get final URL for file being opened asynchronously.
 
static Long64_t GetFileBytesRead ()
 Static function returning the total number of bytes read from all files.
 
static Long64_t GetFileBytesWritten ()
 Static function returning the total number of bytes written to all files.
 
static Long64_t GetFileCounter ()
 
static Int_t GetFileReadCalls ()
 Static function returning the total number of read calls from all files.
 
static Bool_t GetOnlyStaged ()
 Returns staged only flag.
 
static UInt_t GetOpenTimeout ()
 Returns open timeout (in ms).
 
static Int_t GetReadaheadSize ()
 Static function returning the readahead buffer size.
 
static Bool_t GetReadStreamerInfo ()
 If the streamerinfos are to be read at file opening.
 
static EFileType GetType (const char *name, Option_t *option="", TString *prefix=nullptr)
 Resolve the file type as a function of the protocol field in 'name'.
 
static void IncrementFileCounter ()
 
static TFileOpen (const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
 Create / open a file.
 
static TFileOpen (TFileOpenHandle *handle)
 Waits for the completion of an asynchronous open request.
 
static Bool_t SetCacheFileDir (ROOT::Internal::TStringView cacheDir, Bool_t operateDisconnected=kTRUE, Bool_t forceCacheread=kFALSE)
 
static Bool_t SetCacheFileDir (std::string_view cacheDir, Bool_t operateDisconnected=kTRUE, Bool_t forceCacheread=kFALSE)
 Sets the directory where to locally stage/cache remote files.
 
static void SetFileBytesRead (Long64_t bytes=0)
 
static void SetFileBytesWritten (Long64_t bytes=0)
 
static void SetFileReadCalls (Int_t readcalls=0)
 
static Bool_t SetOnlyStaged (Bool_t onlystaged)
 Sets only staged flag.
 
static UInt_t SetOpenTimeout (UInt_t timeout)
 Sets open timeout time (in ms). Returns previous timeout value.
 
static void SetReadaheadSize (Int_t bufsize=256000)
 
static void SetReadStreamerInfo (Bool_t readinfo=kTRUE)
 Specify if the streamerinfos must be read at file opening.
 
static Bool_t ShrinkCacheFileDir (Long64_t shrinkSize, Long_t cleanupInteval=0)
 Try to shrink the cache to the desired size.
 
- Static Public Member Functions inherited from TDirectory
static void AddDirectory (Bool_t add=kTRUE)
 Sets the flag controlling the automatic add objects like histograms, TGraph2D, etc in memory.
 
static Bool_t AddDirectoryStatus ()
 Static function: see TDirectory::AddDirectory for more comments.
 
static Bool_t Cd (const char *path)
 Change current directory to "path".
 
static std::atomic< TDirectory * > & CurrentDirectory ()
 Return the current directory for the current thread.
 
static void DecodeNameCycle (const char *namecycle, char *name, Short_t &cycle, const size_t namesize=0)
 Decode a namecycle "aap;2" into name "aap" and cycle "2".
 
static void EncodeNameCycle (char *buffer, const char *name, Short_t cycle)
 Encode the name and cycle into buffer like: "aap;2".
 
- Static Public Member Functions inherited from TObject
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.
 
- Static Public Member Functions inherited from TXMLSetup
static TString DefaultXmlSetup ()
 return default value for XML setup
 
static void SetNameSpaceBase (const char *namespacebase)
 set namespace base
 
- Protected Types inherited from TDirectory
using SharedGDirectory_t = std::shared_ptr< std::atomic< TDirectory * > >
 Pointer to a list of TContext object pointing to this TDirectory.
 
- Protected Types inherited from TObject
enum  { kOnlyPrepStep = BIT(3) }
 
- Static Protected Attributes inherited from TFile
static TListfgAsyncOpenRequests = nullptr
 
static std::atomic< Long64_tfgBytesRead {0}
 Number of bytes read by all TFile objects.
 
static std::atomic< Long64_tfgBytesWrite {0}
 Number of bytes written by all TFile objects.
 
static TString fgCacheFileDir
 Directory where to locally stage files.
 
static Bool_t fgCacheFileDisconnected = kTRUE
 Indicates, we trust in the files in the cache dir without stat on the cached file.
 
static Bool_t fgCacheFileForce = kFALSE
 Indicates, to force all READ to CACHEREAD.
 
static std::atomic< Long64_tfgFileCounter {0}
 Counter for all opened files.
 
static Bool_t fgOnlyStaged = kFALSE
 Before the file is opened, it is checked, that the file is staged, if not, the open fails.
 
static UInt_t fgOpenTimeout = TFile::kEternalTimeout
 Timeout for open operations in ms - 0 corresponds to blocking i/o.
 
static Int_t fgReadaheadSize = 256000
 Readahead buffer size.
 
static std::atomic< Int_tfgReadCalls {0}
 Number of bytes read from all TFile objects.
 
static Bool_t fgReadInfo = kTRUE
 if true (default) ReadStreamerInfo is called when opening a file
 
static ROOT::Internal::RConcurrentHashColl fgTsSIHashes
 !TS Set of hashes built from read streamer infos
 
- Static Protected Attributes inherited from TDirectory
static Bool_t fgAddDirectory = kTRUE
 MSVC doesn't support = ATOMIC_FLAG_INIT;.
 
- Static Protected Attributes inherited from TXMLSetup
static TString fgNameSpaceBase = "http://root.cern.ch/root/htmldoc/"
 buffer, used in XmlDefineClass() function
 

#include <TXMLFile.h>

Inheritance diagram for TXMLFile:
[legend]

Constructor & Destructor Documentation

◆ TXMLFile() [1/3]

TXMLFile::TXMLFile ( const TXMLFile )
privatedelete

◆ TXMLFile() [2/3]

TXMLFile::TXMLFile ( )
inline

Definition at line 51 of file TXMLFile.h.

◆ TXMLFile() [3/3]

TXMLFile::TXMLFile ( const char *  filename,
Option_t option = "read",
const char *  title = "title",
Int_t  compression = ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault 
)

Open or creates local XML file with name filename.

It is recommended to specify filename as "<file>.xml". The suffix ".xml" will be used by object browsers to automatically identify the file as a XML file. If the constructor fails in any way IsZombie() will return true. Use IsOpen() to check if the file is (still) open.

If option = NEW or CREATE create a new file and open it for writing, if the file already exists the file is not opened. = RECREATE create a new file, if the file already exists it will be overwritten. = 2xoo create a new file with specified xml settings for more details see TXMLSetup class = UPDATE open an existing file for writing. if no file exists, it is created. = READ open an existing file for reading.

For more details see comments for TFile::TFile() constructor

TXMLFile does not support TTree objects

Definition at line 116 of file TXMLFile.cxx.

◆ ~TXMLFile()

TXMLFile::~TXMLFile ( )
virtual

destructor of TXMLFile object

Definition at line 355 of file TXMLFile.cxx.

Member Function Documentation

◆ AddXmlComment()

Bool_t TXMLFile::AddXmlComment ( const char *  comment)

Add comment line on the top of the xml document This line can only be seen in xml editor and cannot be accessed later with TXMLFile methods.

Definition at line 963 of file TXMLFile.cxx.

◆ AddXmlLine()

Bool_t TXMLFile::AddXmlLine ( const char *  line)

Add just one line on the top of xml document For instance, line can contain special xml processing instructions Line should has correct xml syntax that later it can be decoded by xml parser To be parsed later by TXMLFile again, this line should contain either xml comments or xml processing instruction.

Definition at line 997 of file TXMLFile.cxx.

◆ AddXmlStyleSheet()

Bool_t TXMLFile::AddXmlStyleSheet ( const char *  href,
const char *  type = "text/css",
const char *  title = nullptr,
int  alternate = -1,
const char *  media = nullptr,
const char *  charset = nullptr 
)

Adds style sheet definition on the top of xml document Creates <?xml-stylesheet alternate="yes" title="compact" href="small-base.css" type="text/css"?> Attributes href and type must be supplied, other attributes: title, alternate, media, charset are optional if alternate==0, attribute alternate="no" will be created, if alternate>0, attribute alternate="yes" if alternate<0, attribute will not be created This style sheet definition cannot be later access with TXMLFile methods.

Definition at line 981 of file TXMLFile.cxx.

◆ Close()

void TXMLFile::Close ( Option_t option = "")
finalvirtual

Close a XML file For more comments see TFile::Close() function.

Reimplemented from TFile.

Definition at line 299 of file TXMLFile.cxx.

◆ CombineNodesTree()

void TXMLFile::CombineNodesTree ( TDirectory dir,
XMLNodePointer_t  topnode,
Bool_t  dolink 
)
protected

Connect/disconnect all file nodes to single tree before/after saving.

Definition at line 535 of file TXMLFile.cxx.

◆ CreateKey() [1/2]

TKey * TXMLFile::CreateKey ( TDirectory mother,
const TObject obj,
const char *  name,
Int_t  bufsize 
)
finalvirtual

create XML key, which will store object in xml structures

Reimplemented from TFile.

Definition at line 408 of file TXMLFile.cxx.

◆ CreateKey() [2/2]

TKey * TXMLFile::CreateKey ( TDirectory mother,
const void obj,
const TClass cl,
const char *  name,
Int_t  bufsize 
)
finalvirtual

create XML key, which will store object in xml structures

Reimplemented from TFile.

Definition at line 416 of file TXMLFile.cxx.

◆ DirCreateEntry()

Long64_t TXMLFile::DirCreateEntry ( TDirectory dir)
finalprotectedvirtual

Create key for directory entry in the key.

Reimplemented from TFile.

Definition at line 1008 of file TXMLFile.cxx.

◆ DirReadKeys()

Int_t TXMLFile::DirReadKeys ( TDirectory dir)
finalprotectedvirtual

Read keys for directory Make sense only once, while next time no new subnodes will be created.

Reimplemented from TFile.

Definition at line 1069 of file TXMLFile.cxx.

◆ DirWriteHeader()

void TXMLFile::DirWriteHeader ( TDirectory dir)
finalprotectedvirtual

Write the directory header.

Reimplemented from TFile.

Definition at line 1096 of file TXMLFile.cxx.

◆ DirWriteKeys()

void TXMLFile::DirWriteKeys ( TDirectory )
finalprotectedvirtual

Update key attributes.

Reimplemented from TFile.

Definition at line 1081 of file TXMLFile.cxx.

◆ DrawMap()

void TXMLFile::DrawMap ( const char *  keys = "*",
Option_t option = "" 
)
inlinefinalvirtual

Draw map of objects in this file.

Reimplemented from TFile.

Definition at line 58 of file TXMLFile.h.

◆ FillBuffer()

void TXMLFile::FillBuffer ( char *&  buffer)
inlinefinalvirtual

Encode file output buffer.

The file output buffer contains only the FREE data record.

Reimplemented from TFile.

Definition at line 59 of file TXMLFile.h.

◆ FindDirKey()

TKeyXML * TXMLFile::FindDirKey ( TDirectory dir)
protected

Search for key which correspond to directory dir.

Definition at line 1024 of file TXMLFile.cxx.

◆ FindKeyDir()

TDirectory * TXMLFile::FindKeyDir ( TDirectory mother,
Long64_t  keyid 
)
protected

Find a directory in motherdir with a seek equal to keyid.

Definition at line 1047 of file TXMLFile.cxx.

◆ Flush()

void TXMLFile::Flush ( )
inlinefinalvirtual

Synchronize a file's in-memory and on-disk states.

Reimplemented from TFile.

Definition at line 60 of file TXMLFile.h.

◆ GetEND()

Long64_t TXMLFile::GetEND ( ) const
inlinefinalvirtual

Reimplemented from TFile.

Definition at line 62 of file TXMLFile.h.

◆ GetErrno()

Int_t TXMLFile::GetErrno ( ) const
inlinefinalvirtual

Method returning errno.

Reimplemented from TFile.

Definition at line 63 of file TXMLFile.h.

◆ GetIOVersion()

Int_t TXMLFile::GetIOVersion ( ) const
inline

Definition at line 73 of file TXMLFile.h.

◆ GetNbytesFree()

Int_t TXMLFile::GetNbytesFree ( ) const
inlinefinalvirtual

Reimplemented from TFile.

Definition at line 68 of file TXMLFile.h.

◆ GetNbytesInfo()

Int_t TXMLFile::GetNbytesInfo ( ) const
inlinefinalvirtual

Reimplemented from TFile.

Definition at line 67 of file TXMLFile.h.

◆ GetNfree()

Int_t TXMLFile::GetNfree ( ) const
inlinefinalvirtual

Reimplemented from TFile.

Definition at line 66 of file TXMLFile.h.

◆ GetSeekFree()

Long64_t TXMLFile::GetSeekFree ( ) const
inlinefinalvirtual

Reimplemented from TFile.

Definition at line 69 of file TXMLFile.h.

◆ GetSeekInfo()

Long64_t TXMLFile::GetSeekInfo ( ) const
inlinefinalvirtual

Reimplemented from TFile.

Definition at line 70 of file TXMLFile.h.

◆ GetSize()

Long64_t TXMLFile::GetSize ( ) const
inlinefinalvirtual

Returns the current file size.

Returns -1 in case the file could not be stat'ed.

Reimplemented from TFile.

Definition at line 71 of file TXMLFile.h.

◆ GetStreamerInfoListImpl()

TFile::InfoListRet TXMLFile::GetStreamerInfoListImpl ( bool  lookupSICache)
finalprotectedvirtual

Read streamerinfo structures from xml format and provide them in the list It is user responsibility to destroy this list.

Reimplemented from TFile.

Definition at line 715 of file TXMLFile.cxx.

◆ InitXmlFile()

void TXMLFile::InitXmlFile ( Bool_t  create)
protected

initialize xml file and correspondent structures identical to TFile::Init() function

Definition at line 262 of file TXMLFile.cxx.

◆ IsOpen()

Bool_t TXMLFile::IsOpen ( ) const
finalvirtual

return kTRUE if file is opened and can be accessed

Reimplemented from TFile.

Definition at line 363 of file TXMLFile.cxx.

◆ MakeFree()

void TXMLFile::MakeFree ( Long64_t  first,
Long64_t  last 
)
inlinefinalvirtual

Mark unused bytes on the file.

The list of free segments is in the fFree linked list. When an object is deleted from the file, the freed space is added into the FREE linked list (fFree). The FREE list consists of a chain of consecutive free segments on the file. At the same time, the first 4 bytes of the freed record on the file are overwritten by GAPSIZE where GAPSIZE = -(Number of bytes occupied by the record).

Reimplemented from TFile.

Definition at line 77 of file TXMLFile.h.

◆ MakeProject()

void TXMLFile::MakeProject ( const char *  dirname,
const char *  classes = "*",
Option_t option = "new" 
)
inlinefinalvirtual

Generate source code necessary to access the objects stored in the file.

Generate code in directory dirname for all classes specified in argument classes If classes = "*" (default and currently the only supported value), the function generates an include file for each class in the StreamerInfo list for which a TClass object does not exist.

The code generated includes:

  • dirnameProjectHeaders.h, which contains one #include statement per generated header file
  • dirnameProjectSource.cxx,which contains all the constructors and destructors implementation. and one header per class that is not nested inside another class. The header file name is the fully qualified name of the class after all the special characters "<>,:" are replaced by underscored. For example for std::pair<edm::Vertex,int> the file name is pair_edm__Vertex_int_.h

In the generated classes, map, multimap when the first template parameter is a class are replaced by a vector of pair. set and multiset when the tempalte parameter is a class are replaced by a vector. This is required since we do not have the code needed to order and/or compare the object of the classes. This is a quick explanation of the options available:

Option Details
new (default) A new directory dirname is created. If dirname already exist, an error message is printed and the function returns.
recreate If dirname does not exist, it is created (like in "new"). If dirname already exist, all existing files in dirname are deleted before creating the new files.
update New classes are added to the existing directory. Existing classes with the same name are replaced by the new definition. If the directory dirname doest not exist, same effect as "new".
genreflex Use genreflex rather than rootcint to generate the dictionary.
par Create a PAR file with the minimal set of code needed to read the content of the ROOT file. The name of the PAR file is basename(dirname), with extension '.par' enforced; the PAR file will be created at dirname(dirname).

If, in addition to one of the 3 above options, the option "+" is specified, the function will generate:

  • a script called MAKEP to build the shared lib
  • a dirnameLinkDef.h file
  • rootcint will be run to generate a dirnameProjectDict.cxx file
  • dirnameProjectDict.cxx will be compiled with the current options in compiledata.h
  • a shared lib dirname.so will be created. If the option "++" is specified, the generated shared lib is dynamically linked with the current executable module. If the option "+" and "nocompile" are specified, the utility files are generated as in the option "+" but they are not executed. Example: file.MakeProject("demo","*","recreate++");
  • creates a new directory demo unless it already exist
  • clear the previous directory content
  • generate the xxx.h files for all classes xxx found in this file and not yet known to the CINT dictionary.
  • creates the build script MAKEP
  • creates a LinkDef.h file
  • runs rootcint generating demoProjectDict.cxx
  • compiles demoProjectDict.cxx into demoProjectDict.o
  • generates a shared lib demo.so
  • dynamically links the shared lib demo.so to the executable If only the option "+" had been specified, one can still link the shared lib to the current executable module with:
    gSystem->load("demo/demo.so");
    
    The following feature is not yet enabled: One can restrict the list of classes to be generated by using expressions like:
    classes = "Ali*" generate code only for classes starting with Ali
    classes = "myClass" generate code for class MyClass only.
    

Reimplemented from TFile.

Definition at line 78 of file TXMLFile.h.

◆ Map() [1/2]

void TXMLFile::Map ( )
inlinefinalvirtual

Reimplemented from TFile.

Definition at line 80 of file TXMLFile.h.

◆ Map() [2/2]

void TXMLFile::Map ( Option_t opt)
inlinefinalvirtual

List the contents of a file sequentially.

For each logical record found, it prints:

Date/Time  Record_Adress Logical_Record_Length  ClassName  CompressionFactor

Example of output

20010404/150437  At:64        N=150       TFile
20010404/150440  At:214       N=28326     TBasket        CX =  1.13
20010404/150440  At:28540     N=29616     TBasket        CX =  1.08
20010404/150440  At:58156     N=29640     TBasket        CX =  1.08
20010404/150440  At:87796     N=29076     TBasket        CX =  1.10
20010404/150440  At:116872    N=10151     TBasket        CX =  3.15
20010404/150441  At:127023    N=28341     TBasket        CX =  1.13
20010404/150441  At:155364    N=29594     TBasket        CX =  1.08
20010404/150441  At:184958    N=29616     TBasket        CX =  1.08
20010404/150441  At:214574    N=29075     TBasket        CX =  1.10
20010404/150441  At:243649    N=9583      TBasket        CX =  3.34
20010404/150442  At:253232    N=28324     TBasket        CX =  1.13
20010404/150442  At:281556    N=29641     TBasket        CX =  1.08
20010404/150442  At:311197    N=29633     TBasket        CX =  1.08
20010404/150442  At:340830    N=29091     TBasket        CX =  1.10
20010404/150442  At:369921    N=10341     TBasket        CX =  3.09
20010404/150442  At:380262    N=509       TH1F           CX =  1.93
20010404/150442  At:380771    N=1769      TH2F           CX =  4.32
20010404/150442  At:382540    N=1849      TProfile       CX =  1.65
20010404/150442  At:384389    N=18434     TNtuple        CX =  4.51
20010404/150442  At:402823    N=307       KeysList
20010404/150443  At:403130    N=4548      StreamerInfo   CX =  3.65
20010404/150443  At:407678    N=86        FreeSegments
20010404/150443  At:407764    N=1         END

If the parameter opt contains "forComp", the Date/Time is ommitted and the decompressed size is also printed.

Record_Adress Logical_Record_Length Key_Length Object_Record_Length ClassName CompressionFactor

If the parameter opt contains "extended", the name and title of the keys are added: 20200820/155031 At:100 N=180 TFile name: hsimple.root title: Demo ROOT file with histograms 220200820/155032 At:280 N=28880 TBasket CX = 1.11 name: random title: ntuple 220200820/155032 At:29160 N=29761 TBasket CX = 1.08 name: px title: ntuple 220200820/155032 At:58921 N=29725 TBasket CX = 1.08 name: py title: ntuple 220200820/155032 At:88646 N=29209 TBasket CX = 1.10 name: pz title: ntuple 220200820/155032 At:117855 N=10197 TBasket CX = 3.14 name: i title: ntuple ... 20200820/155032 At:405110 N=808 TNtuple CX = 3.53 name: ntuple title: Demo ntuple 20200820/155706 At:405918 N=307 KeysList name: hsimple.root title: Demo ROOT file with histograms 20200820/155032 At:406225 N=8556 StreamerInfo CX = 3.42 name: StreamerInfo title: Doubly linked list 20200820/155708 At:414781 N=86 FreeSegments name: hsimple.root title: Demo ROOT file with histograms 20200820/155708 At:414867 N=1 END

Note: The combined size of the classname, name and title is truncated to 476 characters (a little more for regular keys of small files)

Reimplemented from TFile.

Definition at line 79 of file TXMLFile.h.

◆ operator=()

void TXMLFile::operator= ( const TXMLFile )
privatedelete

◆ Paint()

void TXMLFile::Paint ( Option_t option = "")
inlinefinalvirtual

Paint all objects in the file.

Reimplemented from TFile.

Definition at line 81 of file TXMLFile.h.

◆ Print()

void TXMLFile::Print ( Option_t option = "") const
inlinefinalvirtual

Print all objects in the file.

Reimplemented from TFile.

Definition at line 82 of file TXMLFile.h.

◆ ProduceFileNames()

void TXMLFile::ProduceFileNames ( const char *  filename,
TString fname,
TString dtdname 
)
staticprotected

function produces pair of xml and dtd file names

Definition at line 424 of file TXMLFile.cxx.

◆ ReadBuffer() [1/2]

Bool_t TXMLFile::ReadBuffer ( char *  buf,
Int_t  len 
)
inlinefinalvirtual

Read a buffer from the file.

This is the basic low level read operation. Returns kTRUE in case of failure.

Reimplemented from TFile.

Definition at line 83 of file TXMLFile.h.

◆ ReadBuffer() [2/2]

Bool_t TXMLFile::ReadBuffer ( char *  buf,
Long64_t  pos,
Int_t  len 
)
inlinefinalvirtual

Read a buffer from the file at the offset 'pos' in the file.

Returns kTRUE in case of failure. Compared to ReadBuffer(char*, Int_t), this routine does not change the cursor on the physical file representation (fD) if the data is in this TFile's cache.

Reimplemented from TFile.

Definition at line 84 of file TXMLFile.h.

◆ ReadFree()

void TXMLFile::ReadFree ( )
inlinefinalvirtual

Read the FREE linked list.

Every file has a linked list (fFree) of free segments. This linked list has been written on the file via WriteFree as a single data record.

Reimplemented from TFile.

Definition at line 85 of file TXMLFile.h.

◆ ReadFromFile()

Bool_t TXMLFile::ReadFromFile ( )
protected

read document from file Now full content of document reads into the memory Then document decomposed to separate keys and streamer info structures All irrelevant data will be cleaned

Definition at line 559 of file TXMLFile.cxx.

◆ ReadKeysList()

Int_t TXMLFile::ReadKeysList ( TDirectory dir,
XMLNodePointer_t  topnode 
)
protected

Read list of keys for directory.

Definition at line 630 of file TXMLFile.cxx.

◆ ReadStreamerElement()

void TXMLFile::ReadStreamerElement ( XMLNodePointer_t  node,
TStreamerInfo info 
)
protected

read and reconstruct single TStreamerElement from xml node

Definition at line 823 of file TXMLFile.cxx.

◆ Recover()

Int_t TXMLFile::Recover ( )
inlinefinalvirtual

Attempt to recover file if not correctly closed.

The function returns the number of keys that have been recovered. If no keys can be recovered, the file will be declared Zombie by the calling function. This function is automatically called when opening a file. If the file is open in read only mode, the file is not modified. If open in update mode and the function finds something to recover, a new directory header is written to the file. When opening the file gain no message from Recover will be reported. If keys have been recovered, the file is usable and you can safely read the corresponding objects. If the file is not usable (a zombie), you can test for this case with code like:

TFile f("myfile.root");
if (f.IsZombie()) {<actions to take if file is unusable>}
#define f(i)
Definition RSha256.hxx:104
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format.
Definition TFile.h:54
Definition file.py:1

If the file has been recovered, the bit kRecovered is set in the TFile object in memory. You can test if the file has been recovered with

if (f.TestBit(TFile::kRecovered)) {... the file has been recovered}

When writing TTrees to a file, it is important to save the Tree header at regular intervals (see TTree::AutoSave). If a file containing a Tree is recovered, the last Tree header written to the file will be used. In this case all the entries in all the branches written before writing the header are valid entries. One can disable the automatic recovery procedure by setting

TFile.Recover 0

in the system.rootrc file.

Reimplemented from TFile.

Definition at line 86 of file TXMLFile.h.

◆ ReOpen()

Int_t TXMLFile::ReOpen ( Option_t mode)
finalvirtual

Reopen a file with a different access mode, like from READ to See TFile::Open() for details.

Reimplemented from TFile.

Definition at line 372 of file TXMLFile.cxx.

◆ ResetErrno()

void TXMLFile::ResetErrno ( ) const
inlinefinalvirtual

Method resetting the errno.

Reimplemented from TFile.

Definition at line 64 of file TXMLFile.h.

◆ SaveToFile()

void TXMLFile::SaveToFile ( )
protected

Saves xml structures to the file xml elements are kept in list of TKeyXML objects When saving, all this elements are linked to root xml node At the end StreamerInfo structures are added After xml document is saved, all nodes will be unlinked from root node and kept in memory.

Only Close() or destructor release memory, used by xml structures

Definition at line 454 of file TXMLFile.cxx.

◆ Seek()

void TXMLFile::Seek ( Long64_t  offset,
ERelativeTo  pos = kBeg 
)
inlinefinalvirtual

Seek to a specific position in the file. Pos it either kBeg, kCur or kEnd.

Reimplemented from TFile.

Definition at line 88 of file TXMLFile.h.

◆ SetEND()

void TXMLFile::SetEND ( Long64_t  )
inlinefinalvirtual

Reimplemented from TFile.

Definition at line 90 of file TXMLFile.h.

◆ SetStoreStreamerInfos()

void TXMLFile::SetStoreStreamerInfos ( Bool_t  iConvert = kTRUE)
finalvirtual

If true, all correspondent to file TStreamerInfo objects will be stored in file this allows to apply schema evolution later for this file may be useful, when file used outside ROOT and TStreamerInfo objects does not required Can be changed only for newly created file.

Reimplemented from TXMLSetup.

Definition at line 921 of file TXMLFile.cxx.

◆ SetUsedDtd()

void TXMLFile::SetUsedDtd ( Bool_t  use = kTRUE)
finalvirtual

Specify usage of DTD for this file.

Currently this option not available (always false). Can be changed only for newly created file.

Reimplemented from TXMLSetup.

Definition at line 932 of file TXMLFile.cxx.

◆ SetUseNamespaces()

void TXMLFile::SetUseNamespaces ( Bool_t  iUseNamespaces = kTRUE)
finalvirtual

Specify usage of namespaces in xml file In current implementation every instrumented class in file gets its unique namespace, which is equal to name of class and refer to root documentation page like <TAttPad xmlns:TAttPad="http://root.cern.ch/root/htmldoc/TAttPad.html" version="3"> And xml node for class member gets its name as combination of class name and member name <TAttPad:fLeftMargin v="0.100000"/> <TAttPad:fRightMargin v="0.100000"/> <TAttPad:fBottomMargin v="0.100000"/> and so on Usage of namespace increase size of xml file, but makes file more readable and allows to produce DTD in the case, when in several classes data member has same name Can be changed only for newly created file.

Reimplemented from TXMLSetup.

Definition at line 952 of file TXMLFile.cxx.

◆ SetXmlLayout()

void TXMLFile::SetXmlLayout ( EXMLLayout  layout)
finalvirtual

Change layout of objects in xml file Can be changed only for newly created file.

Currently there are two supported layouts:

TXMLSetup::kSpecialized = 2 This is default layout of the file, when xml nodes names class names and data member names are used. For instance: <TAttLine version="1"> <fLineColor v="1"> <fLineStyle v="1"> <fLineWidth v="1"> </TAttLine>

TXMLSetup::kGeneralized = 3 For this layout all nodes name does not depend from class definitions. The same class looks like <Class name="TAttLine" version="1"> <Member name="fLineColor" v="1"> <Member name="fLineStyle" v="1"> <Member name="fLineWidth" v="1"> </Member>

Reimplemented from TXMLSetup.

Definition at line 909 of file TXMLFile.cxx.

◆ Sizeof()

Int_t TXMLFile::Sizeof ( ) const
inlinefinalvirtual

Return the size in bytes of the file header.

Reimplemented from TFile.

Definition at line 91 of file TXMLFile.h.

◆ StoreStreamerElement()

void TXMLFile::StoreStreamerElement ( XMLNodePointer_t  node,
TStreamerElement elem 
)
protected

store data of single TStreamerElement in streamer node

Definition at line 767 of file TXMLFile.cxx.

◆ SysClose()

Int_t TXMLFile::SysClose ( Int_t  fd)
inlinefinalprotectedvirtual

Interface to system close. All arguments like in POSIX close().

Reimplemented from TFile.

Definition at line 31 of file TXMLFile.h.

◆ SysOpen()

Int_t TXMLFile::SysOpen ( const char *  pathname,
Int_t  flags,
UInt_t  mode 
)
inlinefinalprotectedvirtual

Interface to system open. All arguments like in POSIX open().

Reimplemented from TFile.

Definition at line 30 of file TXMLFile.h.

◆ SysRead()

Int_t TXMLFile::SysRead ( Int_t  fd,
void buf,
Int_t  len 
)
inlinefinalprotectedvirtual

Interface to system read. All arguments like in POSIX read().

Reimplemented from TFile.

Definition at line 32 of file TXMLFile.h.

◆ SysSeek()

Long64_t TXMLFile::SysSeek ( Int_t  fd,
Long64_t  offset,
Int_t  whence 
)
inlinefinalprotectedvirtual

Interface to system lseek.

All arguments like in POSIX lseek() except that the offset and return value are of a type which are able to handle 64 bit file systems.

Reimplemented from TFile.

Definition at line 34 of file TXMLFile.h.

◆ SysStat()

Int_t TXMLFile::SysStat ( Int_t  fd,
Long_t id,
Long64_t size,
Long_t flags,
Long_t modtime 
)
inlinefinalprotectedvirtual

Return file stat information.

The interface and return value is identical to TSystem::GetPathInfo(). The function returns 0 in case of success and 1 if the file could not be stat'ed.

Reimplemented from TFile.

Definition at line 35 of file TXMLFile.h.

◆ SysSync()

Int_t TXMLFile::SysSync ( Int_t  fd)
inlinefinalprotectedvirtual

Interface to system fsync. All arguments like in POSIX fsync().

Reimplemented from TFile.

Definition at line 36 of file TXMLFile.h.

◆ SysWrite()

Int_t TXMLFile::SysWrite ( Int_t  fd,
const void buf,
Int_t  len 
)
inlinefinalprotectedvirtual

Interface to system write. All arguments like in POSIX write().

Reimplemented from TFile.

Definition at line 33 of file TXMLFile.h.

◆ Write() [1/2]

Int_t TXMLFile::Write ( const char *  name = nullptr,
Int_t  opt = 0,
Int_t  bufsiz = 0 
) const
inlinefinalvirtual

One can not save a const TDirectory object.

Reimplemented from TFile.

Definition at line 95 of file TXMLFile.h.

◆ Write() [2/2]

Int_t TXMLFile::Write ( const char *  name = nullptr,
Int_t  opt = 0,
Int_t  bufsiz = 0 
)
inlinefinalvirtual

Write memory objects to this file.

Loop on all objects in memory (including subdirectories). A new key is created in the KEYS linked list for each object. The list of keys is then saved on the file (via WriteKeys) as a single data record. For values of opt see TObject::Write(). The directory header info is rewritten on the directory header record. The linked list of FREE segments is written. The file header is written (bytes 1->fBEGIN).

Reimplemented from TFile.

Definition at line 94 of file TXMLFile.h.

◆ WriteBuffer()

Bool_t TXMLFile::WriteBuffer ( const char *  buf,
Int_t  len 
)
inlinefinalvirtual

Write a buffer to the file.

This is the basic low level write operation. Returns kTRUE in case of failure.

Reimplemented from TFile.

Definition at line 93 of file TXMLFile.h.

◆ WriteFree()

void TXMLFile::WriteFree ( )
inlinefinalvirtual

Write FREE linked list on the file.

The linked list of FREE segments (fFree) is written as a single data record.

Reimplemented from TFile.

Definition at line 96 of file TXMLFile.h.

◆ WriteHeader()

void TXMLFile::WriteHeader ( )
inlinefinalvirtual

Write File Header.

Reimplemented from TFile.

Definition at line 97 of file TXMLFile.h.

◆ WriteStreamerInfo()

void TXMLFile::WriteStreamerInfo ( )
finalvirtual

convert all TStreamerInfo, used in file, to xml format

Reimplemented from TFile.

Definition at line 664 of file TXMLFile.cxx.

◆ XML()

TXMLEngine * TXMLFile::XML ( )
inline

Definition at line 112 of file TXMLFile.h.

Member Data Documentation

◆ fDoc

XMLDocPointer_t TXMLFile::fDoc {nullptr}
protected

Definition at line 130 of file TXMLFile.h.

◆ fIOVersion

Int_t TXMLFile::fIOVersion {0}
protected

object for interface with xml library

Definition at line 136 of file TXMLFile.h.

◆ fKeyCounter

Long64_t TXMLFile::fKeyCounter {0}
protected

indicates format of ROOT xml file

Definition at line 138 of file TXMLFile.h.

◆ fStreamerInfoNode

XMLNodePointer_t TXMLFile::fStreamerInfoNode {nullptr}
protected

Definition at line 132 of file TXMLFile.h.

◆ fXML

std::unique_ptr<TXMLEngine> TXMLFile::fXML
protected

pointer of node with streamer info data

Definition at line 134 of file TXMLFile.h.

Libraries for TXMLFile:

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