// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef PLATFORM_BASE_INTERFACE_INFO_H_ #define PLATFORM_BASE_INTERFACE_INFO_H_ #include <stdint.h> #include <string> #include <vector> #include "platform/base/ip_address.h" namespace openscreen { // Unique identifier, usually provided by the operating system, for identifying // a specific network interface. This value is used with UdpSocket to join // multicast groups, or to make multicast broadcasts. An implementation may // choose to make these values anything its UdpSocket implementation will // recognize. NetworkInterfaceIndex; enum : NetworkInterfaceIndex { … }; struct IPSubnet { … }; struct InterfaceInfo { … }; // Human-readable output (e.g., for logging). std::ostream& operator<<(std::ostream& out, InterfaceInfo::Type type); std::ostream& operator<<(std::ostream& out, const IPSubnet& subnet); std::ostream& operator<<(std::ostream& out, const InterfaceInfo& info); } // namespace openscreen #endif // PLATFORM_BASE_INTERFACE_INFO_H_