• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
NetworkActivationHandler()20 NetworkActivationHandler::NetworkActivationHandler() {}
~NetworkActivationHandler()21 NetworkActivationHandler::~NetworkActivationHandler() {}
22 
Activate(const std::string & service_path,const std::string & carrier,const base::Closure & success_callback,const network_handler::ErrorCallback & error_callback)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 
CompleteActivation(const std::string & service_path,const base::Closure & success_callback,const network_handler::ErrorCallback & error_callback)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 
CallShillActivate(const std::string & service_path,const std::string & carrier,const base::Closure & success_callback,const network_handler::ErrorCallback & error_callback)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 
CallShillCompleteActivation(const std::string & service_path,const base::Closure & success_callback,const network_handler::ErrorCallback & error_callback)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 
HandleShillSuccess(const std::string & service_path,const base::Closure & success_callback)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