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

Side by Side Diff: chromeos/dbus/shill_device_client.cc

Issue 23658053: Track active references in ShillClientHelper (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Feedback Created 7 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « chromeos/dbus/shill_client_helper.cc ('k') | chromeos/dbus/shill_ipconfig_client.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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chromeos/dbus/shill_device_client.h" 5 #include "chromeos/dbus/shill_device_client.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 ShillClientHelper* GetHelper(const dbus::ObjectPath& device_path) { 208 ShillClientHelper* GetHelper(const dbus::ObjectPath& device_path) {
209 HelperMap::iterator it = helpers_.find(device_path.value()); 209 HelperMap::iterator it = helpers_.find(device_path.value());
210 if (it != helpers_.end()) { 210 if (it != helpers_.end()) {
211 CHECK(it->second) << "Found a NULL helper in the list."; 211 CHECK(it->second) << "Found a NULL helper in the list.";
212 return it->second; 212 return it->second;
213 } 213 }
214 214
215 // There is no helper for the profile, create it. 215 // There is no helper for the profile, create it.
216 dbus::ObjectProxy* object_proxy = 216 dbus::ObjectProxy* object_proxy =
217 bus_->GetObjectProxy(flimflam::kFlimflamServiceName, device_path); 217 bus_->GetObjectProxy(flimflam::kFlimflamServiceName, device_path);
218 ShillClientHelper* helper = new ShillClientHelper(bus_, object_proxy); 218 ShillClientHelper* helper = new ShillClientHelper(object_proxy);
219 CHECK(helper) << "Unable to create Shill client helper."; 219 CHECK(helper) << "Unable to create Shill client helper.";
220 helper->MonitorPropertyChanged(flimflam::kFlimflamDeviceInterface); 220 helper->MonitorPropertyChanged(flimflam::kFlimflamDeviceInterface);
221 helpers_.insert(HelperMap::value_type(device_path.value(), helper)); 221 helpers_.insert(HelperMap::value_type(device_path.value(), helper));
222 return helper; 222 return helper;
223 } 223 }
224 224
225 dbus::Bus* bus_; 225 dbus::Bus* bus_;
226 HelperMap helpers_; 226 HelperMap helpers_;
227 227
228 DISALLOW_COPY_AND_ASSIGN(ShillDeviceClientImpl); 228 DISALLOW_COPY_AND_ASSIGN(ShillDeviceClientImpl);
229 }; 229 };
230 230
231 } // namespace 231 } // namespace
232 232
233 ShillDeviceClient::ShillDeviceClient() {} 233 ShillDeviceClient::ShillDeviceClient() {}
234 234
235 ShillDeviceClient::~ShillDeviceClient() {} 235 ShillDeviceClient::~ShillDeviceClient() {}
236 236
237 // static 237 // static
238 ShillDeviceClient* ShillDeviceClient::Create( 238 ShillDeviceClient* ShillDeviceClient::Create(
239 DBusClientImplementationType type) { 239 DBusClientImplementationType type) {
240 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) 240 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION)
241 return new ShillDeviceClientImpl(); 241 return new ShillDeviceClientImpl();
242 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); 242 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type);
243 return new ShillDeviceClientStub(); 243 return new ShillDeviceClientStub();
244 } 244 }
245 245
246 } // namespace chromeos 246 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/dbus/shill_client_helper.cc ('k') | chromeos/dbus/shill_ipconfig_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698