Home | History | Annotate | Download | only in LD
      1 //===- TextDiagnosticPrinter.h --------------------------------------------===//
      2 //
      3 //                     The MCLinker Project
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 #ifndef MCLD_LD_TEXTDIAGNOSTICPRINTER_H_
     10 #define MCLD_LD_TEXTDIAGNOSTICPRINTER_H_
     11 #include "mcld/LD/DiagnosticPrinter.h"
     12 
     13 #include <llvm/Support/raw_ostream.h>
     14 
     15 namespace mcld {
     16 
     17 class LinkerConfig;
     18 
     19 /** \class TextDiagnosticPrinter
     20  *  \brief The plain, text-based DiagnosticPrinter.
     21  */
     22 class TextDiagnosticPrinter : public DiagnosticPrinter {
     23  public:
     24   TextDiagnosticPrinter(llvm::raw_ostream& pOStream,
     25                         const LinkerConfig& pConfig);
     26 
     27   virtual ~TextDiagnosticPrinter();
     28 
     29   /// HandleDiagnostic - Handle this diagnostic, reporting it to the user or
     30   /// capturing it to a log as needed.
     31   virtual void handleDiagnostic(DiagnosticEngine::Severity pSeverity,
     32                                 const Diagnostic& pInfo);
     33 
     34   virtual void beginInput(const Input& pInput, const LinkerConfig& pConfig);
     35 
     36   virtual void endInput();
     37 
     38  private:
     39   llvm::raw_ostream& m_OStream;
     40   const LinkerConfig& m_Config;
     41   const Input* m_pInput;
     42 };
     43 
     44 }  // namespace mcld
     45 
     46 #endif  // MCLD_LD_TEXTDIAGNOSTICPRINTER_H_
     47