OLD | NEW |
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/debug_daemon_client.h" | 5 #include "chromeos/dbus/debug_daemon_client.h" |
6 | 6 |
7 #include <fcntl.h> | 7 #include <fcntl.h> |
8 #include <unistd.h> | 8 #include <unistd.h> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
306 dbus::MethodCall method_call( | 306 dbus::MethodCall method_call( |
307 debugd::kDebugdInterface, | 307 debugd::kDebugdInterface, |
308 debugd::kSystraceStart); | 308 debugd::kSystraceStart); |
309 dbus::MessageWriter writer(&method_call); | 309 dbus::MessageWriter writer(&method_call); |
310 writer.AppendString("all"); // TODO(sleffler) parameterize category list | 310 writer.AppendString("all"); // TODO(sleffler) parameterize category list |
311 | 311 |
312 DVLOG(1) << "Requesting a systrace start"; | 312 DVLOG(1) << "Requesting a systrace start"; |
313 debugdaemon_proxy_->CallMethod( | 313 debugdaemon_proxy_->CallMethod( |
314 &method_call, | 314 &method_call, |
315 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 315 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
316 base::Bind(&DebugDaemonClientImpl::OnStartSystemTracing, | 316 base::Bind(&DebugDaemonClientImpl::OnStartMethod, |
317 weak_ptr_factory_.GetWeakPtr())); | 317 weak_ptr_factory_.GetWeakPtr())); |
318 } | 318 } |
319 | 319 |
320 virtual bool RequestStopSystemTracing(const StopSystemTracingCallback& | 320 virtual bool RequestStopSystemTracing(const StopSystemTracingCallback& |
321 callback) OVERRIDE { | 321 callback) OVERRIDE { |
322 if (pipe_reader_ != NULL) { | 322 if (pipe_reader_ != NULL) { |
323 LOG(ERROR) << "Busy doing StopSystemTracing"; | 323 LOG(ERROR) << "Busy doing StopSystemTracing"; |
324 return false; | 324 return false; |
325 } | 325 } |
326 | 326 |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
393 | 393 |
394 // Call the function. | 394 // Call the function. |
395 debugdaemon_proxy_->CallMethod( | 395 debugdaemon_proxy_->CallMethod( |
396 &method_call, | 396 &method_call, |
397 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 397 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
398 base::Bind(&DebugDaemonClientImpl::OnTestICMP, | 398 base::Bind(&DebugDaemonClientImpl::OnTestICMP, |
399 weak_ptr_factory_.GetWeakPtr(), | 399 weak_ptr_factory_.GetWeakPtr(), |
400 callback)); | 400 callback)); |
401 } | 401 } |
402 | 402 |
| 403 virtual void UploadCrashes() OVERRIDE { |
| 404 dbus::MethodCall method_call(debugd::kDebugdInterface, |
| 405 debugd::kUploadCrashes); |
| 406 debugdaemon_proxy_->CallMethod( |
| 407 &method_call, |
| 408 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| 409 base::Bind(&DebugDaemonClientImpl::OnStartMethod, |
| 410 weak_ptr_factory_.GetWeakPtr())); |
| 411 } |
| 412 |
403 protected: | 413 protected: |
404 virtual void Init(dbus::Bus* bus) OVERRIDE { | 414 virtual void Init(dbus::Bus* bus) OVERRIDE { |
405 debugdaemon_proxy_ = | 415 debugdaemon_proxy_ = |
406 bus->GetObjectProxy(debugd::kDebugdServiceName, | 416 bus->GetObjectProxy(debugd::kDebugdServiceName, |
407 dbus::ObjectPath(debugd::kDebugdServicePath)); | 417 dbus::ObjectPath(debugd::kDebugdServicePath)); |
408 } | 418 } |
409 | 419 |
410 private: | 420 private: |
411 // Called to check descriptor validity on a thread where i/o is permitted. | 421 // Called to check descriptor validity on a thread where i/o is permitted. |
412 static void CheckValidity(dbus::FileDescriptor* file_descriptor) { | 422 static void CheckValidity(dbus::FileDescriptor* file_descriptor) { |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
546 logs[key] = value; | 556 logs[key] = value; |
547 } | 557 } |
548 callback.Run(!sub_reader.HasMoreData() && !broken, logs); | 558 callback.Run(!sub_reader.HasMoreData() && !broken, logs); |
549 } | 559 } |
550 | 560 |
551 void OnGetUserLogFiles(const GetLogsCallback& callback, | 561 void OnGetUserLogFiles(const GetLogsCallback& callback, |
552 dbus::Response* response) { | 562 dbus::Response* response) { |
553 return OnGetAllLogs(callback, response); | 563 return OnGetAllLogs(callback, response); |
554 } | 564 } |
555 | 565 |
556 // Called when a response for StartSystemTracing() is received. | 566 // Called when a response for a simple start is received. |
557 void OnStartSystemTracing(dbus::Response* response) { | 567 void OnStartMethod(dbus::Response* response) { |
558 if (!response) { | 568 if (!response) { |
559 LOG(ERROR) << "Failed to request systrace start"; | 569 LOG(ERROR) << "Failed to request start"; |
560 return; | 570 return; |
561 } | 571 } |
562 } | 572 } |
563 | 573 |
564 // Called when a CheckValidity response is received. | 574 // Called when a CheckValidity response is received. |
565 void OnCheckValidityRequestStopSystem( | 575 void OnCheckValidityRequestStopSystem( |
566 dbus::FileDescriptor* file_descriptor, | 576 dbus::FileDescriptor* file_descriptor, |
567 const StopSystemTracingCallback& callback) { | 577 const StopSystemTracingCallback& callback) { |
568 // Issue the dbus request to stop system tracing | 578 // Issue the dbus request to stop system tracing |
569 dbus::MethodCall method_call( | 579 dbus::MethodCall method_call( |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
629 DebugDaemonClient::EmptyStopSystemTracingCallback() { | 639 DebugDaemonClient::EmptyStopSystemTracingCallback() { |
630 return base::Bind(&EmptyStopSystemTracingCallbackBody); | 640 return base::Bind(&EmptyStopSystemTracingCallbackBody); |
631 } | 641 } |
632 | 642 |
633 // static | 643 // static |
634 DebugDaemonClient* DebugDaemonClient::Create() { | 644 DebugDaemonClient* DebugDaemonClient::Create() { |
635 return new DebugDaemonClientImpl(); | 645 return new DebugDaemonClientImpl(); |
636 } | 646 } |
637 | 647 |
638 } // namespace chromeos | 648 } // namespace chromeos |
OLD | NEW |