12 #ifndef ROOT_TDirectoryFile
13 #define ROOT_TDirectoryFile
32 class TDirectoryFile :
public TDirectory {
35 Bool_t fModified{kFALSE};
36 Bool_t fWritable{kFALSE};
43 Long64_t fSeekParent{0};
44 Long64_t fSeekKeys{0};
45 TFile *fFile{
nullptr};
46 TList *fKeys{
nullptr};
49 void InitDirectoryFile(TClass *cl =
nullptr);
50 void BuildDirectoryFile(TFile* motherFile, TDirectory* motherDir);
53 TDirectoryFile(
const TDirectoryFile &directory) =
delete;
54 void operator=(
const TDirectoryFile &) =
delete;
58 enum EStatusBits { kCloseDirectory = BIT(7) };
61 TDirectoryFile(
const char *name,
const char *title, Option_t *option=
"", TDirectory* motherDir =
nullptr);
62 virtual ~TDirectoryFile();
64 void Append(TObject *obj, Bool_t replace = kFALSE)
override;
65 void Add(TObject *obj, Bool_t replace = kFALSE)
override { Append(obj,replace); }
66 Int_t AppendKey(TKey *key)
override;
67 void Browse(TBrowser *b)
override;
68 void Build(TFile* motherFile =
nullptr, TDirectory* motherDir =
nullptr)
override { BuildDirectoryFile(motherFile, motherDir); }
69 TObject *CloneObject(
const TObject *obj, Bool_t autoadd = kTRUE)
override;
70 void Close(Option_t *option=
"")
override;
71 void Copy(TObject &)
const override { MayNotUse(
"Copy(TObject &)"); }
72 Bool_t cd(
const char *path =
nullptr)
override;
73 void Delete(
const char *namecycle=
"")
override;
74 void FillBuffer(
char *&buffer)
override;
75 TKey *FindKey(
const char *keyname)
const override;
76 TKey *FindKeyAny(
const char *keyname)
const override;
77 TObject *FindObjectAny(
const char *name)
const override;
78 TObject *FindObjectAnyFile(
const char *name)
const override;
79 TObject *Get(
const char *namecycle)
override;
81 template <
class T>
inline T* Get(
const char* namecycle)
83 return TDirectory::Get<T>(namecycle);
85 TDirectory *GetDirectory(
const char *apath, Bool_t printError =
false,
const char *funcname =
"GetDirectory")
override;
86 void *GetObjectChecked(
const char *namecycle,
const char* classname)
override;
87 void *GetObjectChecked(
const char *namecycle,
const TClass* cl)
override;
88 void *GetObjectUnchecked(
const char *namecycle)
override;
89 Int_t GetBufferSize()
const override;
90 const TDatime &GetCreationDate()
const {
return fDatimeC; }
91 TFile *GetFile()
const override {
return fFile; }
92 TKey *GetKey(
const char *name, Short_t cycle=9999)
const override;
93 TList *GetListOfKeys()
const override {
return fKeys; }
94 const TDatime &GetModificationDate()
const {
return fDatimeM; }
95 Int_t GetNbytesKeys()
const override {
return fNbytesKeys; }
96 Int_t GetNkeys()
const override {
return fKeys->GetSize(); }
97 Long64_t GetSeekDir()
const override {
return fSeekDir; }
98 Long64_t GetSeekParent()
const override {
return fSeekParent; }
99 Long64_t GetSeekKeys()
const override {
return fSeekKeys; }
100 Bool_t IsModified()
const override {
return fModified; }
101 Bool_t IsWritable()
const override {
return fWritable; }
102 void ls(Option_t *option=
"")
const override;
103 TDirectory *mkdir(
const char *name,
const char *title=
"", Bool_t returnExistingDirectory = kFALSE)
override;
104 TFile *OpenFile(
const char *name, Option_t *option=
"",
105 const char *ftitle =
"", Int_t compress = ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault,
106 Int_t netopt = 0)
override;
107 void Purge(Short_t nkeep=1)
override;
108 void ReadAll(Option_t *option=
"")
override;
109 Int_t ReadKeys(Bool_t forceRead=kTRUE)
override;
110 Int_t ReadTObject(TObject *obj,
const char *keyname)
override;
111 virtual void ResetAfterMerge(TFileMergeInfo *);
112 void rmdir(
const char *name)
override;
113 void Save()
override;
114 void SaveSelf(Bool_t force = kFALSE)
override;
115 Int_t SaveObjectAs(
const TObject *obj,
const char *filename=
"", Option_t *option=
"")
const override;
116 void SetBufferSize(Int_t bufsize)
override;
117 void SetModified()
override {fModified = kTRUE;}
118 void SetSeekDir(Long64_t v)
override { fSeekDir = v; }
119 void SetTRefAction(TObject *ref, TObject *parent)
override;
120 void SetWritable(Bool_t writable=kTRUE)
override;
121 Int_t Sizeof()
const override;
122 Int_t Write(
const char *name=
nullptr, Int_t opt=0, Int_t bufsize=0)
override;
123 Int_t Write(
const char *name=
nullptr, Int_t opt=0, Int_t bufsize=0)
const override;
124 Int_t WriteTObject(
const TObject *obj,
const char *name=
nullptr, Option_t *option=
"", Int_t bufsize=0)
override;
125 Int_t WriteObjectAny(
const void *obj,
const char *classname,
const char *name, Option_t *option=
"", Int_t bufsize=0)
override;
126 Int_t WriteObjectAny(
const void *obj,
const TClass *cl,
const char *name, Option_t *option=
"", Int_t bufsize=0)
override;
127 void WriteDirHeader()
override;
128 void WriteKeys()
override;
130 ClassDefOverride(TDirectoryFile,5)