Chromium Code Reviews| Index: athena/resource_manager/delegate/resource_manager_delegate.cc |
| diff --git a/athena/resource_manager/delegate/resource_manager_delegate.cc b/athena/resource_manager/delegate/resource_manager_delegate.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..2ef50124741bebc3ed79e1ea2ec7fcc20528ba1e |
| --- /dev/null |
| +++ b/athena/resource_manager/delegate/resource_manager_delegate.cc |
| @@ -0,0 +1,49 @@ |
| +// Copyright 2014 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. |
| + |
| +#include "athena/resource_manager/public/resource_manager_delegate.h" |
| + |
| +#include <string> |
| + |
| +#include "base/logging.h" |
| +#include "base/macros.h" |
| +#include "base/process/process_metrics.h" |
| + |
| +namespace athena { |
| + |
| +namespace { |
| +// This is the minimum amount of time in milliseconds between checks for |
| +// memory pressure. |
| +const int kMemoryPressureIntervalMs = 750; |
| +} // namespace |
| + |
| +class ResourceManagerDelegateImpl : public ResourceManagerDelegate { |
| + public: |
| + ResourceManagerDelegateImpl() {} |
| + virtual ~ResourceManagerDelegateImpl() {} |
| + |
| + private: |
| + virtual int GetUsedMemoryInPercent() OVERRIDE { |
| + base::SystemMemoryInfoKB memory; |
| + if (base::GetSystemMemoryInfo(&memory) && |
| + memory.total > 0 && memory.free >= 0) { |
| + return ((memory.total - memory.free) * 100) / memory.total; |
|
Luigi Semenzato
2014/08/27 21:24:08
Is memory.free the same as the MemFree field of /p
Mr4D (OOO till 08-26)
2014/08/27 22:34:01
Okay, I will change that in a separate patch. Let'
|
| + } |
| + LOG(WARNING) << "Cannot determine the free memory of the system."; |
| + return 0; |
| + } |
| + |
| + virtual int MemoryPressureIntervalInMS() OVERRIDE { |
| + return kMemoryPressureIntervalMs; |
| + } |
| + DISALLOW_COPY_AND_ASSIGN(ResourceManagerDelegateImpl); |
| +}; |
| + |
| +// static |
| +ResourceManagerDelegate* |
| +ResourceManagerDelegate::CreateResourceManagerDelegate() { |
| + return new ResourceManagerDelegateImpl; |
| +} |
| + |
| +} // namespace athena |