00001 #ifndef DDL_Configuration_H 00002 #define DDL_Configuration_H 00003 00004 // --------------------------------------------------------------------------- 00005 // Includes 00006 // --------------------------------------------------------------------------- 00007 #include "DetectorDescription/Parser/interface/DDLDocumentProvider.h" 00008 #include "DetectorDescription/Parser/interface/DDLSAX2ConfigHandler.h" 00009 00010 #include <xercesc/sax2/SAX2XMLReader.hpp> 00011 00012 class DDLParser; 00013 class DDLSAX2Handler; 00014 class DDLSAX2ConfigHandler; 00015 00016 #include <string> 00017 #include <vector> 00018 #include <map> 00019 00021 00030 class DDLConfiguration : public DDLDocumentProvider { 00031 00032 // friend DDLParser; 00033 00034 public: 00035 typedef xercesc_2_7::SAX2XMLReader SAX2XMLReader; 00036 00037 explicit DDLConfiguration(DDLParser *); 00038 DDLConfiguration(); 00039 virtual ~DDLConfiguration(); 00040 00042 int readConfig(const std::string& filename); 00043 00045 virtual const std::vector < std::string >& getFileList(void) const; 00046 00048 virtual const std::vector < std::string >& getURLList(void) const; 00049 00051 virtual void dumpFileList(void) const; 00052 00054 virtual bool doValidation() const; 00055 00057 std::string getSchemaLocation() const; 00058 00059 protected: 00060 00061 private: 00062 SAX2XMLReader* parser_; 00063 DDLSAX2ConfigHandler configHandler_; 00064 }; 00065 00066 #endif