diff options
author | charliea <charliea@chromium.org> | 2016-01-26 15:42:50 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-26 23:44:04 +0000 |
commit | c1b44047e693b68a9a441a1d9f464e3c9e16ed89 (patch) | |
tree | d25f3605d883097cc62663f1b3be40dda3a2d828 /chromeos | |
parent | 11eedafabb5a5ad43ec8caadacd4fd7de2f8c112 (diff) | |
download | chromium_src-c1b44047e693b68a9a441a1d9f464e3c9e16ed89.zip chromium_src-c1b44047e693b68a9a441a1d9f464e3c9e16ed89.tar.gz chromium_src-c1b44047e693b68a9a441a1d9f464e3c9e16ed89.tar.bz2 |
Adds a callback to TracingAgent::StartAgentTracing()
This allows us to use tracing agents that require more time to start.
The first use case of this will be the BattOr tracing agent, which
requires several round trips over USB before it can know whether
StartTracing was successful.
Review URL: https://codereview.chromium.org/1614063005
Cr-Commit-Position: refs/heads/master@{#371637}
Diffstat (limited to 'chromeos')
-rw-r--r-- | chromeos/dbus/debug_daemon_client.cc | 10 | ||||
-rw-r--r-- | chromeos/dbus/fake_debug_daemon_client.cc | 9 | ||||
-rw-r--r-- | chromeos/dbus/fake_debug_daemon_client.h | 4 |
3 files changed, 15 insertions, 8 deletions
diff --git a/chromeos/dbus/debug_daemon_client.cc b/chromeos/dbus/debug_daemon_client.cc index 5358c94..4af9848 100644 --- a/chromeos/dbus/debug_daemon_client.cc +++ b/chromeos/dbus/debug_daemon_client.cc @@ -20,6 +20,7 @@ #include "base/posix/eintr_wrapper.h" #include "base/strings/string_util.h" #include "base/task_runner_util.h" +#include "base/thread_task_runner_handle.h" #include "chromeos/dbus/pipe_reader.h" #include "dbus/bus.h" #include "dbus/message.h" @@ -206,8 +207,8 @@ class DebugDaemonClientImpl : public DebugDaemonClient { std::string GetTraceEventLabel() override { return kCrOSTraceLabel; } - bool StartAgentTracing( - const base::trace_event::TraceConfig& trace_config) override { + void StartAgentTracing(const base::trace_event::TraceConfig& trace_config, + const StartAgentTracingCallback& callback) override { dbus::MethodCall method_call( debugd::kDebugdInterface, debugd::kSystraceStart); @@ -220,7 +221,10 @@ class DebugDaemonClientImpl : public DebugDaemonClient { dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, base::Bind(&DebugDaemonClientImpl::OnStartMethod, weak_ptr_factory_.GetWeakPtr())); - return true; + + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, + base::Bind(callback, GetTracingAgentName(), true /* success */)); } void StopAgentTracing(const StopAgentTracingCallback& callback) override { diff --git a/chromeos/dbus/fake_debug_daemon_client.cc b/chromeos/dbus/fake_debug_daemon_client.cc index a2952ec..2114331 100644 --- a/chromeos/dbus/fake_debug_daemon_client.cc +++ b/chromeos/dbus/fake_debug_daemon_client.cc @@ -57,9 +57,12 @@ std::string FakeDebugDaemonClient::GetTraceEventLabel() { return kCrOSTraceLabel; } -bool FakeDebugDaemonClient::StartAgentTracing( - const base::trace_event::TraceConfig& trace_config) { - return true; +void FakeDebugDaemonClient::StartAgentTracing( + const base::trace_event::TraceConfig& trace_config, + const StartAgentTracingCallback& callback) { + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, + base::Bind(callback, GetTracingAgentName(), true /* success */)); } void FakeDebugDaemonClient::StopAgentTracing( diff --git a/chromeos/dbus/fake_debug_daemon_client.h b/chromeos/dbus/fake_debug_daemon_client.h index a75edbf3..b7f7799 100644 --- a/chromeos/dbus/fake_debug_daemon_client.h +++ b/chromeos/dbus/fake_debug_daemon_client.h @@ -31,8 +31,8 @@ class CHROMEOS_EXPORT FakeDebugDaemonClient : public DebugDaemonClient { const SetDebugModeCallback& callback) override; std::string GetTracingAgentName() override; std::string GetTraceEventLabel() override; - bool StartAgentTracing( - const base::trace_event::TraceConfig& trace_config) override; + void StartAgentTracing(const base::trace_event::TraceConfig& trace_config, + const StartAgentTracingCallback& callback) override; void StopAgentTracing(const StopAgentTracingCallback& callback) override; void SetStopAgentTracingTaskRunner( scoped_refptr<base::TaskRunner> task_runner) override; |