Logo ROOT   6.12/07
Reference Guide
List of all members | Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Friends | List of all members
TDirectory Class Reference

Describe directory structure in memory.

Definition at line 34 of file TDirectory.h.

Classes

class  TContext
 

Public Member Functions

 TDirectory ()
 Directory default constructor. More...
 
 TDirectory (const char *name, const char *title, Option_t *option="", TDirectory *motherDir=0)
 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 *)
 
virtual void Browse (TBrowser *b)
 Browse the content of the directory. More...
 
virtual void Build (TFile *motherFile=0, TDirectory *motherDir=0)
 Initialise directory to defaults. More...
 
virtual Bool_t cd (const char *path=0)
 Change current directory to "this" directory. More...
 
virtual void Clear (Option_t *option="")
 Delete all objects from a Directory list. More...
 
virtual TObjectCloneObject (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...
 
virtual void Copy (TObject &) const
 Copy this to obj. More...
 
virtual void Delete (const char *namecycle="")
 Delete Objects or/and keys in a directory. More...
 
virtual void DeleteAll (Option_t *option="")
 Delete all objects from memory. More...
 
virtual void Draw (Option_t *option="")
 Fill Graphics Structure and Paint. More...
 
virtual TKeyFindKey (const char *) const
 
virtual TKeyFindKeyAny (const char *) const
 
virtual TObjectFindObject (const char *name) const
 Find object by name in the list of memory objects. More...
 
virtual TObjectFindObject (const TObject *obj) const
 Find object in the list of memory objects. More...
 
virtual TObjectFindObjectAny (const char *name) const
 Find object by name in the list of memory objects of the current directory or its sub-directories. More...
 
virtual TObjectFindObjectAnyFile (const char *) const
 
virtual TObjectGet (const char *namecycle)
 Return pointer to object identified by namecycle. More...
 
virtual Int_t GetBufferSize () const
 
virtual TDirectoryGetDirectory (const char *namecycle, Bool_t printError=false, const char *funcname="GetDirectory")
 Find a directory using apath. More...
 
virtual TFileGetFile () const
 
virtual TKeyGetKey (const char *, Short_t=9999) const
 
virtual TListGetList () const
 
virtual TListGetListOfKeys () const
 
virtual TObjectGetMother () const
 
virtual TDirectoryGetMotherDir () const
 
virtual Int_t GetNbytesKeys () const
 
virtual Int_t GetNkeys () const
 
template<class T >
void GetObject (const char *namecycle, T *&ptr)
 
virtual voidGetObjectChecked (const char *namecycle, const char *classname)
 See documentation of TDirectory::GetObjectCheck(const char *namecycle, const TClass *cl) More...
 
virtual voidGetObjectChecked (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 voidGetObjectUnchecked (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
 
virtual Bool_t IsFolder () const
 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
 
virtual void ls (Option_t *option="") const
 List Directory contents. More...
 
virtual TDirectorymkdir (const char *name, const char *title="")
 Create a sub-directory "a" or a hierarchy of sub-directories "a/b/c/...". More...
 
virtual TFileOpenFile (const char *, Option_t *="", const char *="", Int_t=1, Int_t=0)
 
virtual void Paint (Option_t *option="")
 Paint all objects in the directory. More...
 
virtual void Print (Option_t *option="") const
 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 *)
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove object from a Directory. More...
 
virtual TObjectRemove (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)
 
virtual void SetName (const char *newname)
 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)
 
virtual Int_t Sizeof () const
 Return size of the TNamed part of the TObject. More...
 
virtual Int_t Write (const char *=0, Int_t=0, Int_t=0)
 Write this object to the current directory. More...
 
virtual Int_t Write (const char *=0, Int_t=0, Int_t=0) const
 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=0, 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 TString &name, const TString &title)
 
 TNamed (const TNamed &named)
 TNamed copy ctor. More...
 
virtual ~TNamed ()
 TNamed destructor. More...
 
