Chromium Code Reviews| Index: chrome/browser/local_discovery/privetv3_setup_flow.h |
| diff --git a/chrome/browser/local_discovery/privetv3_setup_flow.h b/chrome/browser/local_discovery/privetv3_setup_flow.h |
| index 405b02cc9c92f3f5869910d1e83a52195f38ca94..7e4537a55f6a596529f4f0fd8e7fe01159a86874 100644 |
| --- a/chrome/browser/local_discovery/privetv3_setup_flow.h |
| +++ b/chrome/browser/local_discovery/privetv3_setup_flow.h |
| @@ -9,57 +9,70 @@ |
| #include "base/callback.h" |
| #include "base/memory/scoped_ptr.h" |
| +#include "chrome/browser/local_discovery/gcd_api_flow.h" |
| +#include "chrome/browser/local_discovery/privet_http_asynchronous_factory.h" |
| namespace local_discovery { |
| -class ServiceDiscoveryClient; |
| - |
| -#if defined(ENABLE_WIFI_BOOTSTRAPPING) |
| -namespace wifi { |
| -class WifiManager; |
| -}; |
| -#endif |
| - |
| +// Provides complete flow for Privet v3 device setup. |
| class PrivetV3SetupFlow { |
| public: |
| + // Delegate to be implemented by client code. |
| class Delegate { |
| public: |
| - typedef base::Callback<void(bool confirm)> ConfirmationCallback; |
| - typedef base::Callback<void(const std::string& key)> CredentialsCallback; |
| + typedef base::Callback<void(bool success)> ResultCallback; |
| + typedef base::Callback<void(const std::string& ssid, |
|
Noam Samuel
2014/06/06 23:14:48
Add comment explaining empty ssid is sentinel valu
Vitaly Buka (NO REVIEWS)
2014/06/06 23:20:31
Done.
|
| + const std::string& key)> CredentialsCallback; |
| - virtual ~Delegate() {} |
| + virtual ~Delegate(); |
| -#if defined(ENABLE_WIFI_BOOTSTRAPPING) |
| - virtual void OnSetupCredentialsNeeded(const std::string& ssid, |
| - const CredentialsCallback& callback); |
| -#endif |
| + // Creates |GCDApiFlow| for making requests to GCD server. |
| + virtual scoped_ptr<GCDApiFlow> CreateApiFlow( |
| + scoped_ptr<GCDApiFlow::Request> request) = 0; |
| + |
| + // Requests WiFi credentials. |
| + virtual void GetWiFiCredentials(const CredentialsCallback& callback) = 0; |
| - virtual void OnSetupConfirmationNeeded( |
| - const std::string& confirmation_code, |
| - const ConfirmationCallback& callback) = 0; |
| + // Switches to setup WiFi network. |
| + // If switch was successfully |RestoreWifi| should be called later. |
| + virtual void SwitchToSetupWiFi(const ResultCallback& callback) = 0; |
| + // Starts device resolution that should callback with ready |
| + // |PrivetHTTPClient|. |
| + virtual scoped_ptr<PrivetHTTPResolution> CreatePrivetHTTP( |
| + const std::string& device, |
|
Noam Samuel
2014/06/06 23:14:48
service_name
Vitaly Buka (NO REVIEWS)
2014/06/06 23:20:31
Done.
|
| + const PrivetHTTPAsynchronousFactory::ResultCallback& callback) = 0; |
| + |
| + // Requests client to prompt user to check |confirmation_code|. |
| + virtual void ConfirmSecurityCode(const std::string& confirmation_code, |
| + const ResultCallback& callback) = 0; |
| + |
| + // Restores WiFi network. |
| + virtual void RestoreWifi(const ResultCallback& callback) = 0; |
| + |
| + // Notifies client that device is set up. |
| virtual void OnSetupDone() = 0; |
| + // Notifies client setup failed. |
| virtual void OnSetupError() = 0; |
| }; |
| - virtual ~PrivetV3SetupFlow() {} |
| + explicit PrivetV3SetupFlow(Delegate* delegate); |
| + ~PrivetV3SetupFlow(); |
| - static scoped_ptr<PrivetV3SetupFlow> CreateMDnsOnlyFlow( |
| - ServiceDiscoveryClient* service_discovery_client, |
| - const std::string& service_name); |
| + // Starts registration. |
| + void Register(const std::string& service_name); |
| #if defined(ENABLE_WIFI_BOOTSTRAPPING) |
| - static scoped_ptr<PrivetV3SetupFlow> CreateWifiFlow( |
| - ServiceDiscoveryClient* service_discovery_client, |
| - wifi::WifiManager* wifi_manager, |
| - // The SSID of the network whose credentials we will be provisioning. |
| - const std::string& credentials_ssid, |
| - // The SSID of the device we will be provisioning. |
| - const std::string& device_ssid); |
| -#endif |
| - |
| - virtual void Start() = 0; |
| + void SetupWifiAndRegister(const std::string& device_ssid); |
| +#endif // ENABLE_WIFI_BOOTSTRAPPING |
| + |
| + private: |
| + Delegate* delegate_; |
| + std::string service_name_; |
| + base::WeakPtrFactory<PrivetV3SetupFlow> weak_ptr_factory_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(PrivetV3SetupFlow); |
| }; |
| } // namespace local_discovery |