summaryrefslogtreecommitdiffstats
path: root/chromeos/network/network_activation_handler.cc
diff options
context:
space:
mode:
authorgauravsh@chromium.org <gauravsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-30 01:11:35 +0000
committergauravsh@chromium.org <gauravsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-30 01:11:35 +0000
commit7799df37276fd11b497546261f427930348d2121 (patch)
treec16be35a7dd4ab634e6ddf758949896efb826d31 /chromeos/network/network_activation_handler.cc
parentd9fce6725ec0812d04c4015e5b2d1c9e539afe1b (diff)
downloadchromium_src-7799df37276fd11b497546261f427930348d2121.zip
chromium_src-7799df37276fd11b497546261f427930348d2121.tar.gz
chromium_src-7799df37276fd11b497546261f427930348d2121.tar.bz2
Switch over MobileActivator to use Network*Handler
Add a NetworkActivationHandler for handling cellular activation calls to Shill. BUG=188753 TEST=tested Verizon LTE (on link) and Verizon 3g (on Lumpy) activation Review URL: https://chromiumcodereview.appspot.com/22611005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@220463 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos/network/network_activation_handler.cc')
-rw-r--r--chromeos/network/network_activation_handler.cc75
1 files changed, 75 insertions, 0 deletions
diff --git a/chromeos/network/network_activation_handler.cc b/chromeos/network/network_activation_handler.cc
new file mode 100644
index 0000000..90ed374
--- /dev/null
+++ b/chromeos/network/network_activation_handler.cc
@@ -0,0 +1,75 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chromeos/network/network_activation_handler.h"
+
+#include "base/bind.h"
+#include "base/bind_helpers.h"
+#include "chromeos/dbus/dbus_thread_manager.h"
+#include "chromeos/dbus/shill_service_client.h"
+#include "chromeos/network/network_event_log.h"
+#include "chromeos/network/network_handler.h"
+#include "dbus/object_proxy.h"
+
+namespace chromeos {
+
+// static
+const char NetworkActivationHandler::kErrorShillError[] = "shill-error";
+
+NetworkActivationHandler::NetworkActivationHandler() {}
+NetworkActivationHandler::~NetworkActivationHandler() {}
+
+void NetworkActivationHandler::Activate(
+ const std::string& service_path,
+ const std::string& carrier,
+ const base::Closure& success_callback,
+ const network_handler::ErrorCallback& error_callback) {
+ NET_LOG_USER("ActivateNetwork", service_path);
+ CallShillActivate(service_path, carrier, success_callback, error_callback);
+}
+
+void NetworkActivationHandler::CompleteActivation(
+ const std::string& service_path,
+ const base::Closure& success_callback,
+ const network_handler::ErrorCallback& error_callback) {
+ NET_LOG_USER("CompleteActivation", service_path);
+ CallShillCompleteActivation(service_path, success_callback, error_callback);
+}
+
+void NetworkActivationHandler::CallShillActivate(
+ const std::string& service_path,
+ const std::string& carrier,
+ const base::Closure& success_callback,
+ const network_handler::ErrorCallback& error_callback) {
+ NET_LOG_USER("Activation Request", service_path + ": '" + carrier + "'");
+ DBusThreadManager::Get()->GetShillServiceClient()->ActivateCellularModem(
+ dbus::ObjectPath(service_path),
+ carrier,
+ base::Bind(&NetworkActivationHandler::HandleShillSuccess,
+ AsWeakPtr(), service_path, success_callback),
+ base::Bind(&network_handler::ShillErrorCallbackFunction,
+ kErrorShillError, service_path, error_callback));
+}
+
+void NetworkActivationHandler::CallShillCompleteActivation(
+ const std::string& service_path,
+ const base::Closure& success_callback,
+ const network_handler::ErrorCallback& error_callback) {
+ NET_LOG_USER("CompleteActivation Request", service_path);
+ DBusThreadManager::Get()->GetShillServiceClient()->CompleteCellularActivation(
+ dbus::ObjectPath(service_path),
+ base::Bind(&NetworkActivationHandler::HandleShillSuccess,
+ AsWeakPtr(), service_path, success_callback),
+ base::Bind(&network_handler::ShillErrorCallbackFunction,
+ kErrorShillError, service_path, error_callback));
+}
+
+void NetworkActivationHandler::HandleShillSuccess(
+ const std::string& service_path,
+ const base::Closure& success_callback) {
+ if (!success_callback.is_null())
+ success_callback.Run();
+}
+
+} // namespace chromeos