virtual TObjectClone (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 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
 
TNamedoperator= (const TNamed &rhs)
 TNamed assignment operator. 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...
 
- 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...
 
ULong_t CheckedHash ()
 Checked and record whether for 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 Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object. More...
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs. More...
 
virtual TObjectDrawClone (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 Option_tGetDrawOption () 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 char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py). More...
 
virtual Option_tGetOption () const
 
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...
 
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...
 
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). 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...
 
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. More...
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list. More...
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory. 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, Bool_t set)
 Set or unset the user status bits as specified in f. More...
 
void SetBit (UInt_t f)
 
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...
 

Static Public Member Functions

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 Member Functions

 TDirectory (const TDirectory &directory)
 Copy constructor. More...
 
Bool_t cd1 (const char *path)
 flag to add histograms, graphs,etc to the directory More...
 
virtual 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 &)
 
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 ()
 

Static Protected Member Functions

static Bool_t Cd1 (const char *path)
 Change current directory to "path". More...
 

Protected Attributes

TContextfContext
 Buffer for GetPath() function. More...
 
std::atomic< size_t > fContextPeg
 Pointer to a list of TContext object pointing to this TDirectory. More...
 
TListfList
 
TObjectfMother
 
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
 

Static Protected Attributes

static Bool_t fgAddDirectory = kTRUE
 MSVC doesn't support = ATOMIC_FLAG_INIT;. More...
 

Private Member Functions

Int_t WriteObject (void *obj, const char *name, Option_t *option="", Int_t bufsize=0)
 

Friends

class TContext
 

Additional Inherited Members

- 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)
}
 

#include <TDirectory.h>

Inheritance diagram for TDirectory:
[legend]

Constructor & Destructor Documentation

◆ TDirectory() [1/3]

TDirectory::TDirectory ( const TDirectory directory)
protected

Copy constructor.

Definition at line 90 of file TDirectory.cxx.

◆ TDirectory() [2/3]

TDirectory::TDirectory ( )

Directory default constructor.

Definition at line 46 of file TDirectory.cxx.

◆ TDirectory() [3/3]

TDirectory::TDirectory ( const char *  name,
const char *  title,
Option_t option = "",
TDirectory initMotherDir = 0 
)

Create a new Directory.

A new directory with name,title is created in the current directory The directory header information is immediately saved in the file A new key is added in the parent directory

When this constructor is called from a class directly derived from TDirectory, 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 65 of file TDirectory.cxx.

◆ ~TDirectory()

TDirectory::~TDirectory ( )
virtual

Destructor.

Definition at line 101 of file TDirectory.cxx.

Member Function Documentation

◆ Add()

virtual void TDirectory::Add ( TObject obj,
Bool_t  replace = kFALSE 
)
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 118 of file TDirectory.h.

◆ AddDirectory()

void TDirectory::AddDirectory ( Bool_t  add = kTRUE)
static

Sets the flag controlling the automatic add objects like histograms, TGraph2D, etc in memory.

By default (fAddDirectory = kTRUE), these objects are automatically added to the list of objects in memory. Note that in the classes like TH1, TGraph2D supporting this facility, one object can be removed from its support directory by calling object->SetDirectory(0) or object->SetDirectory(dir) to add it to the list of objects in the directory dir.

NOTE that this is a static function. To call it, use:

Definition at line 171 of file TDirectory.cxx.

◆ AddDirectoryStatus()

Bool_t TDirectory::AddDirectoryStatus ( )
static

Static function: see TDirectory::AddDirectory for more comments.

Definition at line 179 of file TDirectory.cxx.

◆ Append()

void TDirectory::Append ( TObject obj,
Bool_t  replace = kFALSE 
)
virtual

Append object to this directory.

If replace is true: remove any existing objects with the same name (if the name is not "")

Reimplemented in TROOT, and TDirectoryFile.

Definition at line 190 of file TDirectory.cxx.

◆ AppendKey()

virtual Int_t TDirectory::AppendKey ( TKey )
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 119 of file TDirectory.h.

