1affc150dc44fab1911775a49636d0ce85333b634Zonr Chang//===- TextDiagnosticPrinter.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//===----------------------------------------------------------------------===// 9affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#ifndef MCLD_TEXT_DIAGNOSTIC_PRINTER_H 10affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#define MCLD_TEXT_DIAGNOSTIC_PRINTER_H 11affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#ifdef ENABLE_UNITTEST 12affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <gtest.h> 13affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#endif 14affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <mcld/LD/DiagnosticPrinter.h> 15affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <llvm/Support/raw_ostream.h> 16affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 17affc150dc44fab1911775a49636d0ce85333b634Zonr Changnamespace mcld 18affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{ 19affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 20affc150dc44fab1911775a49636d0ce85333b634Zonr Changclass MCLDInfo; 21affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 22affc150dc44fab1911775a49636d0ce85333b634Zonr Chang/** \class TextDiagnosticPrinter 23affc150dc44fab1911775a49636d0ce85333b634Zonr Chang * \brief The plain, text-based DiagnosticPrinter. 24affc150dc44fab1911775a49636d0ce85333b634Zonr Chang */ 25affc150dc44fab1911775a49636d0ce85333b634Zonr Changclass TextDiagnosticPrinter : public DiagnosticPrinter 26affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{ 27affc150dc44fab1911775a49636d0ce85333b634Zonr Changpublic: 28affc150dc44fab1911775a49636d0ce85333b634Zonr Chang TextDiagnosticPrinter(llvm::raw_ostream& pOStream, const MCLDInfo& pLDInfo); 29affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 30affc150dc44fab1911775a49636d0ce85333b634Zonr Chang virtual ~TextDiagnosticPrinter(); 31affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 32affc150dc44fab1911775a49636d0ce85333b634Zonr Chang /// HandleDiagnostic - Handle this diagnostic, reporting it to the user or 33affc150dc44fab1911775a49636d0ce85333b634Zonr Chang /// capturing it to a log as needed. 34affc150dc44fab1911775a49636d0ce85333b634Zonr Chang virtual void handleDiagnostic(DiagnosticEngine::Severity pSeverity, 35affc150dc44fab1911775a49636d0ce85333b634Zonr Chang const Diagnostic& pInfo); 36affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 37affc150dc44fab1911775a49636d0ce85333b634Zonr Chang virtual void beginInput(const Input& pInput, const MCLDInfo& pLDInfo); 38affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 39affc150dc44fab1911775a49636d0ce85333b634Zonr Chang virtual void endInput(); 40affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 41affc150dc44fab1911775a49636d0ce85333b634Zonr Changprivate: 42affc150dc44fab1911775a49636d0ce85333b634Zonr Chang llvm::raw_ostream& m_OStream; 43affc150dc44fab1911775a49636d0ce85333b634Zonr Chang const MCLDInfo& m_LDInfo; 44affc150dc44fab1911775a49636d0ce85333b634Zonr Chang const Input* m_pInput; 45affc150dc44fab1911775a49636d0ce85333b634Zonr Chang}; 46affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 47affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} // namespace of mcld 48affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 49affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#endif 50affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 51