diff --git a/tools/cpp/build_info_entry_set.h b/tools/cpp/build_info_entry_set.h index 87164169bb49ca..37f7d62a9392dd 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 +#include + +namespace bazel { +namespace tools { +namespace cpp { + +class BuildInfoEntrySet { + public: + BuildInfoEntrySet( + std::unordered_map& info_file_map, + std::unordered_map& 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 + GetVolatileFileEntries() = 0; + virtual std::unordered_map + GetNonVolatileFileEntries() = 0; + virtual std::unordered_map + GetRedactedFileEntries() = 0; + virtual ~BuildInfoEntrySet() = 0; + + private: + std::unordered_map info_file_map_; + std::unordered_map version_file_map_; +}; + +} // namespace cpp +} // namespace tools +} // namespace bazel + #endif // BAZEL_TOOLS_CPP_BUILD_INFO_ENTRY_SET_H_