◆ Browse()

void TDirectory::Browse ( TBrowser b)
virtual

Browse the content of the directory.

Reimplemented from TObject.

Reimplemented in TROOT, and TDirectoryFile.

Definition at line 215 of file TDirectory.cxx.

◆ Build()

void TDirectory::Build ( TFile motherFile = 0,
TDirectory motherDir = 0 
)
virtual

Initialise directory to defaults.

If directory is created via default ctor (when dir is read from file) don't add it here to the directory since its name is not yet known. It will be added to the directory in TKey::ReadObj().

Reimplemented in TDirectoryFile.

Definition at line 237 of file TDirectory.cxx.

◆ cd()

Bool_t TDirectory::cd ( const char *  path = 0)
virtual

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 in TDirectoryFile.

Definition at line 497 of file TDirectory.cxx.

◆ Cd()

Bool_t TDirectory::Cd ( const char *  path)
static

Change 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 the current directory gDirectory, e.g.: ../aa.

Returns kTRUE in case of success.

Definition at line 541 of file TDirectory.cxx.

◆ cd1()

Bool_t TDirectory::cd1 ( const char *  apath)
protected

flag to add histograms, graphs,etc to the directory

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 kFALSE in case path does not exist.

Definition at line 515 of file TDirectory.cxx.

◆ Cd1()

Bool_t TDirectory::Cd1 ( const char *  apath)
staticprotected

Change current directory to "path".

The path syntax is: file.root:/dir1/dir2 where file.root is the file and /dir1/dir2 the desired subdirectory in the file.

Returns kFALSE in case path does not exist.

Definition at line 554 of file TDirectory.cxx.

◆ CleanTargets()

void TDirectory::CleanTargets ( )
protectedvirtual

Clean the pointers to this object (gDirectory, TContext, etc.).

Reimplemented in TDirectoryFile.

Definition at line 252 of file TDirectory.cxx.

◆ Clear()

void TDirectory::Clear ( Option_t option = "")
virtual

Delete all objects from a Directory list.

Reimplemented from TNamed.

Definition at line 572 of file TDirectory.cxx.

◆ CloneObject()

TObject * TDirectory::CloneObject ( const TObject obj,
Bool_t  autoadd = kTRUE 
)
virtual

Clone an object.

This function is called when the directory is not a TDirectoryFile. This version has to load the I/O package, hence via Cling.

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 gDirector. This usually means that the object will be appended to the current ROOT directory.

Reimplemented in TDirectoryFile.

Definition at line 328 of file TDirectory.cxx.

◆ Close()

void TDirectory::Close ( Option_t option = "")
virtual

Delete all objects from memory and directory structure itself.

if option is "slow", iterate through the containers in a way to can handle 'external' modification (induced by recursions) if option is "nodelete", write the TDirectory but do not delete the contained objects.

Reimplemented in TSQLFile, TFile, TDirectoryFile, TNetFile, TXMLFile, and TParallelMergingFile.

Definition at line 584 of file TDirectory.cxx.

◆ Copy()

virtual void TDirectory::Copy ( TObject named) const
inlinevirtual

Copy this to obj.

Reimplemented from TNamed.

Reimplemented in TFile, and TDirectoryFile.

Definition at line 126 of file TDirectory.h.

◆ CurrentDirectory()

TDirectory *& TDirectory::CurrentDirectory ( )
static

Return the current directory for the current thread.

Definition at line 380 of file TDirectory.cxx.

◆ DecodeNameCycle()

void TDirectory::DecodeNameCycle ( const char *  buffer,
char *  name,
Short_t cycle,
const size_t  namesize = 0 
)
static

Decode a namecycle "aap;2" into name "aap" and cycle "2".

Destination buffer size for name (including string terminator) should be specified in namesize.

Definition at line 1238 of file TDirectory.cxx.

◆ Delete()

void TDirectory::Delete ( const char *  namecycle = "")
virtual

