X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=client_interface_impl.h;h=6ce05477b3eeabeb731db73455a9b29e3d9d3fab;hb=HEAD;hp=72f581f02c2a3d1e7e42819a2c2f72a6bd6c8732;hpb=a9ff08db2f0b37a25c6794da2d65ff89ced4c0bd;p=android-x86%2Fsystem-connectivity-wificond.git diff --git a/client_interface_impl.h b/client_interface_impl.h index 72f581f..6ce0547 100644 --- a/client_interface_impl.h +++ b/client_interface_impl.h @@ -26,13 +26,15 @@ #include "android/net/wifi/IClientInterface.h" #include "wificond/net/mlme_event_handler.h" +#include "wificond/net/netlink_utils.h" +#include "wificond/scanning/offload/offload_service_utils.h" +#include "wificond/scanning/scanner_impl.h" namespace android { namespace wificond { class ClientInterfaceBinder; class ClientInterfaceImpl; -class NetlinkUtils; class ScanUtils; class MlmeEventHandlerImpl : public MlmeEventHandler { @@ -42,6 +44,8 @@ class MlmeEventHandlerImpl : public MlmeEventHandler { void OnConnect(std::unique_ptr event) override; void OnRoam(std::unique_ptr event) override; void OnAssociate(std::unique_ptr event) override; + void OnDisconnect(std::unique_ptr event) override; + void OnDisassociate(std::unique_ptr event) override; private: ClientInterfaceImpl* client_interface_; @@ -56,6 +60,7 @@ class MlmeEventHandlerImpl : public MlmeEventHandler { class ClientInterfaceImpl { public: ClientInterfaceImpl( + uint32_t wiphy_index, const std::string& interface_name, uint32_t interface_index, const std::vector& interface_mac_addr, @@ -63,7 +68,7 @@ class ClientInterfaceImpl { android::wifi_system::SupplicantManager* supplicant_manager, NetlinkUtils* netlink_utils, ScanUtils* scan_utils); - ~ClientInterfaceImpl(); + virtual ~ClientInterfaceImpl(); // Get a pointer to the binder representing this ClientInterfaceImpl. android::sp GetBinder() const; @@ -74,18 +79,17 @@ class ClientInterfaceImpl { bool SignalPoll(std::vector* out_signal_poll_results); const std::vector& GetMacAddress(); const std::string& GetInterfaceName() const { return interface_name_; } + const android::sp GetScanner() { return scanner_; }; bool requestANQP( const ::std::vector& bssid, const ::android::sp<::android::net::wifi::IANQPDoneCallback>& callback); + virtual bool IsAssociated() const; + void Dump(std::stringstream* ss) const; private: - void OnScanResultsReady(uint32_t interface_index, - bool aborted, - std::vector>& ssids, - std::vector& frequencies); - void OnSchedScanResultsReady(uint32_t interface_index); bool RefreshAssociateFreq(); + const uint32_t wiphy_index_; const std::string interface_name_; const uint32_t interface_index_; const std::vector interface_mac_addr_; @@ -93,12 +97,21 @@ class ClientInterfaceImpl { android::wifi_system::SupplicantManager* const supplicant_manager_; NetlinkUtils* const netlink_utils_; ScanUtils* const scan_utils_; + const std::shared_ptr offload_service_utils_; const std::unique_ptr mlme_event_handler_; const android::sp binder_; + android::sp scanner_; + // Cached information for this connection. + bool is_associated_; std::vector bssid_; uint32_t associate_freq_; + // Capability information for this wiphy/interface. + BandInfo band_info_; + ScanCapabilities scan_capabilities_; + WiphyFeatures wiphy_features_; + DISALLOW_COPY_AND_ASSIGN(ClientInterfaceImpl); friend class MlmeEventHandlerImpl; };