10 #include <unordered_map> 13 #include "../helpers/String.h" 23 using CveShaMapTy = std::unordered_multimap<std::string, std::string,
26 using ShaCveMapTy = std::unordered_map<std::string, std::string,
53 CveShaMap(
const std::filesystem::path &vsource = {},
54 ShaSize shaSize = ShaSize::Long,
55 const std::string &branch =
"origin/master",
57 bool rejected =
false);
64 std::string_view
getCve(std::string_view shaCommit)
const {
65 const auto it = m_shaCveMap.find(shaCommit);
66 if (it != m_shaCveMap.cend())
77 std::vector<std::string>
getShas(std::string_view cveNumber)
const {
78 std::vector<std::string> ret;
79 const auto range = m_cveShaMap.equal_range(cveNumber);
80 std::transform(range.first, range.second, std::back_inserter(ret),
81 [](
const auto &p) { return p.second; });
90 std::set<std::string> ret;
91 std::transform(m_cveShaMap.cbegin(), m_cveShaMap.cend(),
92 std::inserter(ret, ret.end()),
93 [](
const auto &p) {
return p.first; });
98 CveShaMapTy m_cveShaMap;
99 ShaCveMapTy m_shaCveMap;
std::unordered_multimap< std::string, std::string, SlHelpers::String::Hash, SlHelpers::String::Eq > CveShaMapTy
CVE -> upstream SHA mapping.
Definition: CveShaMap.h:24
ShaSize
Store Long or Short SHAs.
Definition: CveShaMap.h:30
Equality test for string and string_view to be used in containers.
Definition: String.h:281
Hash for string and string_view to be used in hashing containers.
Definition: String.h:254
std::unordered_map< std::string, std::string, SlHelpers::String::Hash, SlHelpers::String::Eq > ShaCveMapTy
Upstream SHA -> CVE mapping.
Definition: CveShaMap.h:27
std::vector< std::string > getShas(std::string_view cveNumber) const
Get SHAs for cveNumber.
Definition: CveShaMap.h:77
A map between CVE numbers and upstream SHAs.
Definition: CveShaMap.h:20
std::string_view getCve(std::string_view shaCommit) const
Get CVE number for shaCommit.
Definition: CveShaMap.h:64
std::set< std::string > getAllCves() const
Get all stored CVE numbers.
Definition: CveShaMap.h:89