summaryrefslogtreecommitdiff
path: root/TAO/CIAO/DAnCE/Old_Config_Handlers/Config_Error_Handler.cpp
blob: de938a2ce0e4d8c36f8b52496b90bc09d9ff375c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// $Id$

#include "ace/Log_Msg.h"
#include "ace/Auto_Ptr.h"
#include <xercesc/util/XMLString.hpp>
#include <xercesc/dom/DOMLocator.hpp>
#include "Config_Error_Handler.h"
#include "XercesString.h"

using xercesc::XMLString;

namespace CIAO
{
  namespace Config_Handler
  {
    Config_Error_Handler::Config_Error_Handler()
      : errors_ (false)
    {}

    Config_Error_Handler::~Config_Error_Handler()
    {}


    bool Config_Error_Handler::handleError (const DOMError& domError)
    {
      this->errors_ = true;
      if (domError.getSeverity() == DOMError::DOM_SEVERITY_WARNING)
        {
          ACE_ERROR ((LM_ERROR, "Warning "));
        }
      else if (domError.getSeverity() == DOMError::DOM_SEVERITY_ERROR)
        {
          ACE_ERROR ((LM_ERROR, "Error "));
        }
      else
        {
          ACE_ERROR ((LM_ERROR, "FatalError "));
        }

      char *msg = XMLString::transcode(domError.getMessage());
      char *url = XMLString::transcode (domError.getLocation()->getURI());
      ACE_Auto_Basic_Array_Ptr<char> cleanup_msg (msg);
      ACE_ERROR ((LM_ERROR, "while processing resource '%s', "
                  "Line %d, Position %d : %s\n",
                  url,
                  domError.getLocation()->getLineNumber(),
                  domError.getLocation()->getColumnNumber(),
                  msg));
      return true;
    }

    void Config_Error_Handler::resetErrors()
    {
      this->errors_ = false;
    }

    bool Config_Error_Handler::getErrors() const
    {
      return this->errors_;
    }
  }

}