library: libXMLIO #include "TKeyXML.h"

# TKeyXML

class description - source file - inheritance tree (.pdf)

## class TKeyXML : public TKey

| Inheritance Chart:
`TObject`
| <- | `TNamed`
| <- | `TKey`
| <- | `TKeyXML` |

        protected:

                         TKeyXML()
          xmlNodePointer BlockNode()
          xmlNodePointer ObjNode()
           virtual Int_t Read(const char* name)
                    void StoreObject(const void* obj, const TClass* cl)

        public:

                           TKeyXML(TXMLFile* file, const TObject* obj, const char* name = "0")
                           TKeyXML(TXMLFile* file, const void* obj, const TClass* cl, const char* name)
                           TKeyXML(TXMLFile* file, xmlNodePointer keynode)
                           TKeyXML(const TKeyXML&)
                   virtual ~TKeyXML()
              virtual void Browse(TBrowser* b)
            static TClass* Class()
              virtual void Delete(Option_t* option = "")
              virtual void DeleteBuffer()
              virtual void FillBuffer(char*&)
             virtual char* GetBuffer() const
          virtual Long64_t GetSeekKey() const
          virtual Long64_t GetSeekPdir() const
           virtual TClass* IsA() const
              virtual void Keep()
            xmlNodePointer KeyNode() const
                  TKeyXML& operator=(const TKeyXML&)
             virtual Int_t Read(TObject*)
              virtual void ReadBuffer(char*&)
              virtual void ReadFile()
          virtual TObject* ReadObj()
             virtual void* ReadObjectAny(const TClass* cl)
              virtual void SetBuffer()
              virtual void SetParent(const TObject*)
                      void SetXML(TXMLEngine* xml)
              virtual void ShowMembers(TMemberInspector& insp, char* parent)
             virtual Int_t Sizeof() const
              virtual void Streamer(TBuffer& b)
                      void StreamerNVirtual(TBuffer& b)
             virtual Int_t WriteFile(Int_t = 1)

### Data Members

        protected:

               TXMLFile* fFile     !
             TXMLEngine* fXML      !
          xmlNodePointer fKeyNode  !

## Class Description

     TKeyXML is represents one block of data in TXMLFile
     Normally this block corresponds to data of single object like histogram,
     TObjArray and so on.
    ________________________________________________________________________

TKeyXML() : TKey(), fFile(0), fXML(0), fKeyNode(0)

     default constructor

TKeyXML(TXMLFile* file, const TObject* obj, const char* name) : TKey(), fFile(file), fXML(file->XML()), fKeyNode(0)

     Creates TKeyXML and convert obj data to xml structures

TKeyXML(TXMLFile* file, const void* obj, const TClass* cl, const char* name) : TKey(), fFile(file), fXML(file->XML()), fKeyNode(0)

     Creates TKeyXML and convert obj data to xml structures

TKeyXML(TXMLFile* file, xmlNodePointer keynode) : TKey(), fFile(file), fXML(file->XML()), fKeyNode(keynode)

     Creates TKeyXML and takes ownership over xml node, from which object can be restored

~TKeyXML()

     TKeyXML destructor

void Browse(TBrowser *b)

     Browse object corresponding to this key

void Delete(Option_t * /*option*/)

     Delete key from current directory
     Note: TKeyXML object is not deleted. You still have to call "delete key"

void StoreObject(const void* obj, const TClass* cl)

      convert object to xml structure and keep this structure in key

xmlNodePointer ObjNode()

     return starting node, where object was stored

xmlNodePointer BlockNode()

     return node, where key binary data is stored

TObject* ReadObj()

     read object derived from TObject class, from key
     if it is not TObject or in case of error, return 0

void* ReadObjectAny(const TClass* /*cl*/)

     read object of any type

### Inline Functions

                      void DeleteBuffer()
                      void FillBuffer(char*&)
                     char* GetBuffer() const
                  Long64_t GetSeekKey() const
                  Long64_t GetSeekPdir() const
                      void Keep()
                     Int_t Read(TObject*)
                      void ReadBuffer(char*&)
                      void ReadFile()
                      void SetBuffer()
                      void SetParent(const TObject*)
                     Int_t Sizeof() const
                     Int_t WriteFile(Int_t = 1)
            xmlNodePointer KeyNode() const
                      void SetXML(TXMLEngine* xml)
                     Int_t Read(const char* name)
                   TClass* Class()
                   TClass* IsA() const
                      void ShowMembers(TMemberInspector& insp, char* parent)
                      void Streamer(TBuffer& b)
                      void StreamerNVirtual(TBuffer& b)
                   TKeyXML TKeyXML(const TKeyXML&)
                  TKeyXML& operator=(const TKeyXML&)

Author: Sergey Linev, Rene Brun 10.05.2004
Last update: root/xml:$Name: $:$Id: TKeyXML.cxx,v 1.1 2005/05/06 14:25:34 brun Exp $
Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. *