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

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: 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
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 const GetDebugLogsCallback& callback) OVERRIDE {
51 52
52 dbus::FileDescriptor* file_descriptor = new dbus::FileDescriptor; 53 dbus::FileDescriptor* file_descriptor = new dbus::FileDescriptor;
53 file_descriptor->PutValue(file.TakePlatformFile()); 54 file_descriptor->PutValue(file.TakePlatformFile());
54 // Punt descriptor validity check to a worker thread; on return we'll 55 // Punt descriptor validity check to a worker thread; on return we'll
55 // issue the D-Bus request to stop tracing and collect results. 56 // issue the D-Bus request to stop tracing and collect results.
56 base::WorkerPool::PostTaskAndReply( 57 base::WorkerPool::PostTaskAndReply(
57 FROM_HERE, 58 FROM_HERE,
58 base::Bind(&dbus::FileDescriptor::CheckValidity, 59 base::Bind(&dbus::FileDescriptor::CheckValidity,
59 base::Unretained(file_descriptor)), 60 base::Unretained(file_descriptor)),
60 base::Bind(&DebugDaemonClientImpl::OnCheckValidityGetDebugLogs, 61 base::Bind(&DebugDaemonClientImpl::OnCheckValidityGetDebugLogs,
61 weak_ptr_factory_.GetWeakPtr(), 62 weak_ptr_factory_.GetWeakPtr(),
63 is_compressed,
62 base::Owned(file_descriptor), 64 base::Owned(file_descriptor),
63 callback), 65 callback),
64 false); 66 false);
65 } 67 }
66 68
67 virtual void SetDebugMode(const std::string& subsystem, 69 virtual void SetDebugMode(const std::string& subsystem,
68 const SetDebugModeCallback& callback) OVERRIDE { 70 const SetDebugModeCallback& callback) OVERRIDE {
69 dbus::MethodCall method_call(debugd::kDebugdInterface, 71 dbus::MethodCall method_call(debugd::kDebugdInterface,
70 debugd::kSetDebugMode); 72 debugd::kSetDebugMode);
71 dbus::MessageWriter writer(&method_call); 73 dbus::MessageWriter writer(&method_call);
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 308
307 protected: 309 protected:
308 virtual void Init(dbus::Bus* bus) OVERRIDE { 310 virtual void Init(dbus::Bus* bus) OVERRIDE {
309 debugdaemon_proxy_ = 311 debugdaemon_proxy_ =
310 bus->GetObjectProxy(debugd::kDebugdServiceName, 312 bus->GetObjectProxy(debugd::kDebugdServiceName,
311 dbus::ObjectPath(debugd::kDebugdServicePath)); 313 dbus::ObjectPath(debugd::kDebugdServicePath));
312 } 314 }
313 315
314 private: 316 private:
315 // Called when a CheckValidity response is received. 317 // Called when a CheckValidity response is received.
316 void OnCheckValidityGetDebugLogs(dbus::FileDescriptor* file_descriptor, 318 void OnCheckValidityGetDebugLogs(bool is_compressed,
319 dbus::FileDescriptor* file_descriptor,
317 const GetDebugLogsCallback& callback) { 320 const GetDebugLogsCallback& callback) {
318 // Issue the dbus request to get debug logs. 321 // Issue the dbus request to get debug logs.
319 dbus::MethodCall method_call( 322 dbus::MethodCall method_call(
320 debugd::kDebugdInterface, 323 debugd::kDebugdInterface,
321 debugd::kGetDebugLogs); 324 debugd::kDumpDebugLogs);
322 dbus::MessageWriter writer(&method_call); 325 dbus::MessageWriter writer(&method_call);
326 writer.AppendBool(is_compressed);
323 writer.AppendFileDescriptor(*file_descriptor); 327 writer.AppendFileDescriptor(*file_descriptor);
324 328
325 debugdaemon_proxy_->CallMethod( 329 debugdaemon_proxy_->CallMethod(
326 &method_call, 330 &method_call,
327 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 331 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
328 base::Bind(&DebugDaemonClientImpl::OnGetDebugLogs, 332 base::Bind(&DebugDaemonClientImpl::OnGetDebugLogs,
329 weak_ptr_factory_.GetWeakPtr(), 333 weak_ptr_factory_.GetWeakPtr(),
330 callback)); 334 callback));
331 } 335 }
332 336
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 DebugDaemonClient::EmptyStopSystemTracingCallback() { 550 DebugDaemonClient::EmptyStopSystemTracingCallback() {
547 return base::Bind(&EmptyStopSystemTracingCallbackBody); 551 return base::Bind(&EmptyStopSystemTracingCallbackBody);
548 } 552 }
549 553
550 // static 554 // static
551 DebugDaemonClient* DebugDaemonClient::Create() { 555 DebugDaemonClient* DebugDaemonClient::Create() {
552 return new DebugDaemonClientImpl(); 556 return new DebugDaemonClientImpl();
553 } 557 }
554 558
555 } // namespace chromeos 559 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698