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

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

Issue 17210002: Connectivity Diagnostics API: chrome.diagnostics.sendPacket (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Use avg instead of time Created 7 years, 6 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 | Annotate | Revision Log
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 <fcntl.h> 5 #include <fcntl.h>
6 #include <unistd.h> 6 #include <unistd.h>
7 7
8 #include "chromeos/dbus/debug_daemon_client.h" 8 #include "chromeos/dbus/debug_daemon_client.h"
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 dbus::MessageWriter writer(&method_call); 340 dbus::MessageWriter writer(&method_call);
341 writer.AppendString(ip_address); 341 writer.AppendString(ip_address);
342 debugdaemon_proxy_->CallMethod( 342 debugdaemon_proxy_->CallMethod(
343 &method_call, 343 &method_call,
344 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 344 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
345 base::Bind(&DebugDaemonClientImpl::OnTestICMP, 345 base::Bind(&DebugDaemonClientImpl::OnTestICMP,
346 weak_ptr_factory_.GetWeakPtr(), 346 weak_ptr_factory_.GetWeakPtr(),
347 callback)); 347 callback));
348 } 348 }
349 349
350 virtual void TestICMPWithOptions(
351 const std::string& ip_address,
352 const std::map<std::string, std::string>& options,
353 const TestICMPCallback& callback) OVERRIDE {
354 dbus::MethodCall method_call(debugd::kDebugdInterface,
355 debugd::kTestICMPWithOptions);
356 dbus::MessageWriter writer(&method_call);
357 dbus::MessageWriter sub_writer(NULL);
358 dbus::MessageWriter elem_writer(NULL);
359
360 // Write the host.
361 writer.AppendString(ip_address);
362
363 // Write the options.
364 writer.OpenArray("{ss}", &sub_writer);
365 std::map<std::string, std::string>::const_iterator it;
366 for (it = options.begin(); it != options.end(); ++it) {
367 sub_writer.OpenDictEntry(&elem_writer);
368 elem_writer.AppendString(it->first);
369 elem_writer.AppendString(it->second);
370 sub_writer.CloseContainer(&elem_writer);
371 }
372 writer.CloseContainer(&sub_writer);
373
374 // Call the function.
375 debugdaemon_proxy_->CallMethod(
376 &method_call,
377 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
378 base::Bind(&DebugDaemonClientImpl::OnTestICMP,
379 weak_ptr_factory_.GetWeakPtr(),
380 callback));
381 }
382
350 private: 383 private:
351 // Called to check descriptor validity on a thread where i/o is permitted. 384 // Called to check descriptor validity on a thread where i/o is permitted.
352 static void CheckValidity(dbus::FileDescriptor* file_descriptor) { 385 static void CheckValidity(dbus::FileDescriptor* file_descriptor) {
353 file_descriptor->CheckValidity(); 386 file_descriptor->CheckValidity();
354 } 387 }
355 388
356 // Called when a CheckValidity response is received. 389 // Called when a CheckValidity response is received.
357 void OnCheckValidityGetDebugLogs(dbus::FileDescriptor* file_descriptor, 390 void OnCheckValidityGetDebugLogs(dbus::FileDescriptor* file_descriptor,
358 const GetDebugLogsCallback& callback) { 391 const GetDebugLogsCallback& callback) {
359 // Issue the dbus request to get debug logs. 392 // Issue the dbus request to get debug logs.
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
608 user_logs["invalid_file"] = "Invalid File"; 641 user_logs["invalid_file"] = "Invalid File";
609 base::MessageLoop::current()->PostTask(FROM_HERE, 642 base::MessageLoop::current()->PostTask(FROM_HERE,
610 base::Bind(callback, true, user_logs)); 643 base::Bind(callback, true, user_logs));
611 } 644 }
612 645
613 virtual void TestICMP(const std::string& ip_address, 646 virtual void TestICMP(const std::string& ip_address,
614 const TestICMPCallback& callback) OVERRIDE { 647 const TestICMPCallback& callback) OVERRIDE {
615 base::MessageLoop::current()->PostTask(FROM_HERE, 648 base::MessageLoop::current()->PostTask(FROM_HERE,
616 base::Bind(callback, false, "")); 649 base::Bind(callback, false, ""));
617 } 650 }
651
652 virtual void TestICMPWithOptions(
653 const std::string& ip_address,
654 const std::map<std::string, std::string>& options,
655 const TestICMPCallback& callback) OVERRIDE {
656 base::MessageLoop::current()->PostTask(
657 FROM_HERE, base::Bind(callback, false, ""));
658 }
618 }; 659 };
619 660
620 DebugDaemonClient::DebugDaemonClient() { 661 DebugDaemonClient::DebugDaemonClient() {
621 } 662 }
622 663
623 DebugDaemonClient::~DebugDaemonClient() { 664 DebugDaemonClient::~DebugDaemonClient() {
624 } 665 }
625 666
626 // static 667 // static
627 DebugDaemonClient::StopSystemTracingCallback 668 DebugDaemonClient::StopSystemTracingCallback
628 DebugDaemonClient::EmptyStopSystemTracingCallback() { 669 DebugDaemonClient::EmptyStopSystemTracingCallback() {
629 return base::Bind(&EmptyStopSystemTracingCallbackBody); 670 return base::Bind(&EmptyStopSystemTracingCallbackBody);
630 } 671 }
631 672
632 // static 673 // static
633 DebugDaemonClient* DebugDaemonClient::Create(DBusClientImplementationType type, 674 DebugDaemonClient* DebugDaemonClient::Create(DBusClientImplementationType type,
634 dbus::Bus* bus) { 675 dbus::Bus* bus) {
635 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) 676 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION)
636 return new DebugDaemonClientImpl(bus); 677 return new DebugDaemonClientImpl(bus);
637 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); 678 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type);
638 return new DebugDaemonClientStubImpl(); 679 return new DebugDaemonClientStubImpl();
639 } 680 }
640 681
641 } // namespace chromeos 682 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698