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 #ifndef CHROMEOS_NETWORK_NETWORK_DEVICE_HANDLER_IMPL_H_
      6 #define CHROMEOS_NETWORK_NETWORK_DEVICE_HANDLER_IMPL_H_
      7 
      8 #include <map>
      9 #include <string>
     10 
     11 #include "base/basictypes.h"
     12 #include "base/callback.h"
     13 #include "base/compiler_specific.h"
     14 #include "chromeos/chromeos_export.h"
     15 #include "chromeos/network/network_device_handler.h"
     16 #include "chromeos/network/network_handler.h"
     17 #include "chromeos/network/network_handler_callbacks.h"
     18 #include "chromeos/network/network_state_handler_observer.h"
     19 
     20 namespace chromeos {
     21 
     22 class NetworkStateHandler;
     23 
     24 class CHROMEOS_EXPORT NetworkDeviceHandlerImpl
     25     : public NetworkDeviceHandler,
     26       public NetworkStateHandlerObserver {
     27  public:
     28   virtual ~NetworkDeviceHandlerImpl();
     29 
     30   // NetworkDeviceHandler overrides
     31   virtual void GetDeviceProperties(
     32       const std::string& device_path,
     33       const network_handler::DictionaryResultCallback& callback,
     34       const network_handler::ErrorCallback& error_callback) const OVERRIDE;
     35 
     36   virtual void SetDeviceProperty(
     37       const std::string& device_path,
     38       const std::string& property_name,
     39       const base::Value& value,
     40       const base::Closure& callback,
     41       const network_handler::ErrorCallback& error_callback) OVERRIDE;
     42 
     43   virtual void RequestRefreshIPConfigs(
     44       const std::string& device_path,
     45       const base::Closure& callback,
     46       const network_handler::ErrorCallback& error_callback) OVERRIDE;
     47 
     48   virtual void ProposeScan(const std::string& device_path,
     49                            const base::Closure& callback,
     50                            const network_handler::ErrorCallback& error_callback)
     51       OVERRIDE;
     52 
     53   virtual void RegisterCellularNetwork(
     54       const std::string& device_path,
     55       const std::string& network_id,
     56       const base::Closure& callback,
     57       const network_handler::ErrorCallback& error_callback) OVERRIDE;
     58 
     59   virtual void SetCarrier(const std::string& device_path,
     60                           const std::string& carrier,
     61                           const base::Closure& callback,
     62                           const network_handler::ErrorCallback& error_callback)
     63       OVERRIDE;
     64 
     65   virtual void RequirePin(const std::string& device_path,
     66                           bool require_pin,
     67                           const std::string& pin,
     68                           const base::Closure& callback,
     69                           const network_handler::ErrorCallback& error_callback)
     70       OVERRIDE;
     71 
     72   virtual void EnterPin(const std::string& device_path,
     73                         const std::string& pin,
     74                         const base::Closure& callback,
     75                         const network_handler::ErrorCallback& error_callback)
     76       OVERRIDE;
     77 
     78   virtual void UnblockPin(const std::string& device_path,
     79                           const std::string& puk,
     80                           const std::string& new_pin,
     81                           const base::Closure& callback,
     82                           const network_handler::ErrorCallback& error_callback)
     83       OVERRIDE;
     84 
     85   virtual void ChangePin(const std::string& device_path,
     86                          const std::string& old_pin,
     87                          const std::string& new_pin,
     88                          const base::Closure& callback,
     89                          const network_handler::ErrorCallback& error_callback)
     90       OVERRIDE;
     91 
     92   virtual void SetCellularAllowRoaming(bool allow_roaming) OVERRIDE;
     93 
     94   virtual void SetWifiTDLSEnabled(
     95       const std::string& ip_or_mac_address,
     96       bool enabled,
     97       const network_handler::StringResultCallback& callback,
     98       const network_handler::ErrorCallback& error_callback) OVERRIDE;
     99 
    100   virtual void GetWifiTDLSStatus(
    101       const std::string& ip_or_mac_address,
    102       const network_handler::StringResultCallback& callback,
    103       const network_handler::ErrorCallback& error_callback) OVERRIDE;
    104 
    105   // NetworkStateHandlerObserver overrides
    106   virtual void DeviceListChanged() OVERRIDE;
    107 
    108  private:
    109   friend class NetworkHandler;
    110   friend class NetworkDeviceHandlerTest;
    111 
    112   NetworkDeviceHandlerImpl();
    113 
    114   void Init(NetworkStateHandler* network_state_handler);
    115 
    116   // Apply the current value of |cellular_allow_roaming_| to all existing
    117   // cellular devices of Shill.
    118   void ApplyCellularAllowRoamingToShill();
    119 
    120   NetworkStateHandler* network_state_handler_;
    121   bool cellular_allow_roaming_;
    122 
    123   DISALLOW_COPY_AND_ASSIGN(NetworkDeviceHandlerImpl);
    124 };
    125 
    126 }  // namespace chromeos
    127 
    128 #endif  // CHROMEOS_NETWORK_NETWORK_DEVICE_HANDLER_IMPL_H_
    129