| // Copyright 2015 The Weave 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 LIBWEAVE_SRC_PRIVET_WIFI_DELEGATE_H_ |
| #define LIBWEAVE_SRC_PRIVET_WIFI_DELEGATE_H_ |
| |
| #include <memory> |
| #include <set> |
| #include <string> |
| |
| #include "src/privet/privet_types.h" |
| |
| namespace weave { |
| namespace privet { |
| |
| // Interface to provide WiFi functionality for PrivetHandler. |
| class WifiDelegate { |
| public: |
| WifiDelegate() = default; |
| virtual ~WifiDelegate() {} |
| |
| // Returns status of the WiFi connection. |
| virtual const ConnectionState& GetConnectionState() const = 0; |
| |
| // Returns status of the last WiFi setup. |
| virtual const SetupState& GetSetupState() const = 0; |
| |
| // Starts WiFi setup. Device should try to connect to provided SSID and |
| // password and store them on success. Result of setup should be available |
| // using GetSetupState(). |
| // Final setup state can be retrieved with GetSetupState(). |
| virtual bool ConfigureCredentials(const std::string& ssid, |
| const std::string& password, |
| ErrorPtr* error) = 0; |
| |
| // Returns SSID of the currently configured WiFi network. Empty string, if |
| // WiFi has not been configured yet. |
| virtual std::string GetCurrentlyConnectedSsid() const = 0; |
| |
| // Returns SSID of the WiFi network hosted by this device. Empty if device is |
| // not in setup or P2P modes. |
| virtual std::string GetHostedSsid() const = 0; |
| |
| // Returns list of supported WiFi types. Currently it's just frequencies. |
| virtual std::set<WifiType> GetTypes() const = 0; |
| }; |
| |
| } // namespace privet |
| } // namespace weave |
| |
| #endif // LIBWEAVE_SRC_PRIVET_WIFI_DELEGATE_H_ |