1 // file : xsd/cxx/xml/dom/bits/error-handler-proxy.hxx 2 // copyright : Copyright (c) 2005-2017 Code Synthesis Tools CC 3 // license : GNU GPL v2 + exceptions; see accompanying LICENSE file 4 5 #ifndef XSD_CXX_XML_DOM_BITS_ERROR_HANDLER_PROXY_HXX 6 #define XSD_CXX_XML_DOM_BITS_ERROR_HANDLER_PROXY_HXX 7 8 #include <xercesc/dom/DOMError.hpp> 9 #include <xercesc/dom/DOMLocator.hpp> 10 #include <xercesc/dom/DOMErrorHandler.hpp> 11 12 #include <xsd/cxx/xml/error-handler.hxx> 13 14 namespace xsd 15 { 16 namespace cxx 17 { 18 namespace xml 19 { 20 namespace dom 21 { 22 namespace bits 23 { 24 template <typename C> 25 class error_handler_proxy: public xercesc::DOMErrorHandler 26 { 27 public: error_handler_proxy(error_handler<C> & eh)28 error_handler_proxy (error_handler<C>& eh) 29 : failed_ (false), eh_ (&eh), native_eh_ (0) 30 { 31 } 32 error_handler_proxy(xercesc::DOMErrorHandler & eh)33 error_handler_proxy (xercesc::DOMErrorHandler& eh) 34 : failed_ (false), eh_ (0), native_eh_ (&eh) 35 { 36 } 37 38 virtual bool 39 handleError (const xercesc::DOMError& e); 40 41 bool failed() const42 failed () const 43 { 44 return failed_; 45 } 46 47 private: 48 bool failed_; 49 error_handler<C>* eh_; 50 xercesc::DOMErrorHandler* native_eh_; 51 }; 52 } 53 } 54 } 55 } 56 } 57 58 #include <xsd/cxx/xml/dom/bits/error-handler-proxy.txx> 59 60 #endif // XSD_CXX_XML_DOM_BITS_ERROR_HANDLER_PROXY_HXX 61