Add a virtual class for BuildInfo entries. PiperOrigin-RevId: 446445268
diff --git a/tools/cpp/build_info_entry_set.h b/tools/cpp/build_info_entry_set.h index 8716416..37f7d62 100644 --- a/tools/cpp/build_info_entry_set.h +++ b/tools/cpp/build_info_entry_set.h
@@ -15,4 +15,53 @@ #ifndef BAZEL_TOOLS_CPP_BUILD_INFO_ENTRY_SET_H_ #define BAZEL_TOOLS_CPP_BUILD_INFO_ENTRY_SET_H_ +#include <string> +#include <unordered_map> + +namespace bazel { +namespace tools { +namespace cpp { + +class BuildInfoEntrySet { + public: + BuildInfoEntrySet( + std::unordered_map<std::string, std::string>& info_file_map, + std::unordered_map<std::string, std::string>& version_file_map) + : info_file_map_(info_file_map), version_file_map_(version_file_map) {} + enum KeyType { + STRING = 0, + INTEGER = 1, + }; + struct KeyDescription { + KeyDescription(KeyType key_type, const std::string& default_value, + const std::string& redacted_value) + : key_type(key_type), + default_value(default_value), + redacted_value(redacted_value) {} + const KeyType key_type; + const std::string default_value; + const std::string redacted_value; + bool operator==(const KeyDescription& kd) const { + return (key_type == kd.key_type && default_value == kd.default_value && + redacted_value == kd.redacted_value); + } + }; + + virtual std::unordered_map<std::string, std::string> + GetVolatileFileEntries() = 0; + virtual std::unordered_map<std::string, std::string> + GetNonVolatileFileEntries() = 0; + virtual std::unordered_map<std::string, std::string> + GetRedactedFileEntries() = 0; + virtual ~BuildInfoEntrySet() = 0; + + private: + std::unordered_map<std::string, std::string> info_file_map_; + std::unordered_map<std::string, std::string> version_file_map_; +}; + +} // namespace cpp +} // namespace tools +} // namespace bazel + #endif // BAZEL_TOOLS_CPP_BUILD_INFO_ENTRY_SET_H_