Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(678)

Side by Side Diff: base/memory/memory_coordinator_proxy.cc

Issue 2703743002: Refactor MemoryCoordinatorProxy (Closed)
Patch Set: Remove atomics Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/memory/memory_coordinator_proxy.h ('k') | content/browser/browser_main_loop.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/memory/memory_coordinator_proxy.h" 5 #include "base/memory/memory_coordinator_proxy.h"
6 6
7 namespace base { 7 namespace base {
8 8
9 namespace {
10
11 MemoryCoordinator* g_memory_coordinator = nullptr;
12
13 } // namespace
14
9 MemoryCoordinatorProxy::MemoryCoordinatorProxy() { 15 MemoryCoordinatorProxy::MemoryCoordinatorProxy() {
10 } 16 }
11 17
12 MemoryCoordinatorProxy::~MemoryCoordinatorProxy() { 18 MemoryCoordinatorProxy::~MemoryCoordinatorProxy() {
13 } 19 }
14 20
21 // static
15 MemoryCoordinatorProxy* MemoryCoordinatorProxy::GetInstance() { 22 MemoryCoordinatorProxy* MemoryCoordinatorProxy::GetInstance() {
16 return Singleton<base::MemoryCoordinatorProxy>::get(); 23 return Singleton<base::MemoryCoordinatorProxy>::get();
17 } 24 }
18 25
26 // static
27 void MemoryCoordinatorProxy::SetMemoryCoordinator(
28 MemoryCoordinator* coordinator) {
29 DCHECK(!g_memory_coordinator);
30 g_memory_coordinator = coordinator;
31 }
32
19 MemoryState MemoryCoordinatorProxy::GetCurrentMemoryState() const { 33 MemoryState MemoryCoordinatorProxy::GetCurrentMemoryState() const {
20 if (!getter_callback_) 34 if (!g_memory_coordinator)
21 return MemoryState::NORMAL; 35 return MemoryState::NORMAL;
22 return getter_callback_.Run(); 36 return g_memory_coordinator->GetCurrentMemoryState();
23 } 37 }
24 38
25 void MemoryCoordinatorProxy::SetCurrentMemoryStateForTesting( 39 void MemoryCoordinatorProxy::SetCurrentMemoryStateForTesting(
26 MemoryState memory_state) { 40 MemoryState memory_state) {
27 DCHECK(setter_callback_); 41 DCHECK(g_memory_coordinator);
28 setter_callback_.Run(memory_state); 42 g_memory_coordinator->SetCurrentMemoryStateForTesting(memory_state);
29 }
30
31 void MemoryCoordinatorProxy::SetGetCurrentMemoryStateCallback(
32 GetCurrentMemoryStateCallback callback) {
33 getter_callback_ = callback;
34 }
35
36 void MemoryCoordinatorProxy::SetSetCurrentMemoryStateForTestingCallback(
37 SetCurrentMemoryStateCallback callback) {
38 setter_callback_ = callback;
39 } 43 }
40 44
41 } // namespace base 45 } // namespace base
OLDNEW
« no previous file with comments | « base/memory/memory_coordinator_proxy.h ('k') | content/browser/browser_main_loop.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698