user_note.cc 979 B

12345678910111213141516171819202122232425262728293031
  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/model/user_note.h"
  5. namespace user_notes {
  6. UserNote::UserNote(const base::UnguessableToken& id,
  7. std::unique_ptr<UserNoteMetadata> metadata,
  8. std::unique_ptr<UserNoteBody> body,
  9. std::unique_ptr<UserNoteTarget> target)
  10. : id_(id),
  11. metadata_(std::move(metadata)),
  12. body_(std::move(body)),
  13. target_(std::move(target)) {}
  14. UserNote::~UserNote() = default;
  15. base::SafeRef<UserNote> UserNote::GetSafeRef() const {
  16. return weak_ptr_factory_.GetSafeRef();
  17. }
  18. void UserNote::Update(std::unique_ptr<UserNote> new_model) {
  19. DCHECK(new_model->id() == id_);
  20. metadata_ = std::move(new_model->metadata_);
  21. body_ = std::move(new_model->body_);
  22. target_ = std::move(new_model->target_);
  23. }
  24. } // namespace user_notes