OSDN Git Service

Cleanup p2p0 interface upon tearDownInterfaces(). am: 075145ad1d am: 750c4ad4e3
[android-x86/system-connectivity-wificond.git] / ap_interface_impl.h
index 851f492..de6af5d 100644 (file)
 #ifndef WIFICOND_AP_INTERFACE_IMPL_H_
 #define WIFICOND_AP_INTERFACE_IMPL_H_
 
-#include <memory>
 #include <string>
 #include <vector>
 
 #include <android-base/macros.h>
 #include <wifi_system/hostapd_manager.h>
+#include <wifi_system/interface_tool.h>
 
 #include "android/net/wifi/IApInterface.h"
 
@@ -30,6 +30,7 @@ namespace android {
 namespace wificond {
 
 class ApInterfaceBinder;
+class NetlinkUtils;
 
 // Holds the guts of how we control network interfaces capable of exposing an AP
 // via hostapd.  Because remote processes may hold on to the corresponding
@@ -39,7 +40,9 @@ class ApInterfaceImpl {
  public:
   ApInterfaceImpl(const std::string& interface_name,
                   uint32_t interface_index,
-                  std::unique_ptr<wifi_system::HostapdManager> hostapd_manager);
+                  NetlinkUtils* netlink_utils,
+                  wifi_system::InterfaceTool* if_tool,
+                  wifi_system::HostapdManager* hostapd_manager);
   ~ApInterfaceImpl();
 
   // Get a pointer to the binder representing this ApInterfaceImpl.
@@ -53,11 +56,14 @@ class ApInterfaceImpl {
       int32_t channel,
       wifi_system::HostapdManager::EncryptionType encryption_type,
       const std::vector<uint8_t>& passphrase);
+  std::string GetInterfaceName() { return interface_name_; }
 
  private:
   const std::string interface_name_;
   const uint32_t interface_index_;
-  const std::unique_ptr<wifi_system::HostapdManager> hostapd_manager_;
+  NetlinkUtils* const netlink_utils_;
+  wifi_system::InterfaceTool* const if_tool_;
+  wifi_system::HostapdManager* const hostapd_manager_;
   const android::sp<ApInterfaceBinder> binder_;
 
   DISALLOW_COPY_AND_ASSIGN(ApInterfaceImpl);