single_topic_invalidation_set.cc 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. // Copyright 2014 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/invalidation/public/single_topic_invalidation_set.h"
  5. #include "base/values.h"
  6. #include "components/invalidation/public/invalidation_util.h"
  7. namespace invalidation {
  8. SingleTopicInvalidationSet::SingleTopicInvalidationSet() = default;
  9. SingleTopicInvalidationSet::SingleTopicInvalidationSet(
  10. const SingleTopicInvalidationSet& other) = default;
  11. SingleTopicInvalidationSet& SingleTopicInvalidationSet::operator=(
  12. const SingleTopicInvalidationSet& other) = default;
  13. SingleTopicInvalidationSet::~SingleTopicInvalidationSet() = default;
  14. void SingleTopicInvalidationSet::Insert(const Invalidation& invalidation) {
  15. invalidations_.insert(invalidation);
  16. }
  17. void SingleTopicInvalidationSet::InsertAll(
  18. const SingleTopicInvalidationSet& other) {
  19. invalidations_.insert(other.begin(), other.end());
  20. }
  21. void SingleTopicInvalidationSet::Clear() {
  22. invalidations_.clear();
  23. }
  24. void SingleTopicInvalidationSet::Erase(const_iterator it) {
  25. invalidations_.erase(*it);
  26. }
  27. bool SingleTopicInvalidationSet::StartsWithUnknownVersion() const {
  28. return !invalidations_.empty() &&
  29. invalidations_.begin()->is_unknown_version();
  30. }
  31. size_t SingleTopicInvalidationSet::GetSize() const {
  32. return invalidations_.size();
  33. }
  34. bool SingleTopicInvalidationSet::IsEmpty() const {
  35. return invalidations_.empty();
  36. }
  37. bool SingleTopicInvalidationSet::operator==(
  38. const SingleTopicInvalidationSet& other) const {
  39. return invalidations_ == other.invalidations_;
  40. }
  41. SingleTopicInvalidationSet::const_iterator SingleTopicInvalidationSet::begin()
  42. const {
  43. return invalidations_.begin();
  44. }
  45. SingleTopicInvalidationSet::const_iterator SingleTopicInvalidationSet::end()
  46. const {
  47. return invalidations_.end();
  48. }
  49. SingleTopicInvalidationSet::const_reverse_iterator
  50. SingleTopicInvalidationSet::rbegin() const {
  51. return invalidations_.rbegin();
  52. }
  53. SingleTopicInvalidationSet::const_reverse_iterator
  54. SingleTopicInvalidationSet::rend() const {
  55. return invalidations_.rend();
  56. }
  57. const Invalidation& SingleTopicInvalidationSet::back() const {
  58. return *invalidations_.rbegin();
  59. }
  60. std::unique_ptr<base::ListValue> SingleTopicInvalidationSet::ToValue() const {
  61. std::unique_ptr<base::ListValue> value(new base::ListValue);
  62. for (const Invalidation& invalidation : invalidations_) {
  63. value->GetList().Append(invalidation.ToValue());
  64. }
  65. return value;
  66. }
  67. } // namespace invalidation