-----------------------------------------------------------------------------
| 79 | |
| 80 | //----------------------------------------------------------------------------- |
| 81 | void |
| 82 | Export(const cov::Options& options, |
| 83 | const Exporter::ExporterPluginManager& exporterPluginManager, |
| 84 | const Plugin::CoverageData& coverage) |
| 85 | { |
| 86 | const auto& exports = options.GetExports(); |
| 87 | std::map<cov::OptionsExportType, std::unique_ptr<Exporter::IExporter>> exporters; |
| 88 | |
| 89 | exporters.emplace(cov::OptionsExportType::Html, |
| 90 | std::unique_ptr<Exporter::IExporter>(std::make_unique<Exporter::HtmlExporter>( GetTemplateFolder() ))); |
| 91 | exporters.emplace(cov::OptionsExportType::Cobertura, |
| 92 | std::unique_ptr<Exporter::IExporter>(std::make_unique<Exporter::CoberturaExporter>())); |
| 93 | exporters.emplace(cov::OptionsExportType::Binary, |
| 94 | std::unique_ptr<Exporter::IExporter>(std::make_unique<Exporter::BinaryExporter>())); |
| 95 | |
| 96 | auto defaultPathPrefix = GetDefaultPathPrefix(options); |
| 97 | |
| 98 | for (const auto& singleExport : exports) |
| 99 | { |
| 100 | auto exportType = singleExport.GetType(); |
| 101 | auto parameter = singleExport.GetParameter(); |
| 102 | |
| 103 | if (exportType == cov::OptionsExportType::Plugin) |
| 104 | exporterPluginManager.Export( |
| 105 | singleExport.GetName(), coverage, parameter); |
| 106 | else |
| 107 | { |
| 108 | const auto& exporter = exporters.at(exportType); |
| 109 | auto output = |
| 110 | (parameter) |
| 111 | ? fs::path{*parameter} |
| 112 | : exporter->GetDefaultPath(defaultPathPrefix); |
| 113 | |
| 114 | exporter->Export(coverage, output); |
| 115 | } |
| 116 | } |
| 117 | } |
| 118 | |
| 119 | //----------------------------------------------------------------------------- |
| 120 | std::vector<Plugin::CoverageData> LoadInputCoverageDatas(const cov::Options& options) |