#ifndef SERVICES_NETWORK_DNS_CONFIG_CHANGE_MANAGER_H_
#define SERVICES_NETWORK_DNS_CONFIG_CHANGE_MANAGER_H_
#include "base/component_export.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver_set.h"
#include "mojo/public/cpp/bindings/remote_set.h"
#include "net/base/network_change_notifier.h"
#include "services/network/public/mojom/host_resolver.mojom.h"
namespace network {
class COMPONENT_EXPORT(NETWORK_SERVICE) DnsConfigChangeManager
: public mojom::DnsConfigChangeManager,
public net::NetworkChangeNotifier::DNSObserver {
public:
DnsConfigChangeManager();
DnsConfigChangeManager(const DnsConfigChangeManager&) = delete;
DnsConfigChangeManager& operator=(const DnsConfigChangeManager&) = delete;
~DnsConfigChangeManager() override;
void AddReceiver(
mojo::PendingReceiver<mojom::DnsConfigChangeManager> receiver);
void RequestNotifications(
mojo::PendingRemote<mojom::DnsConfigChangeManagerClient> client) override;
private:
void OnDNSChanged() override;
mojo::ReceiverSet<mojom::DnsConfigChangeManager> receivers_;
mojo::RemoteSet<mojom::DnsConfigChangeManagerClient> clients_;
};
}
#endif