// file : xsd/cxx/tree/error-handler.hxx // author : Boris Kolpackov // copyright : Copyright (c) 2005-2011 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_CXX_TREE_ERROR_HANDLER_HXX #define XSD_CXX_TREE_ERROR_HANDLER_HXX #include #include namespace xsd { namespace cxx { namespace tree { template class error_handler: public xml::error_handler { public: typedef typename xml::error_handler::severity severity; error_handler () : failed_ (false) { } virtual bool handle (const std::basic_string& id, unsigned long line, unsigned long column, severity, const std::basic_string& message); template void throw_if_failed () const { if (failed_) throw E (diagnostics_); } void reset () { failed_ = false; diagnostics_.clear (); } private: bool failed_; diagnostics diagnostics_; }; } } } #include #endif // XSD_CXX_TREE_ERROR_HANDLER_HXX