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

Side by Side Diff: device/battery/battery_status_manager_win.cc

Issue 1874313002: Convert device to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 8 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 | « device/battery/battery_status_manager_mac.cc ('k') | device/battery/battery_status_service.h » ('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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "device/battery/battery_status_manager_win.h" 5 #include "device/battery/battery_status_manager_win.h"
6 6
7 #include <memory>
8
7 #include "base/bind.h" 9 #include "base/bind.h"
8 #include "base/macros.h" 10 #include "base/macros.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "base/metrics/histogram.h" 11 #include "base/metrics/histogram.h"
11 #include "base/strings/string16.h" 12 #include "base/strings/string16.h"
12 #include "base/win/message_window.h" 13 #include "base/win/message_window.h"
13 #include "base/win/windows_version.h" 14 #include "base/win/windows_version.h"
14 #include "device/battery/battery_status_manager.h" 15 #include "device/battery/battery_status_manager.h"
15 16
16 namespace device { 17 namespace device {
17 18
18 namespace { 19 namespace {
19 20
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 LOG(ERROR) << "Failed to create message window: " << kWindowClassName; 146 LOG(ERROR) << "Failed to create message window: " << kWindowClassName;
146 window_.reset(); 147 window_.reset();
147 return false; 148 return false;
148 } 149 }
149 return true; 150 return true;
150 } 151 }
151 152
152 HPOWERNOTIFY power_handle_; 153 HPOWERNOTIFY power_handle_;
153 HPOWERNOTIFY battery_change_handle_; 154 HPOWERNOTIFY battery_change_handle_;
154 BatteryCallback callback_; 155 BatteryCallback callback_;
155 scoped_ptr<base::win::MessageWindow> window_; 156 std::unique_ptr<base::win::MessageWindow> window_;
156 157
157 DISALLOW_COPY_AND_ASSIGN(BatteryStatusObserver); 158 DISALLOW_COPY_AND_ASSIGN(BatteryStatusObserver);
158 }; 159 };
159 160
160 class BatteryStatusManagerWin : public BatteryStatusManager { 161 class BatteryStatusManagerWin : public BatteryStatusManager {
161 public: 162 public:
162 explicit BatteryStatusManagerWin(const BatteryCallback& callback) 163 explicit BatteryStatusManagerWin(const BatteryCallback& callback)
163 : battery_observer_(new BatteryStatusObserver(callback)) {} 164 : battery_observer_(new BatteryStatusObserver(callback)) {}
164 ~BatteryStatusManagerWin() override { battery_observer_->Stop(); } 165 ~BatteryStatusManagerWin() override { battery_observer_->Stop(); }
165 166
166 public: 167 public:
167 // BatteryStatusManager: 168 // BatteryStatusManager:
168 bool StartListeningBatteryChange() override { 169 bool StartListeningBatteryChange() override {
169 battery_observer_->Start(); 170 battery_observer_->Start();
170 return true; 171 return true;
171 } 172 }
172 173
173 void StopListeningBatteryChange() override { battery_observer_->Stop(); } 174 void StopListeningBatteryChange() override { battery_observer_->Stop(); }
174 175
175 private: 176 private:
176 scoped_ptr<BatteryStatusObserver> battery_observer_; 177 std::unique_ptr<BatteryStatusObserver> battery_observer_;
177 178
178 DISALLOW_COPY_AND_ASSIGN(BatteryStatusManagerWin); 179 DISALLOW_COPY_AND_ASSIGN(BatteryStatusManagerWin);
179 }; 180 };
180 181
181 } // namespace 182 } // namespace
182 183
183 BatteryStatus ComputeWebBatteryStatus(const SYSTEM_POWER_STATUS& win_status) { 184 BatteryStatus ComputeWebBatteryStatus(const SYSTEM_POWER_STATUS& win_status) {
184 BatteryStatus status; 185 BatteryStatus status;
185 status.charging = win_status.ACLineStatus != WIN_AC_LINE_STATUS_OFFLINE; 186 status.charging = win_status.ACLineStatus != WIN_AC_LINE_STATUS_OFFLINE;
186 187
(...skipping 12 matching lines...) Expand all
199 } else { 200 } else {
200 // Set charging_time to +Infinity if not fully charged, otherwise leave the 201 // Set charging_time to +Infinity if not fully charged, otherwise leave the
201 // default value, which is 0. 202 // default value, which is 0.
202 if (status.level < 1) 203 if (status.level < 1)
203 status.charging_time = std::numeric_limits<double>::infinity(); 204 status.charging_time = std::numeric_limits<double>::infinity();
204 } 205 }
205 return status; 206 return status;
206 } 207 }
207 208
208 // static 209 // static
209 scoped_ptr<BatteryStatusManager> BatteryStatusManager::Create( 210 std::unique_ptr<BatteryStatusManager> BatteryStatusManager::Create(
210 const BatteryStatusService::BatteryUpdateCallback& callback) { 211 const BatteryStatusService::BatteryUpdateCallback& callback) {
211 return scoped_ptr<BatteryStatusManager>( 212 return std::unique_ptr<BatteryStatusManager>(
212 new BatteryStatusManagerWin(callback)); 213 new BatteryStatusManagerWin(callback));
213 } 214 }
214 215
215 } // namespace device 216 } // namespace device
OLDNEW
« no previous file with comments | « device/battery/battery_status_manager_mac.cc ('k') | device/battery/battery_status_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698