1 // Copyright 2021 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // MemoryPressure provides static APIs for handling memory pressure on 6 // platforms that have such signals, such as Android and ChromeOS. 7 // The app will try to discard buffers that aren't deemed essential (individual 8 // modules will implement their own policy). 9 10 #include "base/trace_event/memory_pressure_level_proto.h" 11 12 #include "base/tracing/protos/chrome_track_event.pbzero.h" // nogncheck 13 14 namespace base { 15 namespace trace_event { 16 MemoryPressureLevelToTraceEnum(MemoryPressureListener::MemoryPressureLevel memory_pressure_level)17perfetto::protos::pbzero::MemoryPressureLevel MemoryPressureLevelToTraceEnum( 18 MemoryPressureListener::MemoryPressureLevel memory_pressure_level) { 19 using ProtoLevel = perfetto::protos::pbzero::MemoryPressureLevel; 20 switch (memory_pressure_level) { 21 case MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE: 22 return ProtoLevel::MEMORY_PRESSURE_LEVEL_NONE; 23 case MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE: 24 return ProtoLevel::MEMORY_PRESSURE_LEVEL_MODERATE; 25 case MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL: 26 return ProtoLevel::MEMORY_PRESSURE_LEVEL_CRITICAL; 27 } 28 } 29 30 } // namespace trace_event 31 } // namespace base 32