| // 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_ |