![]() |
OpenMS
|
Adapts an OpenMS XMLHandler to the Xerces SAX2 DefaultHandler interface.
More...
#include <OpenMS/FORMAT/HANDLERS/SAX2HandlerAdapter.h>
Public Member Functions | |
| SAX2HandlerAdapter (XMLHandler &handler) | |
| void | startElement (const XMLCh *const, const XMLCh *const, const XMLCh *const qname, const xercesc::Attributes &attrs) override |
| void | endElement (const XMLCh *const, const XMLCh *const, const XMLCh *const qname) override |
| void | characters (const XMLCh *const chars, const XMLSize_t length) override |
| void | fatalError (const xercesc::SAXParseException &e) override |
| void | error (const xercesc::SAXParseException &e) override |
| void | warning (const xercesc::SAXParseException &e) override |
Static Private Member Functions | |
| static std::string | message_ (const xercesc::SAXParseException &e) |
Private Attributes | |
| XMLHandler & | handler_ |
Adapts an OpenMS XMLHandler to the Xerces SAX2 DefaultHandler interface.
Xerces owns the SAX callback interface; OpenMS handlers expose the Xerces-free onStartElement / onEndElement / onCharacters callbacks (and OpenMS-typed error handlers). This adapter is installed as the Xerces content+error handler and forwards each callback to the wrapped XMLHandler. XMLCh is guaranteed to be char16_t-sized, so the reinterpret_casts at this boundary are well-defined views.
The forwarding methods are intentionally not noexcept: subclass callbacks may throw (e.g. XMLHandler::EndParsingSoftly to abort parsing early), and that exception must unwind through Xerces' parse() exactly as before.
|
inlineexplicit |
|
inlineoverride |
References SAX2HandlerAdapter::handler_, and XMLHandler::onCharacters().
|
inlineoverride |
References SAX2HandlerAdapter::handler_, and XMLHandler::onEndElement().
|
inlineoverride |
|
inlineoverride |
|
inlinestaticprivate |
References StringManager::convert().
Referenced by SAX2HandlerAdapter::error(), SAX2HandlerAdapter::fatalError(), and SAX2HandlerAdapter::warning().
|
inlineoverride |
References SAX2HandlerAdapter::handler_, and XMLHandler::onStartElement().
|
inlineoverride |