1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/memory/discardable_memory.h"
7 #include "base/logging.h"
8 #include "base/memory/discardable_memory_emulated.h"
13 void DiscardableMemory::RegisterMemoryPressureListeners() {
14 internal::DiscardableMemoryEmulated::RegisterMemoryPressureListeners();
18 void DiscardableMemory::UnregisterMemoryPressureListeners() {
19 internal::DiscardableMemoryEmulated::UnregisterMemoryPressureListeners();
23 void DiscardableMemory::GetSupportedTypes(
24 std::vector<DiscardableMemoryType>* types) {
25 const DiscardableMemoryType supported_types[] = {
26 DISCARDABLE_MEMORY_TYPE_EMULATED
28 types->assign(supported_types, supported_types + arraysize(supported_types));
32 scoped_ptr<DiscardableMemory> DiscardableMemory::CreateLockedMemoryWithType(
33 DiscardableMemoryType type, size_t size) {
35 case DISCARDABLE_MEMORY_TYPE_NONE:
36 case DISCARDABLE_MEMORY_TYPE_ANDROID:
37 case DISCARDABLE_MEMORY_TYPE_MAC:
38 return scoped_ptr<DiscardableMemory>();
39 case DISCARDABLE_MEMORY_TYPE_EMULATED: {
40 scoped_ptr<internal::DiscardableMemoryEmulated> memory(
41 new internal::DiscardableMemoryEmulated(size));
42 if (!memory->Initialize())
43 return scoped_ptr<DiscardableMemory>();
45 return memory.PassAs<DiscardableMemory>();
50 return scoped_ptr<DiscardableMemory>();
54 bool DiscardableMemory::PurgeForTestingSupported() {
59 void DiscardableMemory::PurgeForTesting() {
60 internal::DiscardableMemoryEmulated::PurgeForTesting();