diff options
Diffstat (limited to 'modules/CIAO/tools/Config_Handlers/Utils/XML_Error_Handler.cpp')
-rw-r--r-- | modules/CIAO/tools/Config_Handlers/Utils/XML_Error_Handler.cpp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/modules/CIAO/tools/Config_Handlers/Utils/XML_Error_Handler.cpp b/modules/CIAO/tools/Config_Handlers/Utils/XML_Error_Handler.cpp new file mode 100644 index 00000000000..beae7bce56c --- /dev/null +++ b/modules/CIAO/tools/Config_Handlers/Utils/XML_Error_Handler.cpp @@ -0,0 +1,72 @@ +// $Id$ + +#include "XML_Error_Handler.h" +#include "ace/Log_Msg.h" +#include "ace/Auto_Ptr.h" +#include <xercesc/util/XMLString.hpp> +#include <xercesc/dom/DOMLocator.hpp> +#include "XercesString.h" + +using xercesc::XMLString; + +namespace CIAO +{ + namespace Config_Handlers + { + XML_Error_Handler::XML_Error_Handler (void) + : errors_ (false) + { + } + + XML_Error_Handler::~XML_Error_Handler() + { + } + + + bool + XML_Error_Handler::handleError (const DOMError& domError) + { + this->errors_ = true; + + if (domError.getSeverity() == DOMError::DOM_SEVERITY_WARNING) + ACE_DEBUG ((LM_DEBUG, + "(%P|%t), Warning ")); + else if (domError.getSeverity() == DOMError::DOM_SEVERITY_ERROR) + ACE_DEBUG ((LM_DEBUG, + "(%P|%t), Error ")); + else + ACE_DEBUG ((LM_DEBUG, + "(%P|%t), Fatal Error ")); + char *msg = + XMLString::transcode (domError.getMessage ()); + + ACE_Auto_Basic_Array_Ptr<char> cleanup_msg (msg); + + char *file = + XMLString::transcode (domError.getLocation ()->getURI ()); + + ACE_Auto_Basic_Array_Ptr<char> cleanup_file (file); + + ACE_DEBUG ((LM_DEBUG, + "%s at line %d and column %d in file %s\n", + msg, + domError.getLocation ()->getLineNumber (), + domError.getLocation ()->getColumnNumber (), + file)); + + return true; + } + + void + XML_Error_Handler::resetErrors (void) + { + this->errors_ = false; + } + + bool + XML_Error_Handler::getErrors (void) const + { + return this->errors_; + } + } +} |