blob: 3db410bea150595bb9e6c38ffd9ac50f4d6c4d80 [file] [log] [blame]
// 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.
#ifndef CHROMEOS_NETWORK_NETWORK_DEVICE_HANDLER_IMPL_H_
#define CHROMEOS_NETWORK_NETWORK_DEVICE_HANDLER_IMPL_H_
#include <map>
#include <string>
#include "base/basictypes.h"
#include "base/callback.h"
#include "base/compiler_specific.h"
#include "chromeos/chromeos_export.h"
#include "chromeos/network/network_device_handler.h"
#include "chromeos/network/network_handler.h"
#include "chromeos/network/network_handler_callbacks.h"
#include "chromeos/network/network_state_handler_observer.h"
namespace chromeos {
class NetworkStateHandler;
class CHROMEOS_EXPORT NetworkDeviceHandlerImpl
: public NetworkDeviceHandler,
public NetworkStateHandlerObserver {
public:
virtual ~NetworkDeviceHandlerImpl();
// NetworkDeviceHandler overrides
virtual void GetDeviceProperties(
const std::string& device_path,
const network_handler::DictionaryResultCallback& callback,
const network_handler::ErrorCallback& error_callback) const OVERRIDE;
virtual void SetDeviceProperty(
const std::string& device_path,
const std::string& property_name,
const base::Value& value,
const base::Closure& callback,
const network_handler::ErrorCallback& error_callback) OVERRIDE;
virtual void RequestRefreshIPConfigs(
const std::string& device_path,
const base::Closure& callback,
const network_handler::ErrorCallback& error_callback) OVERRIDE;
virtual void ProposeScan(const std::string& device_path,
const base::Closure& callback,
const network_handler::ErrorCallback& error_callback)
OVERRIDE;
virtual void RegisterCellularNetwork(
const std::string& device_path,
const std::string& network_id,
const base::Closure& callback,
const network_handler::ErrorCallback& error_callback) OVERRIDE;
virtual void SetCarrier(const std::string& device_path,
const std::string& carrier,
const base::Closure& callback,
const network_handler::ErrorCallback& error_callback)
OVERRIDE;
virtual void RequirePin(const std::string& device_path,
bool require_pin,
const std::string& pin,
const base::Closure& callback,
const network_handler::ErrorCallback& error_callback)
OVERRIDE;
virtual void EnterPin(const std::string& device_path,
const std::string& pin,
const base::Closure& callback,
const network_handler::ErrorCallback& error_callback)
OVERRIDE;
virtual void UnblockPin(const std::string& device_path,
const std::string& puk,
const std::string& new_pin,
const base::Closure& callback,
const network_handler::ErrorCallback& error_callback)
OVERRIDE;
virtual void ChangePin(const std::string& device_path,
const std::string& old_pin,
const std::string& new_pin,
const base::Closure& callback,
const network_handler::ErrorCallback& error_callback)
OVERRIDE;
virtual void SetCellularAllowRoaming(bool allow_roaming) OVERRIDE;
virtual void SetWifiTDLSEnabled(
const std::string& ip_or_mac_address,
bool enabled,
const network_handler::StringResultCallback& callback,
const network_handler::ErrorCallback& error_callback) OVERRIDE;
virtual void GetWifiTDLSStatus(
const std::string& ip_or_mac_address,
const network_handler::StringResultCallback& callback,
const network_handler::ErrorCallback& error_callback) OVERRIDE;
// NetworkStateHandlerObserver overrides
virtual void DeviceListChanged() OVERRIDE;
private:
friend class NetworkHandler;
friend class NetworkDeviceHandlerTest;
NetworkDeviceHandlerImpl();
void Init(NetworkStateHandler* network_state_handler);
// Apply the current value of |cellular_allow_roaming_| to all existing
// cellular devices of Shill.
void ApplyCellularAllowRoamingToShill();
NetworkStateHandler* network_state_handler_;
bool cellular_allow_roaming_;
DISALLOW_COPY_AND_ASSIGN(NetworkDeviceHandlerImpl);
};
} // namespace chromeos
#endif // CHROMEOS_NETWORK_NETWORK_DEVICE_HANDLER_IMPL_H_