summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-cov/CoverageExporter.h
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/llvm-cov/CoverageExporter.h')
-rw-r--r--llvm/tools/llvm-cov/CoverageExporter.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/llvm/tools/llvm-cov/CoverageExporter.h b/llvm/tools/llvm-cov/CoverageExporter.h
new file mode 100644
index 00000000000..af9c8f062e4
--- /dev/null
+++ b/llvm/tools/llvm-cov/CoverageExporter.h
@@ -0,0 +1,51 @@
+//===- CoverageExporter.h - Code coverage exporter ------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This class defines a code coverage exporter interface.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_COV_COVERAGEEXPORTER_H
+#define LLVM_COV_COVERAGEEXPORTER_H
+
+#include "CoverageSummaryInfo.h"
+#include "CoverageViewOptions.h"
+#include "llvm/ProfileData/Coverage/CoverageMapping.h"
+
+namespace llvm {
+
+/// \brief Exports the code coverage information.
+class CoverageExporter {
+protected:
+ /// \brief The full CoverageMapping object to export.
+ const coverage::CoverageMapping &Coverage;
+
+ /// \brief The options passed to the tool.
+ const CoverageViewOptions &Options;
+
+ /// \brief Output stream to print JSON to.
+ raw_ostream &OS;
+
+ CoverageExporter(const coverage::CoverageMapping &CoverageMapping,
+ const CoverageViewOptions &Options, raw_ostream &OS)
+ : Coverage(CoverageMapping), Options(Options), OS(OS) {}
+
+public:
+ virtual ~CoverageExporter(){};
+
+ /// \brief Render the CoverageMapping object.
+ virtual void renderRoot() = 0;
+
+ /// \brief Render the CoverageMapping object for specified source files.
+ virtual void renderRoot(const std::vector<std::string> &SourceFiles) = 0;
+};
+
+} // end namespace llvm
+
+#endif // LLVM_COV_COVERAGEEXPORTER_H
OpenPOWER on IntegriCloud