Home | History | Annotate | Download | only in network
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "chromeos/network/network_activation_handler.h"
      6 
      7 #include "base/bind.h"
      8 #include "base/bind_helpers.h"
      9 #include "chromeos/dbus/dbus_thread_manager.h"
     10 #include "chromeos/dbus/shill_service_client.h"
     11 #include "chromeos/network/network_event_log.h"
     12 #include "chromeos/network/network_handler.h"
     13 #include "dbus/object_proxy.h"
     14 
     15 namespace chromeos {
     16 
     17 // static
     18 const char NetworkActivationHandler::kErrorShillError[] = "shill-error";
     19 
     20 NetworkActivationHandler::NetworkActivationHandler() {}
     21 NetworkActivationHandler::~NetworkActivationHandler() {}
     22 
     23 void NetworkActivationHandler::Activate(
     24     const std::string& service_path,
     25     const std::string& carrier,
     26     const base::Closure& success_callback,
     27     const network_handler::ErrorCallback& error_callback) {
     28   NET_LOG_USER("ActivateNetwork", service_path);
     29   CallShillActivate(service_path, carrier, success_callback, error_callback);
     30 }
     31 
     32 void NetworkActivationHandler::CompleteActivation(
     33     const std::string& service_path,
     34     const base::Closure& success_callback,
     35     const network_handler::ErrorCallback& error_callback) {
     36   NET_LOG_USER("CompleteActivation", service_path);
     37   CallShillCompleteActivation(service_path, success_callback, error_callback);
     38 }
     39 
     40 void NetworkActivationHandler::CallShillActivate(
     41     const std::string& service_path,
     42     const std::string& carrier,
     43     const base::Closure& success_callback,
     44     const network_handler::ErrorCallback& error_callback) {
     45   NET_LOG_USER("Activation Request", service_path + ": '" + carrier + "'");
     46   DBusThreadManager::Get()->GetShillServiceClient()->ActivateCellularModem(
     47       dbus::ObjectPath(service_path),
     48       carrier,
     49       base::Bind(&NetworkActivationHandler::HandleShillSuccess,
     50                  AsWeakPtr(), service_path, success_callback),
     51       base::Bind(&network_handler::ShillErrorCallbackFunction,
     52                  kErrorShillError, service_path, error_callback));
     53 }
     54 
     55 void NetworkActivationHandler::CallShillCompleteActivation(
     56     const std::string& service_path,
     57     const base::Closure& success_callback,
     58     const network_handler::ErrorCallback& error_callback) {
     59   NET_LOG_USER("CompleteActivation Request", service_path);
     60   DBusThreadManager::Get()->GetShillServiceClient()->CompleteCellularActivation(
     61       dbus::ObjectPath(service_path),
     62       base::Bind(&NetworkActivationHandler::HandleShillSuccess,
     63                  AsWeakPtr(), service_path, success_callback),
     64       base::Bind(&network_handler::ShillErrorCallbackFunction,
     65                  kErrorShillError, service_path, error_callback));
     66 }
     67 
     68 void NetworkActivationHandler::HandleShillSuccess(
     69     const std::string& service_path,
     70     const base::Closure& success_callback) {
     71   if (!success_callback.is_null())
     72     success_callback.Run();
     73 }
     74 
     75 }  // namespace chromeos
     76