20 class TKeyXML final :
public TKey {
23 TKeyXML(
const TKeyXML &) =
delete;
24 TKeyXML &operator=(
const TKeyXML &) =
delete;
30 TKeyXML(TDirectory *mother, Long64_t keyid,
const TObject *obj,
const char *name =
nullptr,
31 const char *title =
nullptr);
32 TKeyXML(TDirectory *mother, Long64_t keyid,
const void *obj,
const TClass *cl,
const char *name,
33 const char *title =
nullptr);
34 TKeyXML(TDirectory *mother, Long64_t keyid, XMLNodePointer_t keynode);
38 void Delete(Option_t *option =
"") final;
39 void DeleteBuffer() final {}
40 void FillBuffer(
char *&) final {}
41 char *GetBuffer() const final {
return nullptr; }
42 Long64_t GetSeekKey() const final {
return fKeyNode ? 1024 : 0; }
43 Long64_t GetSeekPdir() const final {
return fKeyNode ? 1024 : 0; }
49 Int_t Read(TObject *tobj)
final;
50 TObject *ReadObj() final;
51 TObject *ReadObjWithBuffer(
char *bufferRead) final;
52 void *ReadObjectAny(const TClass *expectedClass) final;
54 void ReadBuffer(
char *&) final {}
55 Bool_t ReadFile() final {
return kTRUE; }
56 void SetBuffer() final { fBuffer =
nullptr; }
57 Int_t WriteFile(Int_t = 1, TFile * =
nullptr) final {
return 0; }
61 XMLNodePointer_t KeyNode()
const {
return fKeyNode; }
62 Long64_t GetKeyId()
const {
return fKeyId; }
63 Bool_t IsSubdir()
const {
return fSubdir; }
64 void SetSubir() { fSubdir = kTRUE; }
65 void UpdateObject(TObject *obj);
66 void UpdateAttributes();
69 Int_t Read(
const char *name)
final {
return TKey::Read(name); }
70 void StoreObject(
const void *obj,
const TClass *cl, Bool_t check_tobj = kFALSE);
71 void StoreKeyAttributes();
72 TXMLEngine *XMLEngine();
74 void *XmlReadAny(
void *obj,
const TClass *expectedClass);
76 XMLNodePointer_t fKeyNode{
nullptr};
78 Bool_t fSubdir{kFALSE};
80 ClassDefOverride(TKeyXML, 1)