diff options
author | gauravsh@chromium.org <gauravsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-30 01:11:35 +0000 |
---|---|---|
committer | gauravsh@chromium.org <gauravsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-30 01:11:35 +0000 |
commit | 7799df37276fd11b497546261f427930348d2121 (patch) | |
tree | c16be35a7dd4ab634e6ddf758949896efb826d31 /chromeos/network/network_activation_handler.cc | |
parent | d9fce6725ec0812d04c4015e5b2d1c9e539afe1b (diff) | |
download | chromium_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.cc | 75 |
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 |