TXMLSetup.h

Go to the documentation of this file.
00001 // @(#)root/xml:$Id: TXMLSetup.h 20882 2007-11-19 11:31:26Z rdm $
00002 // Author: Sergey Linev  10.05.2004
00003 
00004 /*************************************************************************
00005  * Copyright (C) 1995-2004, Rene Brun and Fons Rademakers.               *
00006  * All rights reserved.                                                  *
00007  *                                                                       *
00008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
00009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
00010  *************************************************************************/
00011 
00012 #ifndef ROOT_TXMLSetup
00013 #define ROOT_TXMLSetup
00014 
00015 #ifndef ROOT_TObject
00016 #include "TObject.h"
00017 #endif
00018 #ifndef ROOT_TString
00019 #include "TString.h"
00020 #endif
00021 
00022 namespace xmlio {
00023    extern const char* Root;
00024    extern const char* Setup;
00025    extern const char* ClassVersion;
00026    extern const char* IOVersion;
00027    extern const char* OnlyVersion;
00028    extern const char* Ptr;
00029    extern const char* Ref;
00030    extern const char* Null;
00031    extern const char* IdBase;
00032    extern const char* Size;
00033    extern const char* Xmlobject;
00034    extern const char* Xmlkey;
00035    extern const char* Cycle;
00036    extern const char* XmlBlock;
00037    extern const char* Zip;
00038    extern const char* Object;
00039    extern const char* ObjClass;
00040    extern const char* Class;
00041    extern const char* Member;
00042    extern const char* Item;
00043    extern const char* Name;
00044    extern const char* Title;
00045    extern const char* CreateTm;
00046    extern const char* ModifyTm;
00047    extern const char* ObjectUUID;
00048    extern const char* Type;
00049    extern const char* Value;
00050    extern const char* v;
00051    extern const char* cnt;
00052    extern const char* True;
00053    extern const char* False;
00054    extern const char* SInfos;
00055     
00056    extern const char* Array;
00057    extern const char* Bool;
00058    extern const char* Char;
00059    extern const char* Short;
00060    extern const char* Int;
00061    extern const char* Long;
00062    extern const char* Long64;
00063    extern const char* Float;
00064    extern const char* Double;
00065    extern const char* UChar;
00066    extern const char* UShort;
00067    extern const char* UInt;
00068    extern const char* ULong;
00069    extern const char* ULong64;
00070    extern const char* String;
00071    extern const char* CharStar;
00072 }
00073 
00074 class TStreamerElement;
00075 
00076 class TXMLSetup {
00077    public:
00078       enum EXMLLayout { kSpecialized = 2,
00079                         kGeneralized = 3 };
00080 
00081       TXMLSetup();
00082       TXMLSetup(const char* opt);
00083       TXMLSetup(const TXMLSetup& src);
00084       virtual ~TXMLSetup();
00085 
00086       TString        GetSetupAsString();
00087 
00088       void           PrintSetup();
00089 
00090       EXMLLayout     GetXmlLayout() const { return fXmlLayout; }
00091       Bool_t         IsStoreStreamerInfos() const { return fStoreStreamerInfos; }
00092       Bool_t         IsUseDtd() const { return fUseDtd; }
00093       Bool_t         IsUseNamespaces() const { return fUseNamespaces; }
00094       
00095       virtual void   SetXmlLayout(EXMLLayout layout) { fXmlLayout = layout; }
00096       virtual void   SetStoreStreamerInfos(Bool_t iConvert = kTRUE) { fStoreStreamerInfos = iConvert; }
00097       virtual void   SetUsedDtd(Bool_t use = kTRUE) { fUseDtd = use; }
00098       virtual void   SetUseNamespaces(Bool_t iUseNamespaces = kTRUE) { fUseNamespaces = iUseNamespaces; }
00099 
00100       const char*    XmlConvertClassName(const char* name);
00101       const char*    XmlClassNameSpaceRef(const TClass* cl);
00102       const char*    XmlGetElementName(const TStreamerElement* el);
00103       
00104       Int_t          GetNextRefCounter() { return fRefCounter++; }
00105       
00106       static TString DefaultXmlSetup();
00107       static void    SetNameSpaceBase(const char* namespacebase);
00108 
00109    protected:
00110 
00111       TClass*        XmlDefineClass(const char* xmlClassName);
00112       const char*    GetElItemName(TStreamerElement* el);
00113       
00114       Bool_t         IsValidXmlSetup(const char* setupstr);
00115       Bool_t         ReadSetupFromStr(const char* setupstr);
00116 
00117       Int_t          AtoI(const char* sbuf, Int_t def = 0, const char* errinfo = 0);
00118 
00119       EXMLLayout     fXmlLayout;
00120       Bool_t         fStoreStreamerInfos;
00121       Bool_t         fUseDtd;
00122       Bool_t         fUseNamespaces;
00123 
00124       Int_t          fRefCounter;      //!  counter , used to build id of xml references
00125 
00126       TString        fStrBuf;          //!  buffer, used in XmlDefineClass() function
00127       
00128       static TString fgNameSpaceBase;   
00129 
00130    ClassDef(TXMLSetup,1) //settings to be stored in XML files
00131 };
00132 
00133 #endif

Generated on Tue Jul 5 14:28:32 2011 for ROOT_528-00b_version by  doxygen 1.5.1