1 // Copyright 2018 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "services/network/dns_config_change_manager.h"
6 
7 #include <utility>
8 
9 namespace network {
10 
DnsConfigChangeManager()11 DnsConfigChangeManager::DnsConfigChangeManager() {
12   net::NetworkChangeNotifier::AddDNSObserver(this);
13 }
14 
~DnsConfigChangeManager()15 DnsConfigChangeManager::~DnsConfigChangeManager() {
16   net::NetworkChangeNotifier::RemoveDNSObserver(this);
17 }
18 
AddReceiver(mojo::PendingReceiver<mojom::DnsConfigChangeManager> receiver)19 void DnsConfigChangeManager::AddReceiver(
20     mojo::PendingReceiver<mojom::DnsConfigChangeManager> receiver) {
21   receivers_.Add(this, std::move(receiver));
22 }
23 
RequestNotifications(mojo::PendingRemote<mojom::DnsConfigChangeManagerClient> client)24 void DnsConfigChangeManager::RequestNotifications(
25     mojo::PendingRemote<mojom::DnsConfigChangeManagerClient> client) {
26   clients_.Add(std::move(client));
27 }
28 
OnDNSChanged()29 void DnsConfigChangeManager::OnDNSChanged() {
30   for (const auto& client : clients_)
31     client->OnDnsConfigChanged();
32 }
33 
34 }  // namespace network
35