// @(#)root/xml:$Name: $:$Id: TXMLSetup.h,v 1.6 2004/06/29 14:45:38 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_TXMLSetup
#define ROOT_TXMLSetup
#ifndef ROOT_TObject
#include "TObject.h"
#endif
#ifndef ROOT_TString
#include "TString.h"
#endif
extern const char* xmlNames_Root;
extern const char* xmlNames_Setup;
extern const char* xmlNames_ClassVersion;
extern const char* xmlNames_OnlyVersion;
extern const char* xmlNames_Ptr;
extern const char* xmlNames_Ref;
extern const char* xmlNames_Null;
extern const char* xmlNames_IdBase;
extern const char* xmlNames_Size;
extern const char* xmlNames_Xmlobject;
extern const char* xmlNames_Xmlkey;
extern const char* xmlNames_Cycle;
extern const char* xmlNames_XmlBlock;
extern const char* xmlNames_Zip;
extern const char* xmlNames_Object;
extern const char* xmlNames_ObjClass;
extern const char* xmlNames_Class;
extern const char* xmlNames_Member;
extern const char* xmlNames_Item;
extern const char* xmlNames_Name;
extern const char* xmlNames_Type;
extern const char* xmlNames_Value;
extern const char* xmlNames_v;
extern const char* xmlNames_cnt;
extern const char* xmlNames_true;
extern const char* xmlNames_false;
extern const char* xmlNames_SInfos;
extern const char* xmlNames_Array;
extern const char* xmlNames_Bool;
extern const char* xmlNames_Char;
extern const char* xmlNames_Short;
extern const char* xmlNames_Int;
extern const char* xmlNames_Long;
extern const char* xmlNames_Long64;
extern const char* xmlNames_Float;
extern const char* xmlNames_Double;
extern const char* xmlNames_UChar;
extern const char* xmlNames_UShort;
extern const char* xmlNames_UInt;
extern const char* xmlNames_ULong;
extern const char* xmlNames_ULong64;
extern const char* xmlNames_String;
extern const char* xmlNames_CharStar;
class TStreamerElement;
class TXMLSetup {
public:
enum EXMLLayout { kSpecialized = 2,
kGeneralized = 3 };
TXMLSetup();
TXMLSetup(const char* opt);
TXMLSetup(const TXMLSetup& src);
virtual ~TXMLSetup();
TString GetSetupAsString();
void PrintSetup();
EXMLLayout GetXmlLayout() const { return fXmlLayout; }
Bool_t IsStoreStreamerInfos() const { return fStoreStreamerInfos; }
Bool_t IsUseDtd() const { return fUseDtd; }
Bool_t IsUseNamespaces() const { return fUseNamespaces; }
virtual void SetXmlLayout(EXMLLayout layout) { fXmlLayout = layout; }
virtual void SetStoreStreamerInfos(Bool_t iConvert = kTRUE) { fStoreStreamerInfos = iConvert; }
virtual void SetUsedDtd(Bool_t use = kTRUE) { fUseDtd = use; }
virtual void SetUseNamespaces(Bool_t iUseNamespaces = kTRUE) { fUseNamespaces = iUseNamespaces; }
const char* XmlConvertClassName(const char* name);
const char* XmlClassNameSpaceRef(const TClass* cl);
const char* XmlGetElementName(const TStreamerElement* el);
Int_t GetNextRefCounter() { return fRefCounter++; }
static TString DefaultXmlSetup();
static void SetNameSpaceBase(const char* namespacebase);
protected:
TClass* XmlDefineClass(const char* xmlClassName);
const char* GetElItemName(TStreamerElement* el);
Bool_t IsValidXmlSetup(const char* setupstr);
Bool_t ReadSetupFromStr(const char* setupstr);
Int_t AtoI(const char* sbuf, Int_t def = 0, const char* errinfo = 0);
EXMLLayout fXmlLayout;
Bool_t fStoreStreamerInfos;
Bool_t fUseDtd;
Bool_t fUseNamespaces;
Int_t fRefCounter; //! counter , used to build id of xml references
TString fStrBuf; //! buffer, used in XmlDefineClass() function
static TString fNameSpaceBase;
ClassDef(TXMLSetup,1) //settings to be stored in XML files
};
#endif
syntax highlighted by Code2HTML, v. 0.9.1