Delete Objects or/and keys in a directory.

  • namecycle has the format name;cycle
  • namecycle = "" same as namecycle ="T*"
  • name = * means all
  • cycle = * means all cycles (memory and keys)
  • cycle = "" or cycle = 9999 ==> apply to a memory object When name=* use T* to delete subdirectories also

To delete one directory, you must specify the directory cycle, eg. file.Delete("dir1;1");

examples:

  • 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

Reimplemented from TObject.

Reimplemented in TFile, and TDirectoryFile.

Definition at line 651 of file TDirectory.cxx.

◆ DeleteAll()

void TDirectory::DeleteAll ( Option_t option = "")
virtual

Delete all objects from memory.

Definition at line 624 of file TDirectory.cxx.

◆ Draw()

void TDirectory::Draw ( Option_t option = "")
virtual

Fill Graphics Structure and Paint.

Loop on all objects (memory or file) and all subdirectories

Reimplemented from TObject.

Reimplemented in TFile.

Definition at line 707 of file TDirectory.cxx.

◆ EncodeNameCycle()

void TDirectory::EncodeNameCycle ( char *  buffer,
const char *  name,
Short_t  cycle 
)
static

Encode the name and cycle into buffer like: "aap;2".

Definition at line 1225 of file TDirectory.cxx.

◆ FillFullPath()

void TDirectory::FillFullPath ( TString buf) const
protected

Recursive method to fill full path for directory.

Definition at line 1002 of file TDirectory.cxx.

◆ FindKey()

virtual TKey* TDirectory::FindKey ( const char *  ) const
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 131 of file TDirectory.h.

◆ FindKeyAny()

virtual TKey* TDirectory::FindKeyAny ( const char *  ) const
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 132 of file TDirectory.h.

◆ FindObject() [1/2]

TObject * TDirectory::FindObject ( const char *  name) const
virtual

Find object by name in the list of memory objects.

Reimplemented from TObject.

Reimplemented in TROOT.

Definition at line 723 of file TDirectory.cxx.

◆ FindObject() [2/2]

TObject * TDirectory::FindObject ( const TObject obj) const
virtual

Find object in the list of memory objects.

Reimplemented from TObject.

Reimplemented in TROOT.

Definition at line 715 of file TDirectory.cxx.

◆ FindObjectAny()

TObject * TDirectory::FindObjectAny ( const char *  aname) const
virtual

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 in TROOT, and TDirectoryFile.

Definition at line 735 of file TDirectory.cxx.

◆ FindObjectAnyFile()

virtual TObject* TDirectory::FindObjectAnyFile ( const char *  ) const
inlinevirtual

Reimplemented in TROOT, and TDirectoryFile.

Definition at line 136 of file TDirectory.h.

◆ Get()

TObject * TDirectory::Get ( const char *  namecycle)
virtual

Return pointer to object identified by namecycle.

namecycle has the format name;cycle

  • name = * is illegal, cycle = * is illegal
  • cycle = "" or cycle = 9999 ==> apply to a memory object

examples:

  • 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 TDirectory::GetObject should be called. However, this function will still work for a non-TObject, providing that the calling application cast the return type to the correct type (which is the actual type of the object).

NOTE:

The method GetObject offer better protection and avoid the need for any cast:

MyClass *obj;
directory->GetObject("some object",obj);
if (obj) { ... the object exist and inherits from MyClass ... }

VERY IMPORTANT NOTE:

In case the class of this object derives from TObject but not as a first inheritance, one must use dynamic_cast<>(). #### Example 1: Normal case:

class MyClass : public TObject, public AnotherClass

then on return, one can do:

MyClass *obj = (MyClass*)directory->Get("some object of MyClass");

#### Example 2: Special case:

class MyClass : public AnotherClass, public TObject

then on return, one must do:

MyClass *obj = dynamic_cast<MyClass*>(directory->Get("some object of MyClass"));

Of course, dynamic_cast<> can also be used in the example 1.

Reimplemented in TDirectoryFile.

