Allow base::DoNothing() to handle any argument list.
This changes the form of DoNothing() from a simple no-arg function to a class
that produces callbacks via templated operator(). This allows callers to
replace base::Bind(&base::DoNothing) with base::DoNothing() for a small
boilerplate reduction; more importantly, it allows using DoNothing() to replace
existing no-op functions/lambdas that took more than zero args, and thus had to
be manually declared. This removes dozens of such functions and around 600 LOC
total.
In a few places, DoNothing() can't be used directly, and this change also adds
explicit callback-generating Once<>() and Repeatedly<>() members that will
produce a callback with a specific signature.
BUG=811554
TEST=none
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_mojo;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_vr;master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I37f87b35c6c079a6a8c03ff18ec3a54e1237f126
Reviewed-on: https://chromium-review.googlesource.com/903416
Commit-Queue: Peter Kasting <[email protected]>
Reviewed-by: Jochen Eisinger <[email protected]>
Reviewed-by: Gabriel Charette <[email protected]>
Cr-Commit-Position: refs/heads/master@{#538953}
diff --git a/dbus/test_service.cc b/dbus/test_service.cc
index 624495de..e4a236c6 100644
--- a/dbus/test_service.cc
+++ b/dbus/test_service.cc
@@ -10,6 +10,7 @@
#include <vector>
#include "base/bind.h"
+#include "base/bind_helpers.h"
#include "base/guid.h"
#include "base/message_loop/message_loop.h"
#include "base/run_loop.h"
@@ -23,13 +24,6 @@
#include "dbus/object_path.h"
#include "dbus/property.h"
-namespace {
-
-void EmptyCallback(bool /* success */) {
-}
-
-} // namespace
-
namespace dbus {
// Echo, SlowEcho, AsyncEcho, BrokenMethod, GetAll, Get, Set, PerformAction,
@@ -116,11 +110,9 @@
MessageWriter writer(&signal);
writer.AppendString(message);
- bus_->RequestOwnership(service_name_,
- request_ownership_options_,
+ bus_->RequestOwnership(service_name_, request_ownership_options_,
base::Bind(&TestService::OnOwnership,
- base::Unretained(this),
- base::Bind(&EmptyCallback)));
+ base::Unretained(this), base::DoNothing()));
// Use "/" just like dbus-send does.
ExportedObject* root_object = bus_->GetExportedObject(ObjectPath("/"));
@@ -189,11 +181,10 @@
if (num_exported_methods_ == kNumMethodsToExport) {
// As documented in exported_object.h, the service name should be
// requested after all methods are exposed.
- bus_->RequestOwnership(service_name_,
- request_ownership_options_,
- base::Bind(&TestService::OnOwnership,
- base::Unretained(this),
- base::Bind(&EmptyCallback)));
+ bus_->RequestOwnership(
+ service_name_, request_ownership_options_,
+ base::Bind(&TestService::OnOwnership, base::Unretained(this),
+ base::DoNothing()));
}
}