diff options
author | ambrosin <ambrosin@google.com> | 2022-03-28 04:17:45 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2022-03-28 04:18:34 -0700 |
commit | bb3d0f85c2adb33d951ed6aa3570492f982d5fd2 (patch) | |
tree | 0033b762ba9ccd8f0ce6742a64be031cb65ad2f0 /cc/primitive_set.h | |
parent | a169dc6be8abdfb14cbdaf2f823ba695acde9545 (diff) | |
download | tink-bb3d0f85c2adb33d951ed6aa3570492f982d5fd2.tar.gz |
Add annotations to PrimitiveSet.
PiperOrigin-RevId: 437719775
Diffstat (limited to 'cc/primitive_set.h')
-rw-r--r-- | cc/primitive_set.h | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/cc/primitive_set.h b/cc/primitive_set.h index 1598e1d07..96ce200d9 100644 --- a/cc/primitive_set.h +++ b/cc/primitive_set.h @@ -21,6 +21,7 @@ #include <unordered_map> #include <vector> +#include "absl/container/flat_hash_map.h" #include "absl/memory/memory.h" #include "absl/status/status.h" #include "absl/synchronization/mutex.h" @@ -108,7 +109,12 @@ class PrimitiveSet { typedef std::vector<std::unique_ptr<Entry<P>>> Primitives; // Constructs an empty PrimitiveSet. - PrimitiveSet<P>() : primary_(nullptr) {} + // Note: This is equivalent to PrimitiveSet<P>(/*annotations=*/{}). + PrimitiveSet<P>() = default; + // Constructs an empty PrimitiveSet with `annotations`. + explicit PrimitiveSet<P>( + const absl::flat_hash_map<std::string, std::string>& annotations) + : annotations_(annotations) {} // Adds 'primitive' to this set for the specified 'key'. crypto::tink::util::StatusOr<Entry<P>*> AddPrimitive( @@ -177,13 +183,21 @@ class PrimitiveSet { return result; } + const absl::flat_hash_map<std::string, std::string>& get_annotations() const { + return annotations_; + } + private: typedef std::unordered_map<std::string, Primitives> CiphertextPrefixToPrimitivesMap; - Entry<P>* primary_; // the Entry<P> object is owned by primitives_ + // The Entry<P> object is owned by primitives_ + Entry<P>* primary_ = nullptr; mutable absl::Mutex primitives_mutex_; CiphertextPrefixToPrimitivesMap primitives_ ABSL_GUARDED_BY(primitives_mutex_); + + // Annotations for the set of primitives. + const absl::flat_hash_map<std::string, std::string> annotations_; }; } // namespace tink |