nearbyconnections : Implement WifiLanV2 Connection functions for /medium, /public(wrapper), /g3.

PiperOrigin-RevId: 405820452
This commit is contained in:
edwinwu
2021-10-26 23:39:26 -07:00
committed by Copybara-Service
parent 83480d6473
commit 7197b84e4d
15 changed files with 726 additions and 63 deletions
+17 -3
View File
@@ -268,10 +268,8 @@ void MediumEnvironment::OnWifiLanServiceV2StateChanged(
<< "; notify=" << enable_notifications_.load();
if (enabled) {
// Find advertising service with matched service_type. Report it as
// discovered by assigning the fake ip address and port.
// discovered.
NsdServiceInfo discovered_service_info(service_info);
discovered_service_info.SetIPAddress(GetFakeIPAddress());
discovered_service_info.SetPort(GetFakePort());
info.discovered_services.insert({service_type, discovered_service_info});
if (enable_notifications_) {
RunOnMediumEnvironmentThread(
@@ -862,6 +860,22 @@ void MediumEnvironment::UnregisterWifiLanMediumV2(
});
}
api::WifiLanMediumV2* MediumEnvironment::GetWifiLanV2Medium(
const std::string& ip_address, int port) {
for (auto& medium_info : wifi_lan_mediums_v2_) {
auto* medium_found = medium_info.first;
auto& info = medium_info.second;
for (auto& advertising_service : info.advertising_services) {
auto& service_info = advertising_service.second;
if (ip_address == service_info.GetIPAddress() &&
port == service_info.GetPort()) {
return medium_found;
}
}
}
return nullptr;
}
void MediumEnvironment::SetFeatureFlags(const FeatureFlags::Flags& flags) {
const_cast<FeatureFlags&>(FeatureFlags::GetInstance()).SetFlags(flags);
}
+4
View File
@@ -278,6 +278,10 @@ class MediumEnvironment {
// Removes medium-related info. This should correspond to device power off.
void UnregisterWifiLanMediumV2(api::WifiLanMediumV2& medium);
// Returns WiFi LAN service matching IP address and port, or nullptr.
api::WifiLanMediumV2* GetWifiLanV2Medium(const std::string& ip_address,
int port);
void SetFeatureFlags(const FeatureFlags::Flags& flags);
private: