xref: /aosp_15_r20/external/cronet/base/trace_event/memory_pressure_level_proto.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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)17 perfetto::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