blob: f383afcd5a72329976e30f69162932aa92851946 [file] [log] [blame]
Vedant Kumarf9151b92016-06-25 02:58:30 +00001//===- SourceCoverageViewText.h - A text-based code coverage view ---------===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file defines the interface to the text-based coverage renderer.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef LLVM_COV_SOURCECOVERAGEVIEWTEXT_H
15#define LLVM_COV_SOURCECOVERAGEVIEWTEXT_H
16
17#include "SourceCoverageView.h"
18
19namespace llvm {
20
21class SourceCoverageViewText : public SourceCoverageView {
22 void renderSourceName(raw_ostream &OS) override;
23
24 void renderLinePrefix(raw_ostream &OS, unsigned ViewDepth) override;
25
26 void renderViewDivider(raw_ostream &OS, unsigned ViewDepth) override;
27
28 void renderLine(raw_ostream &OS, LineRef L,
29 const coverage::CoverageSegment *WrappedSegment,
30 CoverageSegmentArray Segments, unsigned ExpansionCol,
31 unsigned ViewDepth) override;
32
33 unsigned renderExpansionView(raw_ostream &OS, ExpansionView &ESV,
34 Optional<LineRef> FirstLine,
35 unsigned ExpansionCol,
36 const coverage::CoverageSegment *WrappedSegment,
37 CoverageSegmentArray LineSegments,
38 unsigned ViewDepth) override;
39
40 void renderInstantiationView(raw_ostream &OS, InstantiationView &ISV,
41 unsigned ViewDepth) override;
42
43 void renderLineCoverageColumn(raw_ostream &OS,
44 const LineCoverageStats &Line) override;
45
46 void renderLineNumberColumn(raw_ostream &OS, unsigned LineNo) override;
47
48 void renderRegionMarkers(raw_ostream &OS, CoverageSegmentArray Segments,
49 unsigned ViewDepth) override;
50
51public:
52 SourceCoverageViewText(StringRef SourceName, const MemoryBuffer &File,
53 const CoverageViewOptions &Options,
54 coverage::CoverageData &&CoverageInfo)
55 : SourceCoverageView(SourceName, File, Options, std::move(CoverageInfo)) {
56 }
57};
58
59} // namespace llvm
60
61#endif // LLVM_COV_SOURCECOVERAGEVIEWTEXT_H