diff options
Diffstat (limited to 'llvm/tools/llvm-cov/CoverageExporter.h')
| -rw-r--r-- | llvm/tools/llvm-cov/CoverageExporter.h | 51 |
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 |

