1 #ifndef DETECTOR_DESCRIPTION_PARSER_DDL_PARSER_H
2 #define DETECTOR_DESCRIPTION_PARSER_DDL_PARSER_H
8 #include <xercesc/sax/SAXException.hpp>
9 #include <xercesc/sax2/SAX2XMLReader.hpp>
10 #include <xercesc/sax2/XMLReaderFactory.hpp>
11 #include <xercesc/util/XercesDefs.hpp>
12 #include <xercesc/util/XercesVersion.hpp>
104 void parse(
const std::vector<unsigned char>& ablob,
unsigned int bsize);
int parse(const DDLDocumentProvider &dp)
Parse all files. Return is meaningless.
std::map< int, bool > parsed_
Parse status of a given file.
XERCES_CPP_NAMESPACE::SAX2XMLReader SAX2XMLReader
DDLSAX2FileHandler * fileHandler_
SAX2XMLReader * SAX2Parser_
SAX2XMLReader is one way of parsing.
std::string currFileName_
Which file is currently being processed.
FileNameHolder fileNames_
List of files to be processed, obtained from the DDLDocumentProvider.
Compact representation of the geometrical detector hierarchy.
~DDLParser()
Destructor terminates the XMLPlatformUtils (as required by Xerces)
DDLSAX2FileHandler is the SAX2 Handler for XML files found in the configuration file.
std::string const extractFileName(const std::string &fullname)
size_t isFound(const std::string &filename)
Is the file already known by the DDLParser? Returns 0 if not found, and index if found.
DDLSAX2ExpressionHandler is the first pass SAX2 Handler for XML files found in the configuration file...
DDLSAX2ExpressionHandler * expHandler_
bool parseOneFile(const std::string &filename)
Process a single files.
DDLSAX2Handler * errHandler_
DDLElementRegistry * elementRegistry_
void clearFiles()
Clear the file list - see Warning!
DDLSAX2FileHandler * getDDLSAX2FileHandler()
To get the parent this class allows access to the handler.
DDLParser is the main class of Detector Description Language Parser.
void parseFile(const int &numtoproc)
Parse File. Just to hold some common looking code.
size_t nFiles_
Number of files + 1.
SAX2XMLReader * getXMLParser()
Get the SAX2Parser from the DDLParser. USE WITH CAUTION. Set your own handler, etc.
DDLDocumentProvider provides a set of URLs and filenames.
std::string const getNameSpace(const std::string &fname)
DDLSAX2Handler inherits from Xerces C++ DefaultHandler.
The main class for processing parsed elements.
std::map< int, std::pair< std::string, std::string > > FileNameHolder
DDCompactView & cpv_
reference to storage
bool isParsed(const std::string &filename)
Is the file already parsed?