Definition at line 805 of file TDirectory.cxx.

◆ GetBufferSize()

virtual Int_t TDirectory::GetBufferSize ( ) const
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 146 of file TDirectory.h.

◆ GetDirectory()

TDirectory * TDirectory::GetDirectory ( const char *  apath,
Bool_t  printError = false,
const char *  funcname = "GetDirectory" 
)
virtual

Find a directory using apath.

It apath is null or empty, returns "this" directory. Otherwise use 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 in TDirectoryFile.

Definition at line 400 of file TDirectory.cxx.

◆ GetFile()

virtual TFile* TDirectory::GetFile ( ) const
inlinevirtual

Reimplemented in TROOT, and TDirectoryFile.

Definition at line 147 of file TDirectory.h.

◆ GetKey()

virtual TKey* TDirectory::GetKey ( const char *  ,
Short_t  = 9999 
) const
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 148 of file TDirectory.h.

◆ GetList()

virtual TList* TDirectory::GetList ( ) const
inlinevirtual

Definition at line 149 of file TDirectory.h.

◆ GetListOfKeys()

virtual TList* TDirectory::GetListOfKeys ( ) const
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 150 of file TDirectory.h.

◆ GetMother()

virtual TObject* TDirectory::GetMother ( ) const
inlinevirtual

Definition at line 151 of file TDirectory.h.

◆ GetMotherDir()

virtual TDirectory* TDirectory::GetMotherDir ( ) const
inlinevirtual

Definition at line 152 of file TDirectory.h.

◆ GetNbytesKeys()

virtual Int_t TDirectory::GetNbytesKeys ( ) const
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 153 of file TDirectory.h.

◆ GetNkeys()

virtual Int_t TDirectory::GetNkeys ( ) const
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 154 of file TDirectory.h.

◆ GetObject()

template<class T >
void TDirectory::GetObject ( const char *  namecycle,
T *&  ptr 
)
inline

Definition at line 139 of file TDirectory.h.

◆ GetObjectChecked() [1/2]

void * TDirectory::GetObjectChecked ( const char *  namecycle,
const char *  classname 
)
virtual

See documentation of TDirectory::GetObjectCheck(const char *namecycle, const TClass *cl)

Reimplemented in TDirectoryFile.

Definition at line 868 of file TDirectory.cxx.

◆ GetObjectChecked() [2/2]

void * TDirectory::GetObjectChecked ( const char *  namecycle,
const TClass expectedClass 
)
virtual

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.

namecycle has the format name;cycle

  • name = * is illegal, cycle = * is illegal
  • cycle = "" or cycle = 9999 ==> apply to a memory object

VERY IMPORTANT NOTE:

The calling application must cast the returned pointer to the type described by the 2 arguments (i.e. cl):

MyClass *obj = (MyClass*)directory->GetObjectChecked("some object of MyClass","MyClass"));

Note: We recommend using the method TDirectory::GetObject:

MyClass *obj = 0;
directory->GetObject("some object inheriting from MyClass",obj);
if (obj) { ... we found what we are looking for ... }

Reimplemented in TDirectoryFile.

Definition at line 897 of file TDirectory.cxx.

◆ GetObjectUnchecked()

void * TDirectory::GetObjectUnchecked ( const char *  namecycle)
virtual

Return pointer to object identified by namecycle.

The returned object may or may not derive from TObject.

  • namecycle has the format name;cycle
  • name = * is illegal, cycle = * is illegal
  • cycle = "" or cycle = 9999 ==> apply to a memory object

VERY IMPORTANT NOTE:

The calling application must cast the returned object to the final type, e.g.

MyClass *obj = (MyClass*)directory->GetObject("some object of MyClass");

Reimplemented in TDirectoryFile.

Definition at line 860 of file TDirectory.cxx.

◆ GetPath()

const char * TDirectory::GetPath ( ) const
virtual

Returns the full path of the directory.

E.g. file:/dir1/dir2. The returned path will be re-used by the next call to GetPath().

