// Copyright 2012 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_IP_ENDPOINT_H_ #define NET_BASE_IP_ENDPOINT_H_ #include <stdint.h> #include <optional> #include <ostream> #include <string> #include "base/values.h" #include "build/build_config.h" #include "net/base/address_family.h" #include "net/base/ip_address.h" #include "net/base/net_export.h" // Replicate these from Windows headers to avoid pulling net/sys_addrinfo.h. // Doing that transitively brings in windows.h. Including windows.h pollutes the // global namespace with thousands of macro definitions. This file is // transitively included in enough files that including windows.h potentially // impacts build performance. // Similarly, just pull in the minimal header necessary on non-Windows platforms // to help with build performance. struct sockaddr; #if BUILDFLAG(IS_WIN) typedef int socklen_t; #else #include <sys/socket.h> #endif namespace net { // An IPEndPoint represents the address of a transport endpoint: // * IP address (either v4 or v6) // * Port class NET_EXPORT IPEndPoint { … }; NET_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& os, const IPEndPoint& ip_endpoint); } // namespace net #endif // NET_BASE_IP_ENDPOINT_H_