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

Side by Side Diff: components/memory_pressure/memory_pressure_monitor.h

Issue 1918083002: Convert //components/[f-n]* from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: … Created 4 years, 7 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
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 // Declares the MemoryPressureMonitor class. This is responsible for monitoring 5 // Declares the MemoryPressureMonitor class. This is responsible for monitoring
6 // system-wide memory pressure and dispatching memory pressure signals to 6 // system-wide memory pressure and dispatching memory pressure signals to
7 // MemoryPressureListener. It is also responsible for rate limiting calls to the 7 // MemoryPressureListener. It is also responsible for rate limiting calls to the
8 // memory pressure subsytem and gathering statistics for UMA. 8 // memory pressure subsytem and gathering statistics for UMA.
9 // 9 //
10 // The class has a few compile time differences depending on if 10 // The class has a few compile time differences depending on if
(...skipping 11 matching lines...) Expand all
22 // The memory pressure system periodically repeats memory pressure signals while 22 // The memory pressure system periodically repeats memory pressure signals while
23 // under memory pressure (the interval varying depending on the pressure level). 23 // under memory pressure (the interval varying depending on the pressure level).
24 // As such, even non-polling platforms require a scheduling mechanism for 24 // As such, even non-polling platforms require a scheduling mechanism for
25 // repeating notifications. Both implementations share this basic scheduling 25 // repeating notifications. Both implementations share this basic scheduling
26 // subsystem, and also leverage it to make timely UMA reports. 26 // subsystem, and also leverage it to make timely UMA reports.
27 27
28 #ifndef COMPONENTS_MEMORY_PRESSURE_MEMORY_PRESSURE_MONITOR_H_ 28 #ifndef COMPONENTS_MEMORY_PRESSURE_MEMORY_PRESSURE_MONITOR_H_
29 #define COMPONENTS_MEMORY_PRESSURE_MEMORY_PRESSURE_MONITOR_H_ 29 #define COMPONENTS_MEMORY_PRESSURE_MEMORY_PRESSURE_MONITOR_H_
30 30
31 #include <map> 31 #include <map>
32 #include <memory>
32 33
33 #include "base/callback.h" 34 #include "base/callback.h"
34 #include "base/memory/scoped_ptr.h"
35 #include "base/memory/weak_ptr.h" 35 #include "base/memory/weak_ptr.h"
36 #include "base/synchronization/lock.h" 36 #include "base/synchronization/lock.h"
37 #include "base/time/time.h" 37 #include "base/time/time.h"
38 #include "components/memory_pressure/memory_pressure_listener.h" 38 #include "components/memory_pressure/memory_pressure_listener.h"
39 39
40 namespace base { 40 namespace base {
41 class TaskRunner; 41 class TaskRunner;
42 class TickClock; 42 class TickClock;
43 } // namespace 43 } // namespace
44 44
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 // The memory pressure calculator in use. Used under |lock_|. 169 // The memory pressure calculator in use. Used under |lock_|.
170 MemoryPressureCalculator* calculator_; 170 MemoryPressureCalculator* calculator_;
171 // The dispatch callback to use. 171 // The dispatch callback to use.
172 DispatchCallback dispatch_callback_; 172 DispatchCallback dispatch_callback_;
173 173
174 #if !defined(MEMORY_PRESSURE_IS_POLLING) 174 #if !defined(MEMORY_PRESSURE_IS_POLLING)
175 // On non-polling platforms this object is responsible for routing OS 175 // On non-polling platforms this object is responsible for routing OS
176 // notifications to OnMemoryPressureChanged, and setting the initial pressure 176 // notifications to OnMemoryPressureChanged, and setting the initial pressure
177 // value. The OS specific implementation is responsible for allocating this 177 // value. The OS specific implementation is responsible for allocating this
178 // object. 178 // object.
179 scoped_ptr<MemoryPressureMonitorImpl> monitor_impl_; 179 std::unique_ptr<MemoryPressureMonitorImpl> monitor_impl_;
180 #endif 180 #endif
181 181
182 // Object state. 182 // Object state.
183 // The pressure level as of the most recent poll or notification. Under 183 // The pressure level as of the most recent poll or notification. Under
184 // |lock_|. 184 // |lock_|.
185 MemoryPressureLevel current_memory_pressure_level_; 185 MemoryPressureLevel current_memory_pressure_level_;
186 #if defined(MEMORY_PRESSURE_IS_POLLING) 186 #if defined(MEMORY_PRESSURE_IS_POLLING)
187 // Time of the last pressure check. Under |lock_|. Only needed for polling 187 // Time of the last pressure check. Under |lock_|. Only needed for polling
188 // implementations. 188 // implementations.
189 base::TimeTicks last_check_; 189 base::TimeTicks last_check_;
(...skipping 11 matching lines...) Expand all
201 // Weak pointer factory to ourself used for posting delayed tasks to 201 // Weak pointer factory to ourself used for posting delayed tasks to
202 // task_runner_. 202 // task_runner_.
203 base::WeakPtrFactory<MemoryPressureMonitor> weak_ptr_factory_; 203 base::WeakPtrFactory<MemoryPressureMonitor> weak_ptr_factory_;
204 204
205 DISALLOW_COPY_AND_ASSIGN(MemoryPressureMonitor); 205 DISALLOW_COPY_AND_ASSIGN(MemoryPressureMonitor);
206 }; 206 };
207 207
208 } // namespace memory_pressure 208 } // namespace memory_pressure
209 209
210 #endif // COMPONENTS_MEMORY_PRESSURE_MEMORY_PRESSURE_MONITOR_H_ 210 #endif // COMPONENTS_MEMORY_PRESSURE_MEMORY_PRESSURE_MONITOR_H_
OLDNEW
« no previous file with comments | « components/login/screens/screen_context_unittest.cc ('k') | components/memory_pressure/memory_pressure_monitor_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698