/* * WPA Supplicant - Supplicant Aidl interface * Copyright (c) 2021, Google Inc. All rights reserved. * * This software may be distributed under the terms of the BSD license. * See README for more details. */ #ifndef WPA_SUPPLICANT_AIDL_SUPPLICANT_H #define WPA_SUPPLICANT_AIDL_SUPPLICANT_H #include #include #include #include #include #include #include extern "C" { #include "utils/common.h" #include "utils/includes.h" #include "utils/wpa_debug.h" #include "wpa_supplicant_i.h" #include "scan.h" } namespace aidl { namespace android { namespace hardware { namespace wifi { namespace supplicant { /** * Implementation of the supplicant aidl object. This aidl * object is used core for global control operations on * wpa_supplicant. */ class Supplicant : public BnSupplicant { public: Supplicant(struct wpa_global* global); ~Supplicant() override = default; bool isValid(); // Aidl methods exposed. ::ndk::ScopedAStatus addP2pInterface( const std::string& in_name, std::shared_ptr* _aidl_return) override; ::ndk::ScopedAStatus addStaInterface( const std::string& in_name, std::shared_ptr* _aidl_return) override; ::ndk::ScopedAStatus removeInterface( const IfaceInfo& in_ifaceInfo) override; ::ndk::ScopedAStatus getP2pInterface( const std::string& in_name, std::shared_ptr* _aidl_return) override; ::ndk::ScopedAStatus getStaInterface( const std::string& in_name, std::shared_ptr* _aidl_return) override; ::ndk::ScopedAStatus listInterfaces( std::vector* _aidl_return) override; ::ndk::ScopedAStatus registerCallback( const std::shared_ptr& in_callback) override; ::ndk::ScopedAStatus setDebugParams( DebugLevel in_level, bool in_showTimestamp, bool in_showKeys) override; ::ndk::ScopedAStatus getDebugLevel(DebugLevel* _aidl_return) override; ::ndk::ScopedAStatus isDebugShowTimestampEnabled(bool* _aidl_return) override; ::ndk::ScopedAStatus isDebugShowKeysEnabled(bool* _aidl_return) override; ::ndk::ScopedAStatus setConcurrencyPriority(IfaceType in_type) override; ::ndk::ScopedAStatus terminate() override; private: // Corresponding worker functions for the AIDL methods. std::pair, ndk::ScopedAStatus> addP2pInterfaceInternal(const std::string& name); std::pair, ndk::ScopedAStatus> addStaInterfaceInternal(const std::string& name); std::pair, ndk::ScopedAStatus> getP2pInterfaceInternal(const std::string& name); std::pair, ndk::ScopedAStatus> getStaInterfaceInternal(const std::string& name); ndk::ScopedAStatus removeInterfaceInternal(const IfaceInfo& iface_info); std::pair, ndk::ScopedAStatus> listInterfacesInternal(); ndk::ScopedAStatus registerCallbackInternal( const std::shared_ptr& callback); ndk::ScopedAStatus setDebugParamsInternal( DebugLevel level, bool show_timestamp, bool show_keys); ndk::ScopedAStatus setConcurrencyPriorityInternal(IfaceType type); ndk::ScopedAStatus addP2pDevInterface(struct wpa_interface iface_params); // Raw pointer to the global structure maintained by the core. struct wpa_global* wpa_global_; // Driver name to be used for creating interfaces. static const char kDriverName[]; // wpa_supplicant.conf file location on the device. static const char kConfigFilePath[]; DISALLOW_COPY_AND_ASSIGN(Supplicant); }; } // namespace supplicant } // namespace wifi } // namespace hardware } // namespace android } // namespace aidl #endif // WPA_SUPPLICANT_AIDL_SUPPLICANT_H