Definition at line 987 of file TDirectory.cxx.

◆ GetPathStatic()

const char * TDirectory::GetPathStatic ( ) const
virtual

Returns the full path of the directory.

E.g. file:/dir1/dir2. The returned path will be re-used by the next call to GetPath().

Definition at line 949 of file TDirectory.cxx.

◆ GetSeekDir()

virtual Long64_t TDirectory::GetSeekDir ( ) const
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 155 of file TDirectory.h.

◆ GetSeekKeys()

virtual Long64_t TDirectory::GetSeekKeys ( ) const
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 157 of file TDirectory.h.

◆ GetSeekParent()

virtual Long64_t TDirectory::GetSeekParent ( ) const
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 156 of file TDirectory.h.

◆ GetUUID()

TUUID TDirectory::GetUUID ( ) const
inline

Definition at line 160 of file TDirectory.h.

◆ IsFolder()

virtual Bool_t TDirectory::IsFolder ( ) const
inlinevirtual

Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).

Reimplemented from TObject.

Reimplemented in TROOT.

Definition at line 161 of file TDirectory.h.

◆ IsModified()

virtual Bool_t TDirectory::IsModified ( ) const
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 162 of file TDirectory.h.

◆ IsWritable()

virtual Bool_t TDirectory::IsWritable ( ) const
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 163 of file TDirectory.h.

◆ ls()

void TDirectory::ls ( Option_t option = "") const
virtual

List Directory contents.

Indentation is used to identify the directory tree Subdirectories are listed first, then objects in memory.

The option can has the following format:

 [<regexp>]

The <regexp> will be used to match the name of the objects. By default memory and disk objects are listed.

Reimplemented from TNamed.

Reimplemented in TROOT, TFile, and TDirectoryFile.

Definition at line 1077 of file TDirectory.cxx.

◆ mkdir()

TDirectory * TDirectory::mkdir ( const char *  name,
const char *  title = "" 
)
virtual

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. 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"). In particular, the steps to create first a/b/c and then a/b/d without receiving errors are:

TFile * file = new TFile("afile","RECREATE");
file->mkdir("a");
file->cd("a");
gDirectory->mkdir("b/c");
gDirectory->cd("b");
gDirectory->mkdir("d");

Reimplemented in TDirectoryFile.

Definition at line 1034 of file TDirectory.cxx.

◆ OpenFile()

virtual TFile* TDirectory::OpenFile ( const char *  ,
Option_t = "",
const char *  = "",
Int_t  = 1,
Int_t  = 0 
)
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 166 of file TDirectory.h.

◆ operator=()

void TDirectory::operator= ( const TDirectory )
protected

◆ Paint()

void TDirectory::Paint ( Option_t option = "")
virtual

Paint all objects in the directory.

Reimplemented from TObject.

Reimplemented in TFile, TSQLFile, and TXMLFile.

Definition at line 1113 of file TDirectory.cxx.

◆ Print()

void TDirectory::Print ( Option_t option = "") const
virtual

Print all objects in the directory.

Reimplemented from TNamed.

Reimplemented in TFile, TSQLFile, TXNetFile, TXMLFile, TMemFile, and TNetFile.

Definition at line 1121 of file TDirectory.cxx.

◆ Purge()

virtual void TDirectory::Purge ( Short_t  = 1)
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 171 of file TDirectory.h.

◆ pwd()

void TDirectory::pwd ( ) const
virtual

Print the path of the directory.

Definition at line 1129 of file TDirectory.cxx.

◆ ReadAll()

virtual void TDirectory::ReadAll ( Option_t = "")
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 173 of file TDirectory.h.

◆ ReadKeys()

virtual Int_t TDirectory::ReadKeys ( Bool_t  = kTRUE)
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 174 of file TDirectory.h.

◆ ReadTObject()

virtual Int_t TDirectory::ReadTObject ( TObject ,
const char *   
)
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 175 of file TDirectory.h.

◆ RecursiveRemove()

