// @(#)root/xml:$Name: $:$Id: TKeyXML.h,v 1.1 2005/05/06 14:25:34 brun Exp $
// Author: Sergey Linev 10.05.2004
/*************************************************************************
* Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifndef ROOT_TKeyXML
#define ROOT_TKeyXML
#ifndef ROOT_TXMLEngine
#include "TXMLEngine.h"
#endif
#ifndef ROOT_TKey
#include "TKey.h"
#endif
class TXMLFile;
class TKeyXML : public TKey {
protected:
TKeyXML();
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);
virtual ~TKeyXML();
// redefined TKey Methods
virtual void Browse(TBrowser *b);
virtual void Delete(Option_t *option="");
virtual void DeleteBuffer() {}
virtual void FillBuffer(char *&) {}
virtual char *GetBuffer() const { return 0; }
virtual Long64_t GetSeekKey() const { return 1; }
virtual Long64_t GetSeekPdir() const { return 1;}
//virtual ULong_t Hash() const { return 0; }
virtual void Keep() {}
//virtual void ls(Option_t* ="") const;
//virtual void Print(Option_t* ="") const {}
virtual Int_t Read(TObject*) { return 0; }
virtual TObject *ReadObj();
virtual void *ReadObjectAny(const TClass *cl);
virtual void ReadBuffer(char *&) {}
virtual void ReadFile() {}
virtual void SetBuffer() { fBuffer = 0; }
virtual void SetParent(const TObject* ) { }
virtual Int_t Sizeof() const { return 0; }
virtual Int_t WriteFile(Int_t =1) { return 0; }
// TKeyXML specific methods
xmlNodePointer KeyNode() const { return fKeyNode; }
void SetXML(TXMLEngine* xml) { fXML = xml; }
protected:
virtual Int_t Read(const char *name) { return TKey::Read(name); }
void StoreObject(const void* obj, const TClass* cl);
xmlNodePointer ObjNode();
xmlNodePointer BlockNode();
TXMLFile* fFile; //!
TXMLEngine* fXML; //!
xmlNodePointer fKeyNode; //!
ClassDef(TKeyXML,1) // a special TKey for XML files
};
#endif
syntax highlighted by Code2HTML, v. 0.9.1