#ifndef TXmlBank_hxx_seen #define TXmlBank_hxx_seen #include "IMidasBank.hxx" #include "IXmlOdb.hxx" #define TXML_BANK_TITLE "XML Bank" namespace COMET { class IXmlBank; class IXmlOdb; }; /// This class holds a XML dump of the ODB as capture by begin and end records class COMET::IXmlBank : public COMET::IMidasBank { public: IXmlBank(); explicit IXmlBank(const ULong64_t *bank, const char* title = TXML_BANK_TITLE); virtual ~IXmlBank(); /// Get access to XML ODB interpreter. Will be NULL if fail to parse. /// Play tricks with constness as fXmlOdb is mutable and not saved /// on output. const IXmlOdb* GetXmlOdb() const { if ( ! fXmlOdb ) const_cast(this)->InitXmlOdb(); return fXmlOdb; } /// Print contents to COMETLog void Print(const Option_t* opt = "") const; private: void InitXmlOdb(); /// XML ODB interpreter for the data mutable IXmlOdb * fXmlOdb; //! Don't save on output, instead recreate from buffer. }; #endif