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