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

Side by Side Diff: dbus/test_service.cc

Issue 12092061: Code cleaning: Uses scoped_ptr<> to express ownership rather than writing ownership in comments. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added chrome/browser/password_manager/native_backend_kwallet_x_unitte\ Created 7 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 | Annotate | Revision Log
« no previous file with comments | « dbus/object_proxy.cc ('k') | no next file » | 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 "dbus/test_service.h" 5 #include "dbus/test_service.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/test/test_timeouts.h" 8 #include "base/test/test_timeouts.h"
9 #include "base/threading/platform_thread.h" 9 #include "base/threading/platform_thread.h"
10 #include "dbus/bus.h" 10 #include "dbus/bus.h"
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 LOG(ERROR) << "The number of methods does not match"; 236 LOG(ERROR) << "The number of methods does not match";
237 } 237 }
238 message_loop->Run(); 238 message_loop->Run();
239 } 239 }
240 240
241 void TestService::Echo(MethodCall* method_call, 241 void TestService::Echo(MethodCall* method_call,
242 dbus::ExportedObject::ResponseSender response_sender) { 242 dbus::ExportedObject::ResponseSender response_sender) {
243 MessageReader reader(method_call); 243 MessageReader reader(method_call);
244 std::string text_message; 244 std::string text_message;
245 if (!reader.PopString(&text_message)) { 245 if (!reader.PopString(&text_message)) {
246 response_sender.Run(NULL); 246 response_sender.Run(scoped_ptr<dbus::Response>());
247 return; 247 return;
248 } 248 }
249 249
250 Response* response = Response::FromMethodCall(method_call); 250 scoped_ptr<Response> response = Response::FromMethodCall(method_call);
251 MessageWriter writer(response); 251 MessageWriter writer(response.get());
252 writer.AppendString(text_message); 252 writer.AppendString(text_message);
253 response_sender.Run(response); 253 response_sender.Run(response.Pass());
254 } 254 }
255 255
256 void TestService::SlowEcho( 256 void TestService::SlowEcho(
257 MethodCall* method_call, 257 MethodCall* method_call,
258 dbus::ExportedObject::ResponseSender response_sender) { 258 dbus::ExportedObject::ResponseSender response_sender) {
259 base::PlatformThread::Sleep(TestTimeouts::tiny_timeout()); 259 base::PlatformThread::Sleep(TestTimeouts::tiny_timeout());
260 Echo(method_call, response_sender); 260 Echo(method_call, response_sender);
261 } 261 }
262 262
263 void TestService::AsyncEcho( 263 void TestService::AsyncEcho(
264 MethodCall* method_call, 264 MethodCall* method_call,
265 dbus::ExportedObject::ResponseSender response_sender) { 265 dbus::ExportedObject::ResponseSender response_sender) {
266 // Schedule a call to Echo() to send an asynchronous response after we return. 266 // Schedule a call to Echo() to send an asynchronous response after we return.
267 message_loop()->PostDelayedTask(FROM_HERE, 267 message_loop()->PostDelayedTask(FROM_HERE,
268 base::Bind(&TestService::Echo, 268 base::Bind(&TestService::Echo,
269 base::Unretained(this), 269 base::Unretained(this),
270 method_call, 270 method_call,
271 response_sender), 271 response_sender),
272 TestTimeouts::tiny_timeout()); 272 TestTimeouts::tiny_timeout());
273 } 273 }
274 274
275 void TestService::BrokenMethod( 275 void TestService::BrokenMethod(
276 MethodCall* method_call, 276 MethodCall* method_call,
277 dbus::ExportedObject::ResponseSender response_sender) { 277 dbus::ExportedObject::ResponseSender response_sender) {
278 response_sender.Run(NULL); 278 response_sender.Run(scoped_ptr<dbus::Response>());
279 } 279 }
280 280
281 281
282 void TestService::GetAllProperties( 282 void TestService::GetAllProperties(
283 MethodCall* method_call, 283 MethodCall* method_call,
284 dbus::ExportedObject::ResponseSender response_sender) { 284 dbus::ExportedObject::ResponseSender response_sender) {
285 MessageReader reader(method_call); 285 MessageReader reader(method_call);
286 std::string interface; 286 std::string interface;
287 if (!reader.PopString(&interface)) { 287 if (!reader.PopString(&interface)) {
288 response_sender.Run(NULL); 288 response_sender.Run(scoped_ptr<dbus::Response>());
289 return; 289 return;
290 } 290 }
291 291
292 // The properties response is a dictionary of strings identifying the 292 // The properties response is a dictionary of strings identifying the
293 // property and a variant containing the property value. We return all 293 // property and a variant containing the property value. We return all
294 // of the properties, thus the response is: 294 // of the properties, thus the response is:
295 // 295 //
296 // { 296 // {
297 // "Name": Variant<"TestService">, 297 // "Name": Variant<"TestService">,
298 // "Version": Variant<10>, 298 // "Version": Variant<10>,
299 // "Methods": Variant<["Echo", "SlowEcho", "AsyncEcho", "BrokenMethod"]>, 299 // "Methods": Variant<["Echo", "SlowEcho", "AsyncEcho", "BrokenMethod"]>,
300 // "Objects": Variant<[objectpath:"/TestObjectPath"]> 300 // "Objects": Variant<[objectpath:"/TestObjectPath"]>
301 // ] 301 // ]
302 302
303 Response* response = Response::FromMethodCall(method_call); 303 scoped_ptr<Response> response = Response::FromMethodCall(method_call);
304 MessageWriter writer(response); 304 MessageWriter writer(response.get());
305 305
306 MessageWriter array_writer(NULL); 306 MessageWriter array_writer(NULL);
307 MessageWriter dict_entry_writer(NULL); 307 MessageWriter dict_entry_writer(NULL);
308 MessageWriter variant_writer(NULL); 308 MessageWriter variant_writer(NULL);
309 MessageWriter variant_array_writer(NULL); 309 MessageWriter variant_array_writer(NULL);
310 310
311 writer.OpenArray("{sv}", &array_writer); 311 writer.OpenArray("{sv}", &array_writer);
312 312
313 array_writer.OpenDictEntry(&dict_entry_writer); 313 array_writer.OpenDictEntry(&dict_entry_writer);
314 dict_entry_writer.AppendString("Name"); 314 dict_entry_writer.AppendString("Name");
(...skipping 21 matching lines...) Expand all
336 dict_entry_writer.AppendString("Objects"); 336 dict_entry_writer.AppendString("Objects");
337 dict_entry_writer.OpenVariant("ao", &variant_writer); 337 dict_entry_writer.OpenVariant("ao", &variant_writer);
338 variant_writer.OpenArray("o", &variant_array_writer); 338 variant_writer.OpenArray("o", &variant_array_writer);
339 variant_array_writer.AppendObjectPath(dbus::ObjectPath("/TestObjectPath")); 339 variant_array_writer.AppendObjectPath(dbus::ObjectPath("/TestObjectPath"));
340 variant_writer.CloseContainer(&variant_array_writer); 340 variant_writer.CloseContainer(&variant_array_writer);
341 dict_entry_writer.CloseContainer(&variant_writer); 341 dict_entry_writer.CloseContainer(&variant_writer);
342 array_writer.CloseContainer(&dict_entry_writer); 342 array_writer.CloseContainer(&dict_entry_writer);
343 343
344 writer.CloseContainer(&array_writer); 344 writer.CloseContainer(&array_writer);
345 345
346 response_sender.Run(response); 346 response_sender.Run(response.Pass());
347 } 347 }
348 348
349 void TestService::GetProperty( 349 void TestService::GetProperty(
350 MethodCall* method_call, 350 MethodCall* method_call,
351 dbus::ExportedObject::ResponseSender response_sender) { 351 dbus::ExportedObject::ResponseSender response_sender) {
352 MessageReader reader(method_call); 352 MessageReader reader(method_call);
353 std::string interface; 353 std::string interface;
354 if (!reader.PopString(&interface)) { 354 if (!reader.PopString(&interface)) {
355 response_sender.Run(NULL); 355 response_sender.Run(scoped_ptr<dbus::Response>());
356 return; 356 return;
357 } 357 }
358 358
359 std::string name; 359 std::string name;
360 if (!reader.PopString(&name)) { 360 if (!reader.PopString(&name)) {
361 response_sender.Run(NULL); 361 response_sender.Run(scoped_ptr<dbus::Response>());
362 return; 362 return;
363 } 363 }
364 364
365 if (name == "Name") { 365 if (name == "Name") {
366 // Return the previous value for the "Name" property: 366 // Return the previous value for the "Name" property:
367 // Variant<"TestService"> 367 // Variant<"TestService">
368 Response* response = Response::FromMethodCall(method_call); 368 scoped_ptr<Response> response = Response::FromMethodCall(method_call);
369 MessageWriter writer(response); 369 MessageWriter writer(response.get());
370 370
371 writer.AppendVariantOfString("TestService"); 371 writer.AppendVariantOfString("TestService");
372 372
373 response_sender.Run(response); 373 response_sender.Run(response.Pass());
374 } else if (name == "Version") { 374 } else if (name == "Version") {
375 // Return a new value for the "Version" property: 375 // Return a new value for the "Version" property:
376 // Variant<20> 376 // Variant<20>
377 Response* response = Response::FromMethodCall(method_call); 377 scoped_ptr<Response> response = Response::FromMethodCall(method_call);
378 MessageWriter writer(response); 378 MessageWriter writer(response.get());
379 379
380 writer.AppendVariantOfInt16(20); 380 writer.AppendVariantOfInt16(20);
381 381
382 response_sender.Run(response); 382 response_sender.Run(response.Pass());
383 } else if (name == "Methods") { 383 } else if (name == "Methods") {
384 // Return the previous value for the "Methods" property: 384 // Return the previous value for the "Methods" property:
385 // Variant<["Echo", "SlowEcho", "AsyncEcho", "BrokenMethod"]> 385 // Variant<["Echo", "SlowEcho", "AsyncEcho", "BrokenMethod"]>
386 Response* response = Response::FromMethodCall(method_call); 386 scoped_ptr<Response> response = Response::FromMethodCall(method_call);
387 MessageWriter writer(response); 387 MessageWriter writer(response.get());
388 MessageWriter variant_writer(NULL); 388 MessageWriter variant_writer(NULL);
389 MessageWriter variant_array_writer(NULL); 389 MessageWriter variant_array_writer(NULL);
390 390
391 writer.OpenVariant("as", &variant_writer); 391 writer.OpenVariant("as", &variant_writer);
392 variant_writer.OpenArray("s", &variant_array_writer); 392 variant_writer.OpenArray("s", &variant_array_writer);
393 variant_array_writer.AppendString("Echo"); 393 variant_array_writer.AppendString("Echo");
394 variant_array_writer.AppendString("SlowEcho"); 394 variant_array_writer.AppendString("SlowEcho");
395 variant_array_writer.AppendString("AsyncEcho"); 395 variant_array_writer.AppendString("AsyncEcho");
396 variant_array_writer.AppendString("BrokenMethod"); 396 variant_array_writer.AppendString("BrokenMethod");
397 variant_writer.CloseContainer(&variant_array_writer); 397 variant_writer.CloseContainer(&variant_array_writer);
398 writer.CloseContainer(&variant_writer); 398 writer.CloseContainer(&variant_writer);
399 399
400 response_sender.Run(response); 400 response_sender.Run(response.Pass());
401 } else if (name == "Objects") { 401 } else if (name == "Objects") {
402 // Return the previous value for the "Objects" property: 402 // Return the previous value for the "Objects" property:
403 // Variant<[objectpath:"/TestObjectPath"]> 403 // Variant<[objectpath:"/TestObjectPath"]>
404 Response* response = Response::FromMethodCall(method_call); 404 scoped_ptr<Response> response = Response::FromMethodCall(method_call);
405 MessageWriter writer(response); 405 MessageWriter writer(response.get());
406 MessageWriter variant_writer(NULL); 406 MessageWriter variant_writer(NULL);
407 MessageWriter variant_array_writer(NULL); 407 MessageWriter variant_array_writer(NULL);
408 408
409 writer.OpenVariant("ao", &variant_writer); 409 writer.OpenVariant("ao", &variant_writer);
410 variant_writer.OpenArray("o", &variant_array_writer); 410 variant_writer.OpenArray("o", &variant_array_writer);
411 variant_array_writer.AppendObjectPath(dbus::ObjectPath("/TestObjectPath")); 411 variant_array_writer.AppendObjectPath(dbus::ObjectPath("/TestObjectPath"));
412 variant_writer.CloseContainer(&variant_array_writer); 412 variant_writer.CloseContainer(&variant_array_writer);
413 writer.CloseContainer(&variant_writer); 413 writer.CloseContainer(&variant_writer);
414 414
415 response_sender.Run(response); 415 response_sender.Run(response.Pass());
416 } else { 416 } else {
417 // Return error. 417 // Return error.
418 response_sender.Run(NULL); 418 response_sender.Run(scoped_ptr<dbus::Response>());
419 return; 419 return;
420 } 420 }
421 } 421 }
422 422
423 void TestService::SetProperty( 423 void TestService::SetProperty(
424 MethodCall* method_call, 424 MethodCall* method_call,
425 dbus::ExportedObject::ResponseSender response_sender) { 425 dbus::ExportedObject::ResponseSender response_sender) {
426 MessageReader reader(method_call); 426 MessageReader reader(method_call);
427 std::string interface; 427 std::string interface;
428 if (!reader.PopString(&interface)) { 428 if (!reader.PopString(&interface)) {
429 response_sender.Run(NULL); 429 response_sender.Run(scoped_ptr<dbus::Response>());
430 return; 430 return;
431 } 431 }
432 432
433 std::string name; 433 std::string name;
434 if (!reader.PopString(&name)) { 434 if (!reader.PopString(&name)) {
435 response_sender.Run(NULL); 435 response_sender.Run(scoped_ptr<dbus::Response>());
436 return; 436 return;
437 } 437 }
438 438
439 if (name != "Name") { 439 if (name != "Name") {
440 response_sender.Run(NULL); 440 response_sender.Run(scoped_ptr<dbus::Response>());
441 return; 441 return;
442 } 442 }
443 443
444 std::string value; 444 std::string value;
445 if (!reader.PopVariantOfString(&value)) { 445 if (!reader.PopVariantOfString(&value)) {
446 response_sender.Run(NULL); 446 response_sender.Run(scoped_ptr<dbus::Response>());
447 return; 447 return;
448 } 448 }
449 449
450 SendPropertyChangedSignal(value); 450 SendPropertyChangedSignal(value);
451 451
452 Response* response = Response::FromMethodCall(method_call); 452 response_sender.Run(Response::FromMethodCall(method_call));
453 response_sender.Run(response);
454 } 453 }
455 454
456 void TestService::SendPropertyChangedSignal(const std::string& name) { 455 void TestService::SendPropertyChangedSignal(const std::string& name) {
457 message_loop()->PostTask( 456 message_loop()->PostTask(
458 FROM_HERE, 457 FROM_HERE,
459 base::Bind(&TestService::SendPropertyChangedSignalInternal, 458 base::Bind(&TestService::SendPropertyChangedSignalInternal,
460 base::Unretained(this), 459 base::Unretained(this),
461 name)); 460 name));
462 } 461 }
463 462
464 void TestService::SendPropertyChangedSignalInternal(const std::string& name) { 463 void TestService::SendPropertyChangedSignalInternal(const std::string& name) {
465 dbus::Signal signal(kPropertiesInterface, kPropertiesChanged); 464 dbus::Signal signal(kPropertiesInterface, kPropertiesChanged);
466 dbus::MessageWriter writer(&signal); 465 dbus::MessageWriter writer(&signal);
467 writer.AppendString("org.chromium.TestService"); 466 writer.AppendString("org.chromium.TestService");
468 467
469 MessageWriter array_writer(NULL); 468 MessageWriter array_writer(NULL);
470 MessageWriter dict_entry_writer(NULL); 469 MessageWriter dict_entry_writer(NULL);
471 470
472 writer.OpenArray("{sv}", &array_writer); 471 writer.OpenArray("{sv}", &array_writer);
473 array_writer.OpenDictEntry(&dict_entry_writer); 472 array_writer.OpenDictEntry(&dict_entry_writer);
474 dict_entry_writer.AppendString("Name"); 473 dict_entry_writer.AppendString("Name");
475 dict_entry_writer.AppendVariantOfString(name); 474 dict_entry_writer.AppendVariantOfString(name);
476 array_writer.CloseContainer(&dict_entry_writer); 475 array_writer.CloseContainer(&dict_entry_writer);
477 writer.CloseContainer(&array_writer); 476 writer.CloseContainer(&array_writer);
478 477
479 exported_object_->SendSignal(&signal); 478 exported_object_->SendSignal(&signal);
480 } 479 }
481 480
482 } // namespace dbus 481 } // namespace dbus
OLDNEW
« no previous file with comments | « dbus/object_proxy.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698