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

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

Issue 10024054: chromeos: Convert D-Bus client classes' callback arguments to const reference (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 8 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 | Annotate | Revision Log
« no previous file with comments | « chromeos/dbus/cros_disks_client.h ('k') | chromeos/dbus/cryptohome_client.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 (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/cros_disks_client.h" 5 #include "chromeos/dbus/cros_disks_client.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "dbus/bus.h" 9 #include "dbus/bus.h"
10 #include "dbus/message.h" 10 #include "dbus/message.h"
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 explicit CrosDisksClientImpl(dbus::Bus* bus) 107 explicit CrosDisksClientImpl(dbus::Bus* bus)
108 : proxy_(bus->GetObjectProxy( 108 : proxy_(bus->GetObjectProxy(
109 cros_disks::kCrosDisksServiceName, 109 cros_disks::kCrosDisksServiceName,
110 dbus::ObjectPath(cros_disks::kCrosDisksServicePath))), 110 dbus::ObjectPath(cros_disks::kCrosDisksServicePath))),
111 weak_ptr_factory_(this) { 111 weak_ptr_factory_(this) {
112 } 112 }
113 113
114 // CrosDisksClient override. 114 // CrosDisksClient override.
115 virtual void Mount(const std::string& source_path, 115 virtual void Mount(const std::string& source_path,
116 MountType type, 116 MountType type,
117 MountCallback callback, 117 const MountCallback& callback,
118 ErrorCallback error_callback) OVERRIDE { 118 const ErrorCallback& error_callback) OVERRIDE {
119 dbus::MethodCall method_call(cros_disks::kCrosDisksInterface, 119 dbus::MethodCall method_call(cros_disks::kCrosDisksInterface,
120 cros_disks::kMount); 120 cros_disks::kMount);
121 dbus::MessageWriter writer(&method_call); 121 dbus::MessageWriter writer(&method_call);
122 writer.AppendString(source_path); 122 writer.AppendString(source_path);
123 writer.AppendString(""); // auto detect filesystem. 123 writer.AppendString(""); // auto detect filesystem.
124 std::vector<std::string> mount_options(kDefaultMountOptions, 124 std::vector<std::string> mount_options(kDefaultMountOptions,
125 kDefaultMountOptions + 125 kDefaultMountOptions +
126 arraysize(kDefaultMountOptions)); 126 arraysize(kDefaultMountOptions));
127 writer.AppendArrayOfStrings(mount_options); 127 writer.AppendArrayOfStrings(mount_options);
128 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 128 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
129 base::Bind(&CrosDisksClientImpl::OnMount, 129 base::Bind(&CrosDisksClientImpl::OnMount,
130 weak_ptr_factory_.GetWeakPtr(), 130 weak_ptr_factory_.GetWeakPtr(),
131 callback, 131 callback,
132 error_callback)); 132 error_callback));
133 } 133 }
134 134
135 // CrosDisksClient override. 135 // CrosDisksClient override.
136 virtual void Unmount(const std::string& device_path, 136 virtual void Unmount(const std::string& device_path,
137 UnmountCallback callback, 137 const UnmountCallback& callback,
138 ErrorCallback error_callback) OVERRIDE { 138 const ErrorCallback& error_callback) OVERRIDE {
139 dbus::MethodCall method_call(cros_disks::kCrosDisksInterface, 139 dbus::MethodCall method_call(cros_disks::kCrosDisksInterface,
140 cros_disks::kUnmount); 140 cros_disks::kUnmount);
141 dbus::MessageWriter writer(&method_call); 141 dbus::MessageWriter writer(&method_call);
142 writer.AppendString(device_path); 142 writer.AppendString(device_path);
143 std::vector<std::string> unmount_options(kDefaultUnmountOptions, 143 std::vector<std::string> unmount_options(kDefaultUnmountOptions,
144 kDefaultUnmountOptions + 144 kDefaultUnmountOptions +
145 arraysize(kDefaultUnmountOptions)); 145 arraysize(kDefaultUnmountOptions));
146 writer.AppendArrayOfStrings(unmount_options); 146 writer.AppendArrayOfStrings(unmount_options);
147 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 147 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
148 base::Bind(&CrosDisksClientImpl::OnUnmount, 148 base::Bind(&CrosDisksClientImpl::OnUnmount,
149 weak_ptr_factory_.GetWeakPtr(), 149 weak_ptr_factory_.GetWeakPtr(),
150 device_path, 150 device_path,
151 callback, 151 callback,
152 error_callback)); 152 error_callback));
153 } 153 }
154 154
155 // CrosDisksClient override. 155 // CrosDisksClient override.
156 virtual void EnumerateAutoMountableDevices( 156 virtual void EnumerateAutoMountableDevices(
157 EnumerateAutoMountableDevicesCallback callback, 157 const EnumerateAutoMountableDevicesCallback& callback,
158 ErrorCallback error_callback) OVERRIDE { 158 const ErrorCallback& error_callback) OVERRIDE {
159 dbus::MethodCall method_call(cros_disks::kCrosDisksInterface, 159 dbus::MethodCall method_call(cros_disks::kCrosDisksInterface,
160 cros_disks::kEnumerateAutoMountableDevices); 160 cros_disks::kEnumerateAutoMountableDevices);
161 proxy_->CallMethod( 161 proxy_->CallMethod(
162 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 162 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
163 base::Bind(&CrosDisksClientImpl::OnEnumerateAutoMountableDevices, 163 base::Bind(&CrosDisksClientImpl::OnEnumerateAutoMountableDevices,
164 weak_ptr_factory_.GetWeakPtr(), 164 weak_ptr_factory_.GetWeakPtr(),
165 callback, 165 callback,
166 error_callback)); 166 error_callback));
167 } 167 }
168 168
169 // CrosDisksClient override. 169 // CrosDisksClient override.
170 virtual void FormatDevice(const std::string& device_path, 170 virtual void FormatDevice(const std::string& device_path,
171 const std::string& filesystem, 171 const std::string& filesystem,
172 FormatDeviceCallback callback, 172 const FormatDeviceCallback& callback,
173 ErrorCallback error_callback) OVERRIDE { 173 const ErrorCallback& error_callback) OVERRIDE {
174 dbus::MethodCall method_call(cros_disks::kCrosDisksInterface, 174 dbus::MethodCall method_call(cros_disks::kCrosDisksInterface,
175 cros_disks::kFormatDevice); 175 cros_disks::kFormatDevice);
176 dbus::MessageWriter writer(&method_call); 176 dbus::MessageWriter writer(&method_call);
177 writer.AppendString(device_path); 177 writer.AppendString(device_path);
178 writer.AppendString(filesystem); 178 writer.AppendString(filesystem);
179 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 179 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
180 base::Bind(&CrosDisksClientImpl::OnFormatDevice, 180 base::Bind(&CrosDisksClientImpl::OnFormatDevice,
181 weak_ptr_factory_.GetWeakPtr(), 181 weak_ptr_factory_.GetWeakPtr(),
182 device_path, 182 device_path,
183 callback, 183 callback,
184 error_callback)); 184 error_callback));
185 } 185 }
186 186
187 // CrosDisksClient override. 187 // CrosDisksClient override.
188 virtual void GetDeviceProperties(const std::string& device_path, 188 virtual void GetDeviceProperties(
189 GetDevicePropertiesCallback callback, 189 const std::string& device_path,
190 ErrorCallback error_callback) OVERRIDE { 190 const GetDevicePropertiesCallback& callback,
191 const ErrorCallback& error_callback) OVERRIDE {
191 dbus::MethodCall method_call(cros_disks::kCrosDisksInterface, 192 dbus::MethodCall method_call(cros_disks::kCrosDisksInterface,
192 cros_disks::kGetDeviceProperties); 193 cros_disks::kGetDeviceProperties);
193 dbus::MessageWriter writer(&method_call); 194 dbus::MessageWriter writer(&method_call);
194 writer.AppendString(device_path); 195 writer.AppendString(device_path);
195 proxy_->CallMethod(&method_call, 196 proxy_->CallMethod(&method_call,
196 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 197 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
197 base::Bind(&CrosDisksClientImpl::OnGetDeviceProperties, 198 base::Bind(&CrosDisksClientImpl::OnGetDeviceProperties,
198 weak_ptr_factory_.GetWeakPtr(), 199 weak_ptr_factory_.GetWeakPtr(),
199 device_path, 200 device_path,
200 callback, 201 callback,
201 error_callback)); 202 error_callback));
202 } 203 }
203 204
204 // CrosDisksClient override. 205 // CrosDisksClient override.
205 virtual void SetUpConnections( 206 virtual void SetUpConnections(
206 MountEventHandler mount_event_handler, 207 const MountEventHandler& mount_event_handler,
207 MountCompletedHandler mount_completed_handler) OVERRIDE { 208 const MountCompletedHandler& mount_completed_handler) OVERRIDE {
208 static const SignalEventTuple kSignalEventTuples[] = { 209 static const SignalEventTuple kSignalEventTuples[] = {
209 { cros_disks::kDeviceAdded, DEVICE_ADDED }, 210 { cros_disks::kDeviceAdded, DEVICE_ADDED },
210 { cros_disks::kDeviceScanned, DEVICE_SCANNED }, 211 { cros_disks::kDeviceScanned, DEVICE_SCANNED },
211 { cros_disks::kDeviceRemoved, DEVICE_REMOVED }, 212 { cros_disks::kDeviceRemoved, DEVICE_REMOVED },
212 { cros_disks::kDiskAdded, DISK_ADDED }, 213 { cros_disks::kDiskAdded, DISK_ADDED },
213 { cros_disks::kDiskChanged, DISK_CHANGED }, 214 { cros_disks::kDiskChanged, DISK_CHANGED },
214 { cros_disks::kDiskRemoved, DISK_REMOVED }, 215 { cros_disks::kDiskRemoved, DISK_REMOVED },
215 { cros_disks::kFormattingFinished, FORMATTING_FINISHED }, 216 { cros_disks::kFormattingFinished, FORMATTING_FINISHED },
216 }; 217 };
217 const size_t kNumSignalEventTuples = arraysize(kSignalEventTuples); 218 const size_t kNumSignalEventTuples = arraysize(kSignalEventTuples);
(...skipping 21 matching lines...) Expand all
239 240
240 private: 241 private:
241 // A struct to contain a pair of signal name and mount event type. 242 // A struct to contain a pair of signal name and mount event type.
242 // Used by SetUpConnections. 243 // Used by SetUpConnections.
243 struct SignalEventTuple { 244 struct SignalEventTuple {
244 const char *signal_name; 245 const char *signal_name;
245 MountEventType event_type; 246 MountEventType event_type;
246 }; 247 };
247 248
248 // Handles the result of Mount and calls |callback| or |error_callback|. 249 // Handles the result of Mount and calls |callback| or |error_callback|.
249 void OnMount(MountCallback callback, 250 void OnMount(const MountCallback& callback,
250 ErrorCallback error_callback, 251 const ErrorCallback& error_callback,
251 dbus::Response* response) { 252 dbus::Response* response) {
252 if (!response) { 253 if (!response) {
253 error_callback.Run(); 254 error_callback.Run();
254 return; 255 return;
255 } 256 }
256 callback.Run(); 257 callback.Run();
257 } 258 }
258 259
259 // Handles the result of Unount and calls |callback| or |error_callback|. 260 // Handles the result of Unount and calls |callback| or |error_callback|.
260 void OnUnmount(const std::string& device_path, 261 void OnUnmount(const std::string& device_path,
261 UnmountCallback callback, 262 const UnmountCallback& callback,
262 ErrorCallback error_callback, 263 const ErrorCallback& error_callback,
263 dbus::Response* response) { 264 dbus::Response* response) {
264 if (!response) { 265 if (!response) {
265 error_callback.Run(); 266 error_callback.Run();
266 return; 267 return;
267 } 268 }
268 callback.Run(device_path); 269 callback.Run(device_path);
269 } 270 }
270 271
271 // Handles the result of EnumerateAutoMountableDevices and calls |callback| or 272 // Handles the result of EnumerateAutoMountableDevices and calls |callback| or
272 // |error_callback|. 273 // |error_callback|.
273 void OnEnumerateAutoMountableDevices( 274 void OnEnumerateAutoMountableDevices(
274 EnumerateAutoMountableDevicesCallback callback, 275 const EnumerateAutoMountableDevicesCallback& callback,
275 ErrorCallback error_callback, 276 const ErrorCallback& error_callback,
276 dbus::Response* response) { 277 dbus::Response* response) {
277 if (!response) { 278 if (!response) {
278 error_callback.Run(); 279 error_callback.Run();
279 return; 280 return;
280 } 281 }
281 dbus::MessageReader reader(response); 282 dbus::MessageReader reader(response);
282 std::vector<std::string> device_paths; 283 std::vector<std::string> device_paths;
283 if (!reader.PopArrayOfStrings(&device_paths)) { 284 if (!reader.PopArrayOfStrings(&device_paths)) {
284 LOG(ERROR) << "Invalid response: " << response->ToString(); 285 LOG(ERROR) << "Invalid response: " << response->ToString();
285 error_callback.Run(); 286 error_callback.Run();
286 return; 287 return;
287 } 288 }
288 callback.Run(device_paths); 289 callback.Run(device_paths);
289 } 290 }
290 291
291 // Handles the result of FormatDevice and calls |callback| or 292 // Handles the result of FormatDevice and calls |callback| or
292 // |error_callback|. 293 // |error_callback|.
293 void OnFormatDevice(const std::string& device_path, 294 void OnFormatDevice(const std::string& device_path,
294 FormatDeviceCallback callback, 295 const FormatDeviceCallback& callback,
295 ErrorCallback error_callback, 296 const ErrorCallback& error_callback,
296 dbus::Response* response) { 297 dbus::Response* response) {
297 if (!response) { 298 if (!response) {
298 error_callback.Run(); 299 error_callback.Run();
299 return; 300 return;
300 } 301 }
301 dbus::MessageReader reader(response); 302 dbus::MessageReader reader(response);
302 bool success = false; 303 bool success = false;
303 if (!reader.PopBool(&success)) { 304 if (!reader.PopBool(&success)) {
304 LOG(ERROR) << "Invalid response: " << response->ToString(); 305 LOG(ERROR) << "Invalid response: " << response->ToString();
305 error_callback.Run(); 306 error_callback.Run();
306 return; 307 return;
307 } 308 }
308 callback.Run(device_path, success); 309 callback.Run(device_path, success);
309 } 310 }
310 311
311 // Handles the result of GetDeviceProperties and calls |callback| or 312 // Handles the result of GetDeviceProperties and calls |callback| or
312 // |error_callback|. 313 // |error_callback|.
313 void OnGetDeviceProperties(const std::string& device_path, 314 void OnGetDeviceProperties(const std::string& device_path,
314 GetDevicePropertiesCallback callback, 315 const GetDevicePropertiesCallback& callback,
315 ErrorCallback error_callback, 316 const ErrorCallback& error_callback,
316 dbus::Response* response) { 317 dbus::Response* response) {
317 if (!response) { 318 if (!response) {
318 error_callback.Run(); 319 error_callback.Run();
319 return; 320 return;
320 } 321 }
321 DiskInfo disk(device_path, response); 322 DiskInfo disk(device_path, response);
322 callback.Run(disk); 323 callback.Run(disk);
323 } 324 }
324 325
325 // Handles mount event signals and calls |handler|. 326 // Handles mount event signals and calls |handler|.
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 }; 369 };
369 370
370 // A stub implementaion of CrosDisksClient. 371 // A stub implementaion of CrosDisksClient.
371 class CrosDisksClientStubImpl : public CrosDisksClient { 372 class CrosDisksClientStubImpl : public CrosDisksClient {
372 public: 373 public:
373 CrosDisksClientStubImpl() {} 374 CrosDisksClientStubImpl() {}
374 virtual ~CrosDisksClientStubImpl() {} 375 virtual ~CrosDisksClientStubImpl() {}
375 376
376 virtual void Mount(const std::string& source_path, 377 virtual void Mount(const std::string& source_path,
377 MountType type, 378 MountType type,
378 MountCallback callback, 379 const MountCallback& callback,
379 ErrorCallback error_callback) OVERRIDE {} 380 const ErrorCallback& error_callback) OVERRIDE {}
380 virtual void Unmount(const std::string& device_path, 381 virtual void Unmount(const std::string& device_path,
381 UnmountCallback callback, 382 const UnmountCallback& callback,
382 ErrorCallback error_callback) OVERRIDE {} 383 const ErrorCallback& error_callback) OVERRIDE {}
383 virtual void EnumerateAutoMountableDevices( 384 virtual void EnumerateAutoMountableDevices(
384 EnumerateAutoMountableDevicesCallback callback, 385 const EnumerateAutoMountableDevicesCallback& callback,
385 ErrorCallback error_callback) OVERRIDE {} 386 const ErrorCallback& error_callback) OVERRIDE {}
386 virtual void FormatDevice(const std::string& device_path, 387 virtual void FormatDevice(const std::string& device_path,
387 const std::string& filesystem, 388 const std::string& filesystem,
388 FormatDeviceCallback callback, 389 const FormatDeviceCallback& callback,
389 ErrorCallback error_callback) OVERRIDE {} 390 const ErrorCallback& error_callback) OVERRIDE {}
390 virtual void GetDeviceProperties(const std::string& device_path, 391 virtual void GetDeviceProperties(
391 GetDevicePropertiesCallback callback, 392 const std::string& device_path,
392 ErrorCallback error_callback) OVERRIDE {} 393 const GetDevicePropertiesCallback& callback,
394 const ErrorCallback& error_callback) OVERRIDE {}
393 virtual void SetUpConnections( 395 virtual void SetUpConnections(
394 MountEventHandler mount_event_handler, 396 const MountEventHandler& mount_event_handler,
395 MountCompletedHandler mount_completed_handler) OVERRIDE {} 397 const MountCompletedHandler& mount_completed_handler) OVERRIDE {}
396 398
397 private: 399 private:
398 DISALLOW_COPY_AND_ASSIGN(CrosDisksClientStubImpl); 400 DISALLOW_COPY_AND_ASSIGN(CrosDisksClientStubImpl);
399 }; 401 };
400 402
401 } // namespace 403 } // namespace
402 404
403 //////////////////////////////////////////////////////////////////////////////// 405 ////////////////////////////////////////////////////////////////////////////////
404 // DiskInfo 406 // DiskInfo
405 407
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
557 // static 559 // static
558 CrosDisksClient* CrosDisksClient::Create(DBusClientImplementationType type, 560 CrosDisksClient* CrosDisksClient::Create(DBusClientImplementationType type,
559 dbus::Bus* bus) { 561 dbus::Bus* bus) {
560 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) 562 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION)
561 return new CrosDisksClientImpl(bus); 563 return new CrosDisksClientImpl(bus);
562 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); 564 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type);
563 return new CrosDisksClientStubImpl(); 565 return new CrosDisksClientStubImpl();
564 } 566 }
565 567
566 } // namespace chromeos 568 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/dbus/cros_disks_client.h ('k') | chromeos/dbus/cryptohome_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698