1affc150dc44fab1911775a49636d0ce85333b634Zonr Chang//===- DiagnosticPrinter.h ------------------------------------------------===//
2affc150dc44fab1911775a49636d0ce85333b634Zonr Chang//
3affc150dc44fab1911775a49636d0ce85333b634Zonr Chang//                     The MCLinker Project
4affc150dc44fab1911775a49636d0ce85333b634Zonr Chang//
5affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// This file is distributed under the University of Illinois Open Source
6affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// License. See LICENSE.TXT for details.
7affc150dc44fab1911775a49636d0ce85333b634Zonr Chang//
8affc150dc44fab1911775a49636d0ce85333b634Zonr Chang//===----------------------------------------------------------------------===//
987f34658dec9097d987d254a990ea7f311bfc95fStephen Hines#ifndef MCLD_LD_DIAGNOSTICPRINTER_H
1087f34658dec9097d987d254a990ea7f311bfc95fStephen Hines#define MCLD_LD_DIAGNOSTICPRINTER_H
11affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <mcld/LD/DiagnosticEngine.h>
12affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <mcld/LD/Diagnostic.h>
13affc150dc44fab1911775a49636d0ce85333b634Zonr Chang
14affc150dc44fab1911775a49636d0ce85333b634Zonr Changnamespace mcld
15affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{
16affc150dc44fab1911775a49636d0ce85333b634Zonr Chang
17affc150dc44fab1911775a49636d0ce85333b634Zonr Chang/** \class DiagnosticPrinter
18affc150dc44fab1911775a49636d0ce85333b634Zonr Chang *  \brief DiagnosticPrinter provides the interface to customize diagnostic
19affc150dc44fab1911775a49636d0ce85333b634Zonr Chang *  messages and output.
20affc150dc44fab1911775a49636d0ce85333b634Zonr Chang */
21affc150dc44fab1911775a49636d0ce85333b634Zonr Changclass DiagnosticPrinter
22affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{
23affc150dc44fab1911775a49636d0ce85333b634Zonr Changpublic:
24affc150dc44fab1911775a49636d0ce85333b634Zonr Chang  DiagnosticPrinter();
25affc150dc44fab1911775a49636d0ce85333b634Zonr Chang
26affc150dc44fab1911775a49636d0ce85333b634Zonr Chang  virtual ~DiagnosticPrinter();
27affc150dc44fab1911775a49636d0ce85333b634Zonr Chang
2822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao  virtual void beginInput(const Input& pInput, const LinkerConfig& pConfig) {}
29affc150dc44fab1911775a49636d0ce85333b634Zonr Chang
30affc150dc44fab1911775a49636d0ce85333b634Zonr Chang  virtual void endInput() {}
31affc150dc44fab1911775a49636d0ce85333b634Zonr Chang
32affc150dc44fab1911775a49636d0ce85333b634Zonr Chang  virtual void finish() {}
33affc150dc44fab1911775a49636d0ce85333b634Zonr Chang
34affc150dc44fab1911775a49636d0ce85333b634Zonr Chang  virtual void clear()
35affc150dc44fab1911775a49636d0ce85333b634Zonr Chang  { m_NumErrors = m_NumWarnings = 0; }
36affc150dc44fab1911775a49636d0ce85333b634Zonr Chang
37affc150dc44fab1911775a49636d0ce85333b634Zonr Chang  /// HandleDiagnostic - Handle this diagnostic, reporting it to the user or
38affc150dc44fab1911775a49636d0ce85333b634Zonr Chang  /// capturing it to a log as needed.
39affc150dc44fab1911775a49636d0ce85333b634Zonr Chang  virtual void handleDiagnostic(DiagnosticEngine::Severity pSeverity,
40affc150dc44fab1911775a49636d0ce85333b634Zonr Chang                                const Diagnostic& pInfo);
41affc150dc44fab1911775a49636d0ce85333b634Zonr Chang
4222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao  unsigned int getNumErrors() const { return m_NumErrors; }
4322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao  unsigned int getNumWarnings() const { return m_NumWarnings; }
44affc150dc44fab1911775a49636d0ce85333b634Zonr Chang
45affc150dc44fab1911775a49636d0ce85333b634Zonr Changprotected:
46affc150dc44fab1911775a49636d0ce85333b634Zonr Chang  unsigned int m_NumErrors;
47affc150dc44fab1911775a49636d0ce85333b634Zonr Chang  unsigned int m_NumWarnings;
48affc150dc44fab1911775a49636d0ce85333b634Zonr Chang};
49affc150dc44fab1911775a49636d0ce85333b634Zonr Chang
50affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} // namespace of mcld
51affc150dc44fab1911775a49636d0ce85333b634Zonr Chang
52affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#endif
53affc150dc44fab1911775a49636d0ce85333b634Zonr Chang
54