Files
whetstone_RSA/include/whetstone_rsa/probe_registry.h

23 lines
607 B
C
Raw Normal View History

#pragma once
#include "whetstone_rsa/probe.h"
#include <unordered_map>
#include <vector>
namespace whetstone::rsa {
class ProbeRegistry {
public:
void register_probe(ProbePtr probe);
[[nodiscard]] ProbePtr find(const std::string& probe_id) const;
[[nodiscard]] std::vector<ProbePtr> applicable_probes(const GateDefinition& gate_definition,
const GateEvidence& evidence) const;
[[nodiscard]] std::vector<std::string> ids() const;
private:
std::unordered_map<std::string, ProbePtr> probes_;
};
} // namespace whetstone::rsa