| 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 |