1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31

base / trace_event / memory_pressure_level_proto.cc [blame]

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// MemoryPressure provides static APIs for handling memory pressure on
// platforms that have such signals, such as Android and ChromeOS.
// The app will try to discard buffers that aren't deemed essential (individual
// modules will implement their own policy).

#include "base/trace_event/memory_pressure_level_proto.h"

#include "base/tracing/protos/chrome_track_event.pbzero.h"  // nogncheck

namespace base {
namespace trace_event {

perfetto::protos::pbzero::MemoryPressureLevel MemoryPressureLevelToTraceEnum(
    MemoryPressureListener::MemoryPressureLevel memory_pressure_level) {
  using ProtoLevel = perfetto::protos::pbzero::MemoryPressureLevel;
  switch (memory_pressure_level) {
    case MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE:
      return ProtoLevel::MEMORY_PRESSURE_LEVEL_NONE;
    case MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE:
      return ProtoLevel::MEMORY_PRESSURE_LEVEL_MODERATE;
    case MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL:
      return ProtoLevel::MEMORY_PRESSURE_LEVEL_CRITICAL;
  }
}

}  // namespace trace_event
}  // namespace base