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

Side by Side Diff: chromeos/dbus/debug_daemon_client.cc

Issue 329853010: Additional methods for chrome.logPrivate API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 5 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
« no previous file with comments | « chromeos/dbus/debug_daemon_client.h ('k') | chromeos/dbus/fake_debug_daemon_client.h » ('j') | 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 "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 28 matching lines...) Expand all
39 namespace chromeos { 39 namespace chromeos {
40 40
41 // The DebugDaemonClient implementation used in production. 41 // The DebugDaemonClient implementation used in production.
42 class DebugDaemonClientImpl : public DebugDaemonClient { 42 class DebugDaemonClientImpl : public DebugDaemonClient {
43 public: 43 public:
44 DebugDaemonClientImpl() : debugdaemon_proxy_(NULL), weak_ptr_factory_(this) {} 44 DebugDaemonClientImpl() : debugdaemon_proxy_(NULL), weak_ptr_factory_(this) {}
45 45
46 virtual ~DebugDaemonClientImpl() {} 46 virtual ~DebugDaemonClientImpl() {}
47 47
48 // DebugDaemonClient override. 48 // DebugDaemonClient override.
49 virtual void GetDebugLogs(base::File file, 49 virtual void DumpDebugLogs(bool is_compressed,
50 const GetDebugLogsCallback& callback) OVERRIDE { 50 base::File file,
51 51 const GetDebugLogsCallback& callback) OVERRIDE {
52 dbus::FileDescriptor* file_descriptor = new dbus::FileDescriptor; 52 dbus::FileDescriptor* file_descriptor = new dbus::FileDescriptor;
53 file_descriptor->PutValue(file.TakePlatformFile()); 53 file_descriptor->PutValue(file.TakePlatformFile());
54 // Punt descriptor validity check to a worker thread; on return we'll 54 // Punt descriptor validity check to a worker thread; on return we'll
55 // issue the D-Bus request to stop tracing and collect results. 55 // issue the D-Bus request to stop tracing and collect results.
56 base::WorkerPool::PostTaskAndReply( 56 base::WorkerPool::PostTaskAndReply(
57 FROM_HERE, 57 FROM_HERE,
58 base::Bind(&dbus::FileDescriptor::CheckValidity, 58 base::Bind(&dbus::FileDescriptor::CheckValidity,
59 base::Unretained(file_descriptor)), 59 base::Unretained(file_descriptor)),
60 base::Bind(&DebugDaemonClientImpl::OnCheckValidityGetDebugLogs, 60 base::Bind(&DebugDaemonClientImpl::OnCheckValidityGetDebugLogs,
61 weak_ptr_factory_.GetWeakPtr(), 61 weak_ptr_factory_.GetWeakPtr(),
62 is_compressed,
62 base::Owned(file_descriptor), 63 base::Owned(file_descriptor),
63 callback), 64 callback),
64 false); 65 false);
65 } 66 }
66 67
67 virtual void SetDebugMode(const std::string& subsystem, 68 virtual void SetDebugMode(const std::string& subsystem,
68 const SetDebugModeCallback& callback) OVERRIDE { 69 const SetDebugModeCallback& callback) OVERRIDE {
69 dbus::MethodCall method_call(debugd::kDebugdInterface, 70 dbus::MethodCall method_call(debugd::kDebugdInterface,
70 debugd::kSetDebugMode); 71 debugd::kSetDebugMode);
71 dbus::MessageWriter writer(&method_call); 72 dbus::MessageWriter writer(&method_call);
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 307
307 protected: 308 protected:
308 virtual void Init(dbus::Bus* bus) OVERRIDE { 309 virtual void Init(dbus::Bus* bus) OVERRIDE {
309 debugdaemon_proxy_ = 310 debugdaemon_proxy_ =
310 bus->GetObjectProxy(debugd::kDebugdServiceName, 311 bus->GetObjectProxy(debugd::kDebugdServiceName,
311 dbus::ObjectPath(debugd::kDebugdServicePath)); 312 dbus::ObjectPath(debugd::kDebugdServicePath));
312 } 313 }
313 314
314 private: 315 private:
315 // Called when a CheckValidity response is received. 316 // Called when a CheckValidity response is received.
316 void OnCheckValidityGetDebugLogs(dbus::FileDescriptor* file_descriptor, 317 void OnCheckValidityGetDebugLogs(bool is_compressed,
318 dbus::FileDescriptor* file_descriptor,
317 const GetDebugLogsCallback& callback) { 319 const GetDebugLogsCallback& callback) {
318 // Issue the dbus request to get debug logs. 320 // Issue the dbus request to get debug logs.
319 dbus::MethodCall method_call( 321 dbus::MethodCall method_call(debugd::kDebugdInterface,
320 debugd::kDebugdInterface, 322 debugd::kDumpDebugLogs);
321 debugd::kGetDebugLogs);
322 dbus::MessageWriter writer(&method_call); 323 dbus::MessageWriter writer(&method_call);
324 writer.AppendBool(is_compressed);
323 writer.AppendFileDescriptor(*file_descriptor); 325 writer.AppendFileDescriptor(*file_descriptor);
324 326
325 debugdaemon_proxy_->CallMethod( 327 debugdaemon_proxy_->CallMethod(
326 &method_call, 328 &method_call,
327 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 329 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
328 base::Bind(&DebugDaemonClientImpl::OnGetDebugLogs, 330 base::Bind(&DebugDaemonClientImpl::OnGetDebugLogs,
329 weak_ptr_factory_.GetWeakPtr(), 331 weak_ptr_factory_.GetWeakPtr(),
330 callback)); 332 callback));
331 } 333 }
332 334
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 DebugDaemonClient::EmptyStopSystemTracingCallback() { 548 DebugDaemonClient::EmptyStopSystemTracingCallback() {
547 return base::Bind(&EmptyStopSystemTracingCallbackBody); 549 return base::Bind(&EmptyStopSystemTracingCallbackBody);
548 } 550 }
549 551
550 // static 552 // static
551 DebugDaemonClient* DebugDaemonClient::Create() { 553 DebugDaemonClient* DebugDaemonClient::Create() {
552 return new DebugDaemonClientImpl(); 554 return new DebugDaemonClientImpl();
553 } 555 }
554 556
555 } // namespace chromeos 557 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/dbus/debug_daemon_client.h ('k') | chromeos/dbus/fake_debug_daemon_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698