A ROOT file is structured in Directories (like a file system).
Each Directory has a list of Keys (see TKeys) and a list of objects in memory. A Key is a small object that describes the type and location of a persistent object in a file. The persistent object may be a directory.
The structure of a file is shown in TFile::TFile
Definition at line 34 of file TDirectoryFile.h.
Public Types | |
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 Member Functions | |
TDirectoryFile () | |
Default TDirectoryFile constructor. More... | |
TDirectoryFile (const char *name, const char *title, Option_t *option="", TDirectory *motherDir=nullptr) | |
Create a new TDirectoryFile. More... | |
virtual | ~TDirectoryFile () |
Destructor. More... | |
void | Add (TObject *obj, Bool_t replace=kFALSE) override |
void | Append (TObject *obj, Bool_t replace=kFALSE) override |
Append object to this directory. More... | |
Int_t | AppendKey (TKey *key) override |
Insert key in the linked list of keys of this directory. More... | |
void | Browse (TBrowser *b) override |
Browse the content of the directory. More... | |
void | Build (TFile *motherFile=nullptr, TDirectory *motherDir=nullptr) override |
Bool_t | cd (const char *path=nullptr) override |
Change current directory to "this" directory. More... | |
TObject * | CloneObject (const TObject *obj, Bool_t autoadd=kTRUE) override |
Make a clone of an object using the Streamer facility. More... | |
void | Close (Option_t *option="") override |
Delete all objects from memory and directory structure itself. More... | |
void | Copy (TObject &) const override |
Copy this to obj. More... | |
void | Delete (const char *namecycle="") override |
Delete Objects or/and keys in a directory. More... | |
void | FillBuffer (char *&buffer) override |
Encode directory header into output buffer. More... | |
TKey * | FindKey (const char *keyname) const override |
Find key with name keyname in the current directory. More... | |
TKey * | FindKeyAny (const char *keyname) const override |
Find key with name keyname in the current directory or its subdirectories. More... | |
TObject * | FindObjectAny (const char *name) const override |
Find object by name in the list of memory objects of the current directory or its sub-directories. More... | |
TObject * | FindObjectAnyFile (const char *name) const override |
Scan the memory lists of all files for an object with name. More... | |
template<class T > | |
T * | Get (const char *namecycle) |
See documentation of TDirectoryFile::Get(const char *namecycle) More... | |
TObject * | Get (const char *namecycle) override |
Return pointer to object identified by namecycle. More... | |
Int_t | GetBufferSize () const override |
Return the buffer size to create new TKeys. More... | |
const TDatime & | GetCreationDate () const |
TDirectory * | GetDirectory (const char *apath, Bool_t printError=false, const char *funcname="GetDirectory") override |
Find a directory named "apath". More... | |
TFile * | GetFile () const override |
TKey * | GetKey (const char *name, Short_t cycle=9999) const override |
Return pointer to key with name,cycle. More... | |
TList * | GetListOfKeys () const override |
const TDatime & | GetModificationDate () const |
Int_t | GetNbytesKeys () const override |
Int_t | GetNkeys () const override |
void * | GetObjectChecked (const char *namecycle, const char *classname) override |
See documentation of TDirectoryFile::GetObjectCheck(const char *namecycle, const TClass *cl) More... | |
void * | GetObjectChecked (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. More... | |
void * | GetObjectUnchecked (const char *namecycle) override |
Return pointer to object identified by namecycle. More... | |
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 |
void | ls (Option_t *option="") const override |
List Directory contents. More... | |
TDirectory * | mkdir (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/...". More... | |
TFile * | OpenFile (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. More... | |
void | Purge (Short_t nkeep=1) override |
Purge lowest key cycles in a directory. More... | |
void | ReadAll (Option_t *option="") override |
Read objects from a ROOT file directory into memory. More... | |
Int_t | ReadKeys (Bool_t forceRead=kTRUE) override |
Read the linked list of keys. More... | |
Int_t | ReadTObject (TObject *obj, const char *keyname) override |
Read object with keyname from the current directory. More... | |
virtual void | ResetAfterMerge (TFileMergeInfo *) |
Reset the TDirectory after its content has been merged into another Directory. More... | |
void | rmdir (const char *name) override |
Removes subdirectory from the directory. More... | |
void | Save () override |
Save recursively all directory keys and headers. More... | |
Int_t | SaveObjectAs (const TObject *obj, const char *filename="", Option_t *option="") const override |
Save object in filename. More... | |
void | SaveSelf (Bool_t force=kFALSE) override |
Save Directory keys and header. More... | |
void | SetBufferSize (Int_t bufsize) override |
Set the default buffer size when creating new TKeys. More... | |
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. More... | |
void | SetWritable (Bool_t writable=kTRUE) override |
Set the new value of fWritable recursively. More... | |
Int_t | Sizeof () const override |
Return the size in bytes of the directory header. More... | |
Int_t | Write (const char *name=nullptr, Int_t opt=0, Int_t bufsize=0) const override |
One can not save a const TDirectory object. More... | |
Int_t | Write (const char *name=nullptr, Int_t opt=0, Int_t bufsize=0) override |
Write all objects in memory to disk. More... | |
void | WriteDirHeader () override |
Overwrite the Directory header record. More... | |
void | WriteKeys () override |
Write Keys linked list on the file. More... | |
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. More... | |
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. More... | |
Int_t | WriteTObject (const TObject *obj, const char *name=nullptr, Option_t *option="", Int_t bufsize=0) override |
Write object obj to this directory. More... | |
Public Member Functions inherited from TDirectory | |
TDirectory () | |
Directory default constructor. More... | |
TDirectory (const char *name, const char *title, Option_t *option="", TDirectory *motherDir=nullptr) | |
Create a new Directory. More... | |
virtual | ~TDirectory () |
Destructor. More... | |
virtual void | Add (TObject *obj, Bool_t replace=kFALSE) |
virtual void | Append (TObject *obj, Bool_t replace=kFALSE) |
Append object to this directory. More... | |
virtual Int_t | AppendKey (TKey *) |
void | Browse (TBrowser *b) override |
Browse the content of the directory. More... | |
virtual void | Build (TFile *motherFile=nullptr, TDirectory *motherDir=nullptr) |
virtual Bool_t | cd (const char *path=nullptr) |
Change current directory to "this" directory. More... | |
void | Clear (Option_t *option="") override |
Delete all objects from a Directory list. More... | |
virtual TObject * | CloneObject (const TObject *obj, Bool_t autoadd=kTRUE) |
Clone an object. More... | |
virtual void | Close (Option_t *option="") |
Delete all objects from memory and directory structure itself. More... | |
void | Copy (TObject &) const override |
Copy this to obj. More... | |
void | Delete (const char *namecycle="") override |
Delete Objects or/and keys in a directory. More... | |
virtual void | DeleteAll (Option_t *option="") |
Delete all objects from memory. More... | |
void | Draw (Option_t *option="") override |
Fill Graphics Structure and Paint. More... | |
virtual TKey * | FindKey (const char *) const |
virtual TKey * | FindKeyAny (const char *) const |
TObject * | FindObject (const char *name) const override |
Find object by name in the list of memory objects. More... | |
TObject * | FindObject (const TObject *obj) const override |
Find object in the list of memory objects. More... | |
virtual TObject * | FindObjectAny (const char *name) const |
Find object by name in the list of memory objects of the current directory or its sub-directories. More... | |
virtual TObject * | FindObjectAnyFile (const char *) const |
virtual TObject * | Get (const char *namecycle) |
Return pointer to object identified by namecycle. More... | |
template<class T > | |
T * | Get (const char *namecycle) |
See documentation of TDirectoryFile::Get(const char *namecycle) More... | |
virtual Int_t | GetBufferSize () const |
virtual TDirectory * | GetDirectory (const char *namecycle, Bool_t printError=false, const char *funcname="GetDirectory") |
Find a directory using apath. More... | |
virtual TFile * | GetFile () const |
virtual TKey * | GetKey (const char *, Short_t=9999) const |
virtual TList * | GetList () const |
virtual TList * | GetListOfKeys () const |
TObject * | GetMother () const |
TDirectory * | GetMotherDir () const |
virtual Int_t | GetNbytesKeys () const |
virtual Int_t | GetNkeys () const |
template<class T > | |
void | GetObject (const char *namecycle, T *&ptr) |
virtual void * | GetObjectChecked (const char *namecycle, const char *classname) |
See documentation of TDirectory::GetObjectCheck(const char *namecycle, const TClass *cl) More... | |
virtual void * | GetObjectChecked (const char *namecycle, const TClass *cl) |
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. More... | |
virtual void * | GetObjectUnchecked (const char *namecycle) |
Return pointer to object identified by namecycle. More... | |
virtual const char * | GetPath () const |
Returns the full path of the directory. More... | |
virtual const char * | GetPathStatic () const |
Returns the full path of the directory. More... | |
virtual Long64_t | GetSeekDir () const |
virtual Long64_t | GetSeekKeys () const |
virtual Long64_t | GetSeekParent () const |
TUUID | GetUUID () const |
Bool_t | IsFolder () const override |
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More... | |
virtual Bool_t | IsModified () const |
virtual Bool_t | IsWritable () const |
void | ls (Option_t *option="") const override |
List Directory contents. More... | |
virtual TDirectory * | mkdir (const char *name, const char *title="", Bool_t returnExistingDirectory=kFALSE) |
Create a sub-directory "a" or a hierarchy of sub-directories "a/b/c/...". More... | |
virtual TFile * | OpenFile (const char *, Option_t *="", const char *="", Int_t=1, Int_t=0) |
void | Paint (Option_t *option="") override |
Paint all objects in the directory. More... | |
void | Print (Option_t *option="") const override |
Print all objects in the directory. More... | |
virtual void | Purge (Short_t=1) |
virtual void | pwd () const |
Print the path of the directory. More... | |
virtual void | ReadAll (Option_t *="") |
virtual Int_t | ReadKeys (Bool_t=kTRUE) |
virtual Int_t | ReadTObject (TObject *, const char *) |
void | RecursiveRemove (TObject *obj) override |
Recursively remove object from a Directory. More... | |
virtual TObject * | Remove (TObject *) |
Remove an object from the in-memory list. More... | |
virtual void | rmdir (const char *name) |
Removes subdirectory from the directory When directory is deleted, all keys in all subdirectories will be read first and deleted from file (if exists) Equivalent call is Delete("name;*");. More... | |
virtual void | Save () |
virtual Int_t | SaveObjectAs (const TObject *, const char *="", Option_t *="") const |
Save object in filename, if filename is 0 or "", a file with "objectname.root" is created. More... | |
virtual void | SaveSelf (Bool_t=kFALSE) |
virtual void | SetBufferSize (Int_t) |
virtual void | SetModified () |
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. More... | |
virtual void | SetSeekDir (Long64_t) |
virtual void | SetTRefAction (TObject *, TObject *) |
virtual void | SetWritable (Bool_t) |
Int_t | Sizeof () const override |
Return size of the TNamed part of the TObject. More... | |
virtual Int_t | Write (const char *=nullptr, Int_t=0, Int_t=0) const override |
Write this object to the current directory. More... | |
virtual Int_t | Write (const char *=nullptr, Int_t=0, Int_t=0) override |
Write this object to the current directory. More... | |
virtual void | WriteDirHeader () |
virtual void | WriteKeys () |
template<class T > | |
Int_t | WriteObject (const T *obj, const char *name, Option_t *option="", Int_t bufsize=0) |
virtual Int_t | WriteObjectAny (const void *, const char *, const char *, Option_t *="", Int_t=0) |
virtual Int_t | WriteObjectAny (const void *, const TClass *, const char *, Option_t *="", Int_t=0) |
virtual Int_t | WriteTObject (const TObject *obj, const char *name=nullptr, Option_t *="", Int_t=0) |
See TDirectoryFile::WriteTObject for details. More... | |
Public Member Functions inherited from TNamed | |
TNamed () | |
TNamed (const char *name, const char *title) | |
TNamed (const TNamed &named) | |
TNamed copy ctor. More... | |
TNamed (const TString &name, const TString &title) | |
virtual | ~TNamed () |
TNamed destructor. More... | |
virtual void | Clear (Option_t *option="") |
Set name and title to empty strings (""). More... | |
virtual TObject * | Clone (const char *newname="") const |
Make a clone of an object using the Streamer facility. More... | |
virtual Int_t | Compare (const TObject *obj) const |
Compare two TNamed objects. More... | |
virtual void | Copy (TObject &named) const |
Copy this to obj. More... | |
virtual void | FillBuffer (char *&buffer) |
Encode TNamed into output buffer. More... | |
virtual const char * | GetName () const |
Returns name of object. More... | |
virtual const char * | GetTitle () const |
Returns title of object. More... | |
virtual ULong_t | Hash () const |
Return hash value for this object. More... | |
virtual Bool_t | IsSortable () const |
virtual void | ls (Option_t *option="") const |
List TNamed name and title. More... | |
TNamed & | operator= (const TNamed &rhs) |
TNamed assignment operator. More... | |
virtual void | Print (Option_t *option="") const |
Print TNamed name and title. More... | |
virtual void | SetName (const char *name) |
Set the name of the TNamed. More... | |
virtual void | SetNameTitle (const char *name, const char *title) |
Set all the TNamed parameters (name and title). More... | |
virtual void | SetTitle (const char *title="") |
Set the title of the TNamed. More... | |
virtual Int_t | Sizeof () const |
Return size of the TNamed part of the TObject. More... | |
Public Member Functions inherited from TObject | |
TObject () | |
TObject constructor. More... | |
TObject (const TObject &object) | |
TObject copy ctor. More... | |
virtual | ~TObject () |
TObject destructor. More... | |
void | AbstractMethod (const char *method) const |
Use this method to implement an "abstract" method that you don't want to leave purely abstract. More... | |
virtual void | AppendPad (Option_t *option="") |
Append graphics object to current pad. More... | |
virtual void | Browse (TBrowser *b) |
Browse object. May be overridden for another default action. More... | |
ULong_t | CheckedHash () |
Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object. More... | |
virtual const char * | ClassName () const |
Returns name of class to which the object belongs. More... | |
virtual void | Clear (Option_t *="") |
virtual TObject * | Clone (const char *newname="") const |
Make a clone of an object using the Streamer facility. More... | |
virtual Int_t | Compare (const TObject *obj) const |
Compare abstract method. More... | |
virtual void | Copy (TObject &object) const |
Copy this to obj. More... | |
virtual void | Delete (Option_t *option="") |
Delete this object. More... | |
virtual Int_t | DistancetoPrimitive (Int_t px, Int_t py) |
Computes distance from point (px,py) to the object. More... | |
virtual void | Draw (Option_t *option="") |
Default Draw method for all objects. More... | |
virtual void | DrawClass () const |
Draw class inheritance tree of the class to which this object belongs. More... | |
virtual TObject * | DrawClone (Option_t *option="") const |
Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad) . More... | |
virtual void | Dump () const |
Dump contents of object on stdout. More... | |
virtual void | Error (const char *method, const char *msgfmt,...) const |
Issue error message. More... | |
virtual void | Execute (const char *method, const char *params, Int_t *error=0) |
Execute method on this object with the given parameter string, e.g. More... | |
virtual void | Execute (TMethod *method, TObjArray *params, Int_t *error=0) |
Execute method on this object with parameters stored in the TObjArray. More... | |
virtual void | ExecuteEvent (Int_t event, Int_t px, Int_t py) |
Execute action corresponding to an event at (px,py). More... | |
virtual void | Fatal (const char *method, const char *msgfmt,...) const |
Issue fatal error message. More... | |
virtual TObject * | FindObject (const char *name) const |
Must be redefined in derived classes. More... | |
virtual TObject * | FindObject (const TObject *obj) const |
Must be redefined in derived classes. More... | |
virtual Option_t * | GetDrawOption () const |
Get option used by the graphics system to draw this object. More... | |
virtual const char * | GetIconName () const |
Returns mime type name of object. More... | |
virtual const char * | GetName () const |
Returns name of object. More... | |
virtual char * | GetObjectInfo (Int_t px, Int_t py) const |
Returns string containing info about the object at position (px,py). More... | |
virtual Option_t * | GetOption () const |
virtual const char * | GetTitle () const |
Returns title of object. More... | |
virtual UInt_t | GetUniqueID () const |
Return the unique object id. More... | |
virtual Bool_t | HandleTimer (TTimer *timer) |
Execute action in response of a timer timing out. More... | |
virtual ULong_t | Hash () const |
Return hash value for this object. More... | |
Bool_t | HasInconsistentHash () const |
Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e. More... | |
virtual void | Info (const char *method, const char *msgfmt,...) const |
Issue info message. More... | |
virtual Bool_t | InheritsFrom (const char *classname) const |
Returns kTRUE if object inherits from class "classname". More... | |
virtual Bool_t | InheritsFrom (const TClass *cl) const |
Returns kTRUE if object inherits from TClass cl. More... | |
virtual void | Inspect () const |
Dump contents of this object in a graphics canvas. More... | |
void | InvertBit (UInt_t f) |
virtual Bool_t | IsEqual (const TObject *obj) const |
Default equal comparison (objects are equal if they have the same address in memory). More... | |
virtual Bool_t | IsFolder () const |
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More... | |
R__ALWAYS_INLINE Bool_t | IsOnHeap () const |
virtual Bool_t | IsSortable () const |
R__ALWAYS_INLINE Bool_t | IsZombie () const |
virtual void | ls (Option_t *option="") const |
The ls function lists the contents of a class on stdout. More... | |
void | MayNotUse (const char *method) const |
Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). More... | |
virtual Bool_t | Notify () |
This method must be overridden to handle object notification. More... | |
void | Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const |
Use this method to declare a method obsolete. More... | |
void | operator delete (void *ptr) |
Operator delete. More... | |
void | operator delete[] (void *ptr) |
Operator delete []. More... | |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, void *vp) |
void * | operator new[] (size_t sz) |
void * | operator new[] (size_t sz, void *vp) |
TObject & | operator= (const TObject &rhs) |
TObject assignment operator. More... | |
virtual void | Paint (Option_t *option="") |
This method must be overridden if a class wants to paint itself. More... | |
virtual void | Pop () |
Pop on object drawn in a pad to the top of the display list. More... | |
virtual void | Print (Option_t *option="") const |
This method must be overridden when a class wants to print itself. More... | |
virtual Int_t | Read (const char *name) |
Read contents of object with specified name from the current directory. More... | |
virtual void | RecursiveRemove (TObject *obj) |
Recursively remove this object from a list. More... | |
void | ResetBit (UInt_t f) |
virtual void | SaveAs (const char *filename="", Option_t *option="") const |
Save this object in the file specified by filename. More... | |
virtual void | SavePrimitive (std::ostream &out, Option_t *option="") |
Save a primitive as a C++ statement(s) on output stream "out". More... | |
void | SetBit (UInt_t f) |
void | SetBit (UInt_t f, Bool_t set) |
Set or unset the user status bits as specified in f. More... | |
virtual void | SetDrawOption (Option_t *option="") |
Set drawing option for object. More... | |
virtual void | SetUniqueID (UInt_t uid) |
Set the unique object id. More... | |
virtual void | SysError (const char *method, const char *msgfmt,...) const |
Issue system error message. More... | |
R__ALWAYS_INLINE Bool_t | TestBit (UInt_t f) const |
Int_t | TestBits (UInt_t f) const |
virtual void | UseCurrentStyle () |
Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. More... | |
virtual void | Warning (const char *method, const char *msgfmt,...) const |
Issue warning message. More... | |
virtual Int_t | Write (const char *name=0, Int_t option=0, Int_t bufsize=0) |
Write this object to the current directory. More... | |
virtual Int_t | Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const |
Write this object to the current directory. More... | |
Protected Member Functions | |
void | BuildDirectoryFile (TFile *motherFile, TDirectory *motherDir) |
Initialise directory to defaults. More... | |
void | CleanTargets () |
Clean the pointers to this object (gDirectory, TContext, etc.) More... | |
void | InitDirectoryFile (TClass *cl=nullptr) |
Initialize the key associated with this directory (and the related data members. More... | |
Protected Member Functions inherited from TDirectory | |
TDirectory (const TDirectory &directory)=delete | |
void | BuildDirectory (TFile *motherFile, TDirectory *motherDir) |
Initialise directory to defaults. More... | |
Bool_t | cd1 (const char *path) |
flag to add histograms, graphs,etc to the directory More... | |
void | CleanTargets () |
Clean the pointers to this object (gDirectory, TContext, etc.). More... | |
void | FillFullPath (TString &buf) const |
Recursive method to fill full path for directory. More... | |
void | operator= (const TDirectory &)=delete |
void | RegisterContext (TContext *ctxt) |
Register a TContext pointing to this TDirectory object. More... | |
void | UnregisterContext (TContext *ctxt) |
UnRegister a TContext pointing to this TDirectory object. More... | |
Protected Member Functions inherited from TObject | |
virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
Interface to ErrorHandler (protected). More... | |
void | MakeZombie () |
Protected Attributes | |
Int_t | fBufferSize {0} |
Default buffer size to create new TKeys. More... | |
TDatime | fDatimeC |
Date and time when directory is created. More... | |
TDatime | fDatimeM |
Date and time of last modification. More... | |
TFile * | fFile {nullptr} |
Pointer to current file in memory. More... | |
TList * | fKeys {nullptr} |
Pointer to keys list in memory. More... | |
Bool_t | fModified {kFALSE} |
True if directory has been modified. More... | |
Int_t | fNbytesKeys {0} |
Number of bytes for the keys. More... | |
Int_t | fNbytesName {0} |
Number of bytes in TNamed at creation time. More... | |
Long64_t | fSeekDir {0} |
Location of directory on file. More... | |
Long64_t | fSeekKeys {0} |
Location of Keys record on file. More... | |
Long64_t | fSeekParent {0} |
Location of parent directory on file. More... | |
Bool_t | fWritable {kFALSE} |
True if directory is writable. More... | |
Protected Attributes inherited from TDirectory | |
TContext * | fContext {nullptr} |
Buffer for GetPath() function. More... | |
std::atomic< size_t > | fContextPeg |
Pointer to a list of TContext object pointing to this TDirectory. More... | |
TList * | fList {nullptr} |
TObject * | fMother {nullptr} |
TString | fPathBuffer |
std::atomic_flag | fSpinLock |
Counter delaying the TDirectory destructor from finishing. More... | |
TUUID | fUUID |
Protected Attributes inherited from TNamed | |
TString | fName |
TString | fTitle |
Private Member Functions | |
TDirectoryFile (const TDirectoryFile &directory)=delete | |
void | operator= (const TDirectoryFile &)=delete |
Additional Inherited Members | |
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. More... | |
static Bool_t | AddDirectoryStatus () |
Static function: see TDirectory::AddDirectory for more comments. More... | |
static Bool_t | Cd (const char *path) |
Change current directory to "path". More... | |
static TDirectory *& | CurrentDirectory () |
Return the current directory for the current thread. More... | |
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". More... | |
static void | EncodeNameCycle (char *buffer, const char *name, Short_t cycle) |
Encode the name and cycle into buffer like: "aap;2". More... | |
Static Public Member Functions inherited from TObject | |
static Long_t | GetDtorOnly () |
Return destructor only flag. More... | |
static Bool_t | GetObjectStat () |
Get status of object stat flag. More... | |
static void | SetDtorOnly (void *obj) |
Set destructor only flag. More... | |
static void | SetObjectStat (Bool_t stat) |
Turn on/off tracking of objects in the TObjectTable. More... | |
Protected Types inherited from TObject | |
enum | { kOnlyPrepStep = BIT(3) } |
Static Protected Member Functions inherited from TDirectory | |
static Bool_t | Cd1 (const char *path) |
Change current directory to "path". More... | |
Static Protected Attributes inherited from TDirectory | |
static Bool_t | fgAddDirectory = kTRUE |
MSVC doesn't support = ATOMIC_FLAG_INIT;. More... | |
#include <TDirectoryFile.h>
Enumerator | |
---|---|
kCloseDirectory |
Definition at line 60 of file TDirectoryFile.h.
|
privatedelete |
TDirectoryFile::TDirectoryFile | ( | ) |
Default TDirectoryFile constructor.
Definition at line 59 of file TDirectoryFile.cxx.
TDirectoryFile::TDirectoryFile | ( | const char * | name, |
const char * | title, | ||
Option_t * | classname = "" , |
||
TDirectory * | initMotherDir = nullptr |
||
) |
Create a new TDirectoryFile.
A new directory with a name and a title is created in the current directory. The directory header information is immediately saved on the file A new key is added in the parent directory. When this constructor is called from a class directly derived from TDirectoryFile, the third argument, classname, MUST be specified. In this case, classname must be the name of the derived class.
Note that the directory name cannot contain slashes.
Definition at line 79 of file TDirectoryFile.cxx.
|
virtual |
Destructor.
Definition at line 176 of file TDirectoryFile.cxx.
Reimplemented from TDirectory.
Reimplemented in RooWorkspace::WSDir.
Definition at line 67 of file TDirectoryFile.h.
Append object to this directory.
If replace is true: remove any existing objects with the same same (if the name is not ""
Reimplemented from TDirectory.
Reimplemented in RooWorkspace::WSDir.
Definition at line 208 of file TDirectoryFile.cxx.
Insert key in the linked list of keys of this directory.
Reimplemented from TDirectory.
Definition at line 224 of file TDirectoryFile.cxx.
Browse the content of the directory.
Reimplemented from TDirectory.
Definition at line 259 of file TDirectoryFile.cxx.
|
inlineoverridevirtual |
Reimplemented from TDirectory.
Definition at line 70 of file TDirectoryFile.h.
|
protected |
Initialise directory to defaults.
Definition at line 304 of file TDirectoryFile.cxx.
|
overridevirtual |
Change current directory to "this" directory.
Using path one can change the current directory to "path". The absolute path syntax is:
file.root:/dir1/dir2
where file.root is the file and /dir1/dir2 the desired subdirectory in the file. Relative syntax is relative to "this" directory. E.g: ../aa. Returns kTRUE in case of success.
Reimplemented from TDirectory.
Definition at line 339 of file TDirectoryFile.cxx.
|
protected |
Clean the pointers to this object (gDirectory, TContext, etc.)
Definition at line 349 of file TDirectoryFile.cxx.
|
overridevirtual |
Make a clone of an object using the Streamer facility.
If the object derives from TNamed, this function is called by TNamed::Clone. TNamed::Clone uses the optional argument newname to set a new name to the newly created object.
If autoadd is true and if the object class has a DirectoryAutoAdd function, it will be called at the end of the function with the parameter gDirectory. This usually means that the object will be appended to the current ROOT directory.
Reimplemented from TDirectory.
Definition at line 372 of file TDirectoryFile.cxx.
Delete all objects from memory and directory structure itself.
Reimplemented from TDirectory.
Reimplemented in TNetFile, TParallelMergingFile, TSQLFile, TXMLFile, and TFile.
Definition at line 546 of file TDirectoryFile.cxx.
Copy this to obj.
Reimplemented from TDirectory.
Reimplemented in TFile.
Definition at line 73 of file TDirectoryFile.h.
|
overridevirtual |
Delete Objects or/and keys in a directory.
Properties of the namecycle string:
To delete one directory, you must specify the directory cycle, eg. file.Delete("dir1;1");
Examples:
Pattern | Description |
---|---|
foo | delete object named foo in memory |
foo* | delete all objects with a name starting with foo |
foo;1 | delete cycle 1 of foo on file |
foo;* | delete all cycles of foo on file and also from memory |
*;2 | delete all objects on file having the cycle 2 |
*;* | delete all objects from memory and file |
T*;* | delete all objects from memory and file and all subdirectories |
If the key to be deleted contains special characters ("+","^","?", etc that have a special meaning for the regular expression parser (see TRegexp) then you must specify 2 backslash characters to escape the regular expression. For example, if the key to be deleted is namecycle = "C++", you must call
mydir.Delete("C\\+\\+"));
Reimplemented from TDirectory.
Reimplemented in TFile.
Definition at line 617 of file TDirectoryFile.cxx.
|
overridevirtual |
|
overridevirtual |
Find key with name keyname in the current directory.
Reimplemented from TDirectory.
Definition at line 765 of file TDirectoryFile.cxx.
|
overridevirtual |
Find key with name keyname in the current directory or its subdirectories.
NOTE: that If a key is found, the directory containing the key becomes the current directory
Reimplemented from TDirectory.
Definition at line 781 of file TDirectoryFile.cxx.
|
overridevirtual |
Find object by name in the list of memory objects of the current directory or its sub-directories.
After this call the current directory is not changed. To automatically set the current directory where the object is found, use FindKeyAny(aname)->ReadObj().
Reimplemented from TDirectory.
Definition at line 821 of file TDirectoryFile.cxx.
|
overridevirtual |
Scan the memory lists of all files for an object with name.
Reimplemented from TDirectory.
Definition at line 430 of file TDirectoryFile.cxx.
|
inlinevirtual |
See documentation of TDirectoryFile::Get(const char *namecycle)
Reimplemented from TDirectory.
Definition at line 83 of file TDirectoryFile.h.
|
overridevirtual |
Return pointer to object identified by namecycle.
Properties:
Examples:
Pattern | Explanation |
---|---|
foo | get object named foo in memory if object is not in memory, try with highest cycle from file |
foo;1 | get cycle 1 of foo on file |
The retrieved object should in principle derive from TObject. If not, the function TDirectoryFile::Get<T> should be called. However, this function will still work for a non-TObject, provided that the calling application cast the return type to the correct type (which is the actual type of the object).
The method Get<T> offers better protection and avoids the need for any cast:
In case the class of this object derives from TObject but not as a first inheritance, one must use dynamic_cast<>().
class MyClass : public TObject, public AnotherClass
then on return, one can adopt a C style cast:
auto objPtr = (MyClass*)directory->Get("some object of MyClass");
class MyClass : public AnotherClass, public TObject
then on return, one must do:
auto objPtr = dynamic_cast<MyClass*>(directory->Get("some object of MyClass"));
Of course, dynamic_cast<> can also be used in the example 1.
Reimplemented from TDirectory.
Definition at line 908 of file TDirectoryFile.cxx.
|
overridevirtual |
Return the buffer size to create new TKeys.
If the stored fBufferSize is null, the value returned is the average buffer size of objects in the file so far.
Reimplemented from TDirectory.
Definition at line 1088 of file TDirectoryFile.cxx.
|
inline |
Definition at line 92 of file TDirectoryFile.h.
|
overridevirtual |
Find a directory named "apath".
It apath is null or empty, returns "this" directory. Otherwise use the name "apath" to find a directory. The absolute path syntax is:
file.root:/dir1/dir2
where file.root is the file and /dir1/dir2 the desired subdirectory in the file. Relative syntax is relative to "this" directory. E.g: ../aa. Returns 0 in case path does not exist. If printError is true, use Error with 'funcname' to issue an error message.
Reimplemented from TDirectory.
Definition at line 457 of file TDirectoryFile.cxx.
|
inlineoverridevirtual |
Reimplemented from TDirectory.
Definition at line 93 of file TDirectoryFile.h.
Return pointer to key with name,cycle.
if cycle = 9999 returns highest cycle
Reimplemented from TDirectory.
Definition at line 1100 of file TDirectoryFile.cxx.
|
inlineoverridevirtual |
Reimplemented from TDirectory.
Definition at line 95 of file TDirectoryFile.h.
|
inline |
Definition at line 96 of file TDirectoryFile.h.
|
inlineoverridevirtual |
Reimplemented from TDirectory.
Definition at line 97 of file TDirectoryFile.h.
|
inlineoverridevirtual |
Reimplemented from TDirectory.
Definition at line 98 of file TDirectoryFile.h.
|
overridevirtual |
See documentation of TDirectoryFile::GetObjectCheck(const char *namecycle, const TClass *cl)
Reimplemented from TDirectory.
Definition at line 985 of file TDirectoryFile.cxx.
|
overridevirtual |
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.
The calling application must cast the returned pointer to the type described by the 2 arguments (i.e. cl):
auto objPtr = (MyClass*)directory->GetObjectChecked("some object of MyClass","MyClass"));
Note: We recommend using the method TDirectoryFile::Get<T>:
Reimplemented from TDirectory.
Definition at line 1012 of file TDirectoryFile.cxx.
|
overridevirtual |
Return pointer to object identified by namecycle.
The returned object may or may not derive from TObject.
The calling application must cast the returned object to the final type, e.g.
auto objPtr = (MyClass*)directory->GetObject("some object of MyClass");
Reimplemented from TDirectory.
Definition at line 977 of file TDirectoryFile.cxx.
|
inlineoverridevirtual |
Reimplemented from TDirectory.
Definition at line 99 of file TDirectoryFile.h.
|
inlineoverridevirtual |
Reimplemented from TDirectory.
Definition at line 101 of file TDirectoryFile.h.
|
inlineoverridevirtual |
Reimplemented from TDirectory.
Definition at line 100 of file TDirectoryFile.h.
Initialize the key associated with this directory (and the related data members.
Definition at line 146 of file TDirectoryFile.cxx.
|
inlineoverridevirtual |
Reimplemented from TDirectory.
Definition at line 102 of file TDirectoryFile.h.
|
inlineoverridevirtual |
Reimplemented from TDirectory.
Definition at line 103 of file TDirectoryFile.h.
List Directory contents.
Indentation is used to identify the directory tree Subdirectories are listed first, then objects in memory, then objects on the file
The option can has the following format: [-d |-m][<regexp>] Options:
Reimplemented from TDirectory.
Reimplemented in TFile.
Definition at line 1131 of file TDirectoryFile.cxx.
|
overridevirtual |
Create a sub-directory "a" or a hierarchy of sub-directories "a/b/c/...".
Returns 0 in case of error or if a sub-directory (hierarchy) with the requested name already exists. returnExistingDirectory returns a pointer to an already existing sub-directory instead of 0. Returns a pointer to the created sub-directory or to the top sub-directory of the hierarchy (in the above example, the returned TDirectory * always points to "a").
Reimplemented from TDirectory.
Definition at line 1196 of file TDirectoryFile.cxx.
|
overridevirtual |
Interface to TFile::Open.
Reimplemented from TDirectory.
Definition at line 1180 of file TDirectoryFile.cxx.
|
privatedelete |
Purge lowest key cycles in a directory.
By default, only the highest cycle of a key is kept. Keys for which the "KEEP" flag has been set are not removed. See TKey::Keep(). NOTE: This does not reduce the size of a TFile– the space is simply freed up to be overwritten.
Reimplemented from TDirectory.
Definition at line 1237 of file TDirectoryFile.cxx.
Read objects from a ROOT file directory into memory.
If an object is already in memory, the memory copy is deleted and the object is again read from the file. If opt=="dirs", only subdirectories will be read If opt=="dirs*" complete directory tree will be read
Reimplemented from TDirectory.
Definition at line 1273 of file TDirectoryFile.cxx.
Read the linked list of keys.
Every directory has a linked list (fKeys). This linked list has been written on the file via WriteKeys as a single data record.
It is interesting to call this function in the following situation. Assume another process1 is connecting this directory in Update mode
Example Process2:
This is an efficient way (without opening/closing files) to view the latest updates of a file being modified by another process as it is typically the case in a data acquisition system.
Reimplemented from TDirectory.
Definition at line 1326 of file TDirectoryFile.cxx.
Read object with keyname from the current directory.
Read contents of object with specified name from the current directory. First the key with keyname is searched in the current directory, next the key buffer is deserialized into the object. The object must have been created before via the default constructor. See TObject::Write().
Reimplemented from TDirectory.
Definition at line 1412 of file TDirectoryFile.cxx.
|
virtual |
Reset the TDirectory after its content has been merged into another Directory.
This returns the TDirectoryFile object back to its state before any data has been written to the file. The object in the in-memory list are assumed to also have been reset.
Reimplemented in TMemFile.
Definition at line 1434 of file TDirectoryFile.cxx.
|
overridevirtual |
Removes subdirectory from the directory.
When directory is deleted, all keys in all subdirectories will be read first and deleted from file (if exists) Equivalent call is Delete("name;*");
Reimplemented from TDirectory.
Definition at line 1480 of file TDirectoryFile.cxx.
|
overridevirtual |
Save recursively all directory keys and headers.
Reimplemented from TDirectory.
Definition at line 1492 of file TDirectoryFile.cxx.
|
overridevirtual |
Save object in filename.
If filename is 0 or "", a file with "objectname.root" is created. The name of the key is the object name. If the operation is successful, it returns the number of bytes written to the file otherwise it returns 0. By default a message is printed. Use option "q" to not print the message. If filename contains ".json" extension, JSON representation of the object will be created and saved in the text file. Such file can be used in JavaScript ROOT (https://root.cern.ch/js/) to display object in web browser When creating JSON file, option string may contain compression level from 0 to 3 (default 0)
Reimplemented from TDirectory.
Definition at line 1525 of file TDirectoryFile.cxx.
Save Directory keys and header.
If the directory has been modified (fModified set), write the keys and the directory header. This function assumes the cd is correctly set.
It is recommended to use this function in the following situation: Assume a process1 using a directory in Update mode
Reimplemented from TDirectory.
Definition at line 1566 of file TDirectoryFile.cxx.
Set the default buffer size when creating new TKeys.
See also TDirectoryFile::GetBufferSize
Reimplemented from TDirectory.
Definition at line 1587 of file TDirectoryFile.cxx.
|
inlineoverridevirtual |
Reimplemented from TDirectory.
Definition at line 119 of file TDirectoryFile.h.
Reimplemented from TDirectory.
Definition at line 120 of file TDirectoryFile.h.
Find the action to be executed in the dictionary of the parent class and store the corresponding exec number into fBits.
This function searches a data member in the class of parent with an offset corresponding to this. If a comment "TEXEC:" is found in the comment field of the data member, the function stores the exec identifier of the exec statement following this keyword.
Reimplemented from TDirectory.
Definition at line 1602 of file TDirectoryFile.cxx.
Set the new value of fWritable recursively.
Reimplemented from TDirectory.
Definition at line 1621 of file TDirectoryFile.cxx.
|
overridevirtual |
Return the size in bytes of the directory header.
Reimplemented from TDirectory.
Reimplemented in TSQLFile, TXMLFile, and TFile.
Definition at line 1644 of file TDirectoryFile.cxx.
|
overridevirtual |
One can not save a const TDirectory object.
Reimplemented from TDirectory.
Reimplemented in TSQLFile, TXMLFile, TParallelMergingFile, and TFile.
Definition at line 1796 of file TDirectoryFile.cxx.
|
overridevirtual |
Write all objects in memory to disk.
Loop on all objects in memory (including subdirectories). A new key is created in the keys linked list for each object. For allowed options see TObject::Write(). The directory header info is rewritten on the directory header record.
Reimplemented from TDirectory.
Reimplemented in TSQLFile, TXMLFile, TParallelMergingFile, and TFile.
Definition at line 1775 of file TDirectoryFile.cxx.
|
overridevirtual |
Overwrite the Directory header record.
Reimplemented from TDirectory.
Definition at line 2078 of file TDirectoryFile.cxx.
|
overridevirtual |
Write Keys linked list on the file.
The linked list of keys (fKeys) is written as a single data record
Reimplemented from TDirectory.
Definition at line 2107 of file TDirectoryFile.cxx.
|
overridevirtual |
Write object from pointer of class classname in this directory.
obj may not derive from TObject. See TDirectoryFile::WriteTObject for comments
The value passed as 'obj' needs to be from a pointer to the type described by classname. For example:
you can do:
BUT YOU CAN NOT DO the following since it will fail with multiple inheritance:
We STRONGLY recommend to use
See also remarks in TDirectoryFile::WriteTObject
Reimplemented from TDirectory.
Definition at line 1959 of file TDirectoryFile.cxx.
|
overridevirtual |
Write object of class with dictionary cl in this directory.
obj may not derive from TObject To get the TClass* cl pointer, one can use
TClass *cl = TClass::GetClass("classname");
An alternative is to call the function WriteObjectAny above. see TDirectoryFile::WriteTObject for comments
Reimplemented from TDirectory.
Definition at line 1986 of file TDirectoryFile.cxx.
|
overridevirtual |
Write object obj to this directory.
The data structure corresponding to this object is serialized. The corresponding buffer is written to this directory with an associated key with name "name".
Writing an object to a file involves the following steps:
By default, the buffersize will be taken from the average buffer size of all objects written to the current file so far. Use TDirectoryFile::SetBufferSize to force a given buffer size.
If a name is specified, it will be the name of the key. If name is not given, the name of the key will be the name as returned by obj->GetName().
The option can be a combination of:
WARNING: avoid special characters like '^','$','.' in the name as they are used by the regular expression parser (see TRegexp).
Reimplemented from TDirectory.
Definition at line 1846 of file TDirectoryFile.cxx.
|
protected |
Default buffer size to create new TKeys.
Definition at line 43 of file TDirectoryFile.h.
|
protected |
Date and time when directory is created.
Definition at line 39 of file TDirectoryFile.h.
|
protected |
Date and time of last modification.
Definition at line 40 of file TDirectoryFile.h.
|
protected |
Pointer to current file in memory.
Definition at line 47 of file TDirectoryFile.h.
|
protected |
Pointer to keys list in memory.
Definition at line 48 of file TDirectoryFile.h.
True if directory has been modified.
Definition at line 37 of file TDirectoryFile.h.
|
protected |
Number of bytes for the keys.
Definition at line 41 of file TDirectoryFile.h.
|
protected |
Number of bytes in TNamed at creation time.
Definition at line 42 of file TDirectoryFile.h.
|
protected |
Location of directory on file.
Definition at line 44 of file TDirectoryFile.h.
|
protected |
Location of Keys record on file.
Definition at line 46 of file TDirectoryFile.h.
|
protected |
Location of parent directory on file.
Definition at line 45 of file TDirectoryFile.h.
True if directory is writable.
Definition at line 38 of file TDirectoryFile.h.