| Index: chromeos/components/tether/tether_connector.h
|
| diff --git a/chromeos/components/tether/tether_connector.h b/chromeos/components/tether/tether_connector.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..1282f16b66b170671b92ddb86037d29dbba2dd93
|
| --- /dev/null
|
| +++ b/chromeos/components/tether/tether_connector.h
|
| @@ -0,0 +1,98 @@
|
| +// Copyright 2016 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_COMPONENTS_TETHER_TETHER_CONNECTOR_H_
|
| +#define CHROMEOS_COMPONENTS_TETHER_TETHER_CONNECTOR_H_
|
| +
|
| +#include "base/macros.h"
|
| +#include "base/memory/weak_ptr.h"
|
| +#include "chromeos/components/tether/connect_tethering_operation.h"
|
| +#include "chromeos/network/network_connect.h"
|
| +
|
| +namespace chromeos {
|
| +
|
| +class NetworkStateHandler;
|
| +
|
| +namespace tether {
|
| +
|
| +class ActiveHost;
|
| +class BleConnectionManager;
|
| +class DeviceIdTetherNetworkGuidMap;
|
| +class HostScanDevicePrioritizer;
|
| +class TetherHostFetcher;
|
| +class WifiHotspotConnector;
|
| +
|
| +// Connects to a tether network. When the user initiates a connection via the
|
| +// UI, TetherConnector receives a callback from NetworkConnect and initiates a
|
| +// connection by starting a ConnectTetheringOperation. When a response has been
|
| +// received from the tether host, TetherConnector connects to the associated
|
| +// Wi-Fi network.
|
| +class TetherConnector : public NetworkConnect::TetherDelegate,
|
| + public ConnectTetheringOperation::Observer {
|
| + public:
|
| + TetherConnector(
|
| + WifiHotspotConnector* wifi_hotspot_connector,
|
| + ActiveHost* active_host,
|
| + TetherHostFetcher* tether_host_fetcher,
|
| + BleConnectionManager* connection_manager,
|
| + HostScanDevicePrioritizer* host_scan_device_prioritizer,
|
| + DeviceIdTetherNetworkGuidMap* device_id_tether_network_guid_map);
|
| + ~TetherConnector() override;
|
| +
|
| + // NetworkConnect::TetherDelegate:
|
| + void ConnectToNetwork(const std::string& guid) override;
|
| +
|
| + // ConnectTetheringOperation::Observer:
|
| + void OnSuccessfulConnectTetheringResponse(
|
| + const cryptauth::RemoteDevice& remote_device,
|
| + const std::string& ssid,
|
| + const std::string& password) override;
|
| + void OnConnectTetheringFailure(
|
| + const cryptauth::RemoteDevice& remote_device,
|
| + ConnectTetheringResponse_ResponseCode error_code) override;
|
| +
|
| + private:
|
| + friend class TetherConnectorTest;
|
| +
|
| + TetherConnector(
|
| + NetworkConnect* network_connect,
|
| + NetworkStateHandler* network_state_handler,
|
| + WifiHotspotConnector* wifi_hotspot_connector,
|
| + ActiveHost* active_host,
|
| + TetherHostFetcher* tether_host_fetcher,
|
| + BleConnectionManager* connection_manager,
|
| + HostScanDevicePrioritizer* host_scan_device_prioritizer,
|
| + DeviceIdTetherNetworkGuidMap* device_id_tether_network_guid_map);
|
| +
|
| + void SetDisconnected();
|
| + void SetConnected(const std::string& device_id,
|
| + const std::string& wifi_network_guid);
|
| +
|
| + void OnTetherHostToConnectFetched(
|
| + const std::string& device_id,
|
| + std::unique_ptr<cryptauth::RemoteDevice> tether_host_to_connect);
|
| + void OnWifiConnection(const std::string& device_id,
|
| + const std::string& wifi_network_guid);
|
| +
|
| + NetworkConnect* network_connect_;
|
| + NetworkStateHandler* network_state_handler_;
|
| + WifiHotspotConnector* wifi_hotspot_connector_;
|
| + ActiveHost* active_host_;
|
| + TetherHostFetcher* tether_host_fetcher_;
|
| + BleConnectionManager* connection_manager_;
|
| + HostScanDevicePrioritizer* host_scan_device_prioritizer_;
|
| + DeviceIdTetherNetworkGuidMap* device_id_tether_network_guid_map_;
|
| +
|
| + std::string device_id_pending_connection_;
|
| + std::unique_ptr<ConnectTetheringOperation> connect_tethering_operation_;
|
| + base::WeakPtrFactory<TetherConnector> weak_ptr_factory_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(TetherConnector);
|
| +};
|
| +
|
| +} // namespace tether
|
| +
|
| +} // namespace chromeos
|
| +
|
| +#endif // CHROMEOS_COMPONENTS_TETHER_TETHER_CONNECTOR_H_
|
|
|