mirror of
https://github.com/kidfromjupiter/nearby.git
synced 2026-09-16 15:36:12 -04:00
nearbyconnections : Implement WifiLanV2 Connection functions for /medium, /public(wrapper), /g3.
PiperOrigin-RevId: 405820452
This commit is contained in:
committed by
Copybara-Service
parent
83480d6473
commit
7197b84e4d
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user