# Copyright 2013 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

from pylib import android_commands
from pylib.device import device_utils

class CacheControl(object):
  _DROP_CACHES = '/proc/sys/vm/drop_caches'

  def __init__(self, device):
    # TODO(jbudorick) Remove once telemetry gets switched over.
    if isinstance(device, android_commands.AndroidCommands):
      device = device_utils.DeviceUtils(device)
    self._device = device

  def DropRamCaches(self):
    """Drops the filesystem ram caches for performance testing."""
    self._device.RunShellCommand('sync', root=True)
    self._device.old_interface.SetProtectedFileContents(
        CacheControl._DROP_CACHES, '3')

