chromium/net/base/address_map_linux.h

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef NET_BASE_ADDRESS_MAP_LINUX_H_
#define NET_BASE_ADDRESS_MAP_LINUX_H_

#include <map>
#include <optional>
#include <unordered_set>

#include "base/containers/flat_map.h"
#include "base/functional/callback_forward.h"
#include "net/base/ip_address.h"
#include "net/base/net_export.h"

struct ifaddrmsg;

namespace net {

class AddressMapCacheLinux;
namespace internal {
class AddressTrackerLinux;
}

// Various components of //net need to access a real-time-updated AddressMap
// (see comments below). For example, AddressSorterPosix (used in DNS
// resolution) and GetNetworkList() (used in many places).
// The methods defined in this interface should be safe to call from any thread.
class NET_EXPORT AddressMapOwnerLinux {};

}  // namespace net

#endif  // NET_BASE_ADDRESS_MAP_LINUX_H_