memory_pressure_controller_impl.cc 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. // Copyright 2017 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 "chromecast/browser/memory_pressure_controller_impl.h"
  5. #include "base/bind.h"
  6. namespace chromecast {
  7. MemoryPressureControllerImpl::MemoryPressureControllerImpl() {
  8. memory_pressure_listener_ = std::make_unique<base::MemoryPressureListener>(
  9. FROM_HERE,
  10. base::BindRepeating(&MemoryPressureControllerImpl::OnMemoryPressure,
  11. base::Unretained(this)));
  12. }
  13. MemoryPressureControllerImpl::~MemoryPressureControllerImpl() = default;
  14. void MemoryPressureControllerImpl::AddReceiver(
  15. mojo::PendingReceiver<mojom::MemoryPressureController> receiver) {
  16. receivers_.Add(this, std::move(receiver));
  17. }
  18. void MemoryPressureControllerImpl::OnMemoryPressure(
  19. base::MemoryPressureListener::MemoryPressureLevel level) {
  20. for (auto& observer : observers_)
  21. observer->MemoryPressureLevelChanged(level);
  22. }
  23. void MemoryPressureControllerImpl::AddObserver(
  24. mojo::PendingRemote<mojom::MemoryPressureObserver> observer) {
  25. observers_.Add(std::move(observer));
  26. }
  27. } // namespace chromecast