summaryrefslogtreecommitdiff
path: root/modules/CIAO/tools/Config_Handlers/Utils/XML_Error_Handler.cpp
diff options
context:
space:
mode:
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.cpp72
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_;
+ }
+ }
+}