blob: 605bcd704fb5d8b1c769098b245cdb4fba272963 [file] [log] [blame]
// Copyright 2015 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 COMPONENTS_SYNC_WIFI_WIFI_CONFIG_DELEGATE_CHROMEOS_H_
#define COMPONENTS_SYNC_WIFI_WIFI_CONFIG_DELEGATE_CHROMEOS_H_
#include <string>
#include "base/macros.h"
#include "components/sync_wifi/wifi_config_delegate.h"
namespace chromeos {
class ManagedNetworkConfigurationHandler;
}
namespace sync_wifi {
// ChromeOS-specific implementation of the WifiConfigDelegate interface.
class WifiConfigDelegateChromeOs : public WifiConfigDelegate {
public:
// Constructs a delegate, which is responsible for applying changes
// to the local network configuration. Any changes made by this
// delegate will be applied to the Shill profile that corresponds to
// |user_hash|. The caller must ensure that the
// |managed_net_config_handler| outlives the delegate.
WifiConfigDelegateChromeOs(
const std::string& user_hash,
chromeos::ManagedNetworkConfigurationHandler* managed_net_config_handler);
~WifiConfigDelegateChromeOs() override;
// WifiConfigDelegate implementation.
void AddToLocalNetworks(const WifiCredential& network_credential) override;
private:
// The ChromeOS user-hash that should be used when modifying network
// configurations.
const std::string user_hash_;
// The object we use to configure ChromeOS network state.
chromeos::ManagedNetworkConfigurationHandler* const
managed_network_configuration_handler_;
DISALLOW_COPY_AND_ASSIGN(WifiConfigDelegateChromeOs);
};
} // namespace sync_wifi
#endif // COMPONENTS_SYNC_WIFI_WIFI_CONFIG_DELEGATE_CHROMEOS_H_