//===- TextDiagnosticPrinter.h --------------------------------------------===// // // The MCLinker Project // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef MCLD_TEXT_DIAGNOSTIC_PRINTER_H #define MCLD_TEXT_DIAGNOSTIC_PRINTER_H #ifdef ENABLE_UNITTEST #include <gtest.h> #endif #include <mcld/LD/DiagnosticPrinter.h> #include <llvm/Support/raw_ostream.h> namespace mcld { class LinkerConfig; /** \class TextDiagnosticPrinter * \brief The plain, text-based DiagnosticPrinter. */ class TextDiagnosticPrinter : public DiagnosticPrinter { public: TextDiagnosticPrinter(llvm::raw_ostream& pOStream, const LinkerConfig& pConfig); virtual ~TextDiagnosticPrinter(); /// HandleDiagnostic - Handle this diagnostic, reporting it to the user or /// capturing it to a log as needed. virtual void handleDiagnostic(DiagnosticEngine::Severity pSeverity, const Diagnostic& pInfo); virtual void beginInput(const Input& pInput, const LinkerConfig& pConfig); virtual void endInput(); private: llvm::raw_ostream& m_OStream; const LinkerConfig& m_Config; const Input* m_pInput; }; } // namespace of mcld #endif