void TDirectory::RecursiveRemove ( TObject obj)
virtual

Recursively remove object from a Directory.

Reimplemented from TObject.

Reimplemented in TROOT.

Definition at line 1137 of file TDirectory.cxx.

◆ RegisterContext()

void TDirectory::RegisterContext ( TContext ctxt)
protected

Register a TContext pointing to this TDirectory object.

Definition at line 1279 of file TDirectory.cxx.

◆ Remove()

TObject * TDirectory::Remove ( TObject obj)
virtual

Remove an object from the in-memory list.

Reimplemented in TROOT.

Definition at line 1145 of file TDirectory.cxx.

◆ rmdir()

void TDirectory::rmdir ( const char *  name)
virtual

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 in TDirectoryFile.

Definition at line 1160 of file TDirectory.cxx.

◆ Save()

virtual void TDirectory::Save ( )
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 179 of file TDirectory.h.

◆ SaveObjectAs()

Int_t TDirectory::SaveObjectAs ( const TObject obj,
const char *  filename = "",
Option_t option = "" 
) const
virtual

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 in TDirectoryFile.

Definition at line 1181 of file TDirectory.cxx.

◆ SaveSelf()

virtual void TDirectory::SaveSelf ( Bool_t  = kFALSE)
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 181 of file TDirectory.h.

◆ SetBufferSize()

virtual void TDirectory::SetBufferSize ( Int_t  )
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 182 of file TDirectory.h.

◆ SetModified()

virtual void TDirectory::SetModified ( )
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 183 of file TDirectory.h.

◆ SetMother()

virtual void TDirectory::SetMother ( TObject mother)
inlinevirtual

Definition at line 184 of file TDirectory.h.

◆ SetName()

void TDirectory::SetName ( const char *  newname)
virtual

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.

DO NOT use this method to 'rename a directory'. Renaming a directory is currently NOT supported.

Reimplemented from TNamed.

Definition at line 1217 of file TDirectory.cxx.

◆ SetSeekDir()

virtual void TDirectory::SetSeekDir ( Long64_t  )
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 187 of file TDirectory.h.

◆ SetTRefAction()

virtual void TDirectory::SetTRefAction ( TObject ,
TObject  
)
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 186 of file TDirectory.h.

◆ SetWritable()

virtual void TDirectory::SetWritable ( Bool_t  )
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 188 of file TDirectory.h.

◆ Sizeof()

virtual Int_t TDirectory::Sizeof ( ) const
inlinevirtual

Return size of the TNamed part of the TObject.

Reimplemented from TNamed.

Reimplemented in TFile, TSQLFile, TDirectoryFile, and TXMLFile.

Definition at line 189 of file TDirectory.h.

◆ UnregisterContext()

void TDirectory::UnregisterContext ( TContext ctxt)
protected

UnRegister a TContext pointing to this TDirectory object.

Definition at line 1309 of file TDirectory.cxx.

◆ Write() [1/2]

virtual Int_t TDirectory::Write ( const char *  name = 0,
Int_t  option = 0,
Int_t  bufsize = 0 
)
inlinevirtual

Write this object to the current directory.

For more see the const version of this method.

Reimplemented from TObject.

Reimplemented in TFile, TSQLFile, ROOT::Experimental::TBufferMergerFile, TDirectoryFile, TXMLFile, and TParallelMergingFile.

Definition at line 190 of file TDirectory.h.

◆ Write() [2/2]

virtual Int_t TDirectory::Write ( const char *  name = 0,
Int_t  option = 0,
Int_t  bufsize = 0 
) const
inlinevirtual

Write this object to the current directory.

The data structure corresponding to this object is serialized. The corresponding buffer is written to the current directory with an associated key with name "name".

Writing an object to a file involves the following steps:

  • Creation of a support TKey object in the current directory. The TKey object creates a TBuffer object.
  • The TBuffer object is filled via the class::Streamer function.
  • If the file is compressed (default) a second buffer is created to hold the compressed buffer.
  • Reservation of the corresponding space in the file by looking in the TFree list of free blocks of the file.
  • The buffer is written to the file.

