user_note_metadata_snapshot.cc 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. // Copyright 2022 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "components/user_notes/interfaces/user_note_metadata_snapshot.h"
  5. #include "components/user_notes/model/user_note_metadata.h"
  6. namespace user_notes {
  7. UserNoteMetadataSnapshot::UserNoteMetadataSnapshot() = default;
  8. UserNoteMetadataSnapshot::UserNoteMetadataSnapshot(
  9. UserNoteMetadataSnapshot&& other) = default;
  10. UserNoteMetadataSnapshot::~UserNoteMetadataSnapshot() = default;
  11. bool UserNoteMetadataSnapshot::IsEmpty() {
  12. return url_map_.size() == 0;
  13. }
  14. void UserNoteMetadataSnapshot::AddEntry(
  15. const GURL& url,
  16. const base::UnguessableToken& id,
  17. std::unique_ptr<UserNoteMetadata> metadata) {
  18. auto url_entry = url_map_.find(url);
  19. if (url_entry == url_map_.end()) {
  20. url_map_.emplace(url, IdToMetadataMap());
  21. return AddEntry(url, id, std::move(metadata));
  22. }
  23. DCHECK(url_entry->second.find(id) == url_entry->second.end())
  24. << "Attempted to add metadata for a note ID twice";
  25. url_entry->second.emplace(id, std::move(metadata));
  26. }
  27. const UserNoteMetadataSnapshot::IdToMetadataMap*
  28. UserNoteMetadataSnapshot::GetMapForUrl(const GURL& url) const {
  29. auto url_entry = url_map_.find(url);
  30. if (url_entry == url_map_.end()) {
  31. return nullptr;
  32. } else {
  33. return &url_entry->second;
  34. }
  35. }
  36. } // namespace user_notes