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