Bufsize can be given to force a given buffer size to write this object. By default, the buffersize will be taken from the average buffer size of all objects written to the current file so far.

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 GetName().

The option can be a combination of: kSingleKey, kOverwrite or kWriteDelete Using the kOverwrite option a previous key with the same name is overwritten. The previous key is deleted before writing the new object. Using the kWriteDelete option a previous key with the same name is deleted only after the new object has been written. This option is safer than kOverwrite but it is slower. The kSingleKey option is only used by TCollection::Write() to write a container with a single key instead of each object in the container with its own key.

An object is read from the file into memory via TKey::Read() or via TObject::Read().

The function returns the total number of bytes written to the file. It returns 0 if the object cannot be written.

Reimplemented from TObject.

Reimplemented in TFile, TSQLFile, TDirectoryFile, TXMLFile, and TParallelMergingFile.

Definition at line 191 of file TDirectory.h.

◆ WriteDirHeader()

virtual void TDirectory::WriteDirHeader ( )
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 202 of file TDirectory.h.

◆ WriteKeys()

virtual void TDirectory::WriteKeys ( )
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 203 of file TDirectory.h.

◆ WriteObject() [1/2]

Int_t TDirectory::WriteObject ( void obj,
const char *  name,
Option_t option = "",
Int_t  bufsize = 0 
)
private

◆ WriteObject() [2/2]

template<class T >
Int_t TDirectory::WriteObject ( const T *  obj,
const char *  name,
Option_t option = "",
Int_t  bufsize = 0 
)
inline

Definition at line 196 of file TDirectory.h.

◆ WriteObjectAny() [1/2]

virtual Int_t TDirectory::WriteObjectAny ( const void ,
const char *  ,
const char *  ,
Option_t = "",
Int_t  = 0 
)
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 200 of file TDirectory.h.

◆ WriteObjectAny() [2/2]

virtual Int_t TDirectory::WriteObjectAny ( const void ,
const TClass ,
const char *  ,
Option_t = "",
Int_t  = 0 
)
inlinevirtual

Reimplemented in TDirectoryFile.

Definition at line 201 of file TDirectory.h.

◆ WriteTObject()

Int_t TDirectory::WriteTObject ( const TObject obj,
const char *  name = 0,
Option_t = "",
Int_t  = 0 
)
virtual

See TDirectoryFile::WriteTObject for details.

Reimplemented in TDirectoryFile.

Definition at line 1297 of file TDirectory.cxx.

Friends And Related Function Documentation

◆ TContext

friend class TContext
friend

Definition at line 104 of file TDirectory.h.

Member Data Documentation

◆ fContext

TContext* TDirectory::fContext
protected

Buffer for GetPath() function.

Definition at line 90 of file TDirectory.h.

◆ fContextPeg

std::atomic<size_t> TDirectory::fContextPeg
protected

Pointer to a list of TContext object pointing to this TDirectory.

Definition at line 92 of file TDirectory.h.

◆ fgAddDirectory

Bool_t TDirectory::fgAddDirectory = kTRUE
staticprotected

MSVC doesn't support = ATOMIC_FLAG_INIT;.

Definition at line 95 of file TDirectory.h.

◆ fList

TList* TDirectory::fList
protected

Definition at line 87 of file TDirectory.h.

◆ fMother

TObject* TDirectory::fMother
protected

Definition at line 86 of file TDirectory.h.

◆ fPathBuffer

TString TDirectory::fPathBuffer
protected

Definition at line 89 of file TDirectory.h.

◆ fSpinLock

std::atomic_flag TDirectory::fSpinLock
mutableprotected

Counter delaying the TDirectory destructor from finishing.

Definition at line 93 of file TDirectory.h.

◆ fUUID

TUUID TDirectory::fUUID
protected

Definition at line 88 of file TDirectory.h.

Libraries for TDirectory:
[legend]

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