diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-05-17 17:24:03 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-06-22 07:51:41 +0000 |
commit | 774f54339e5db91f785733232d3950366db65d07 (patch) | |
tree | 068e1b47bd1af94d77094ed12b604a6b83d9c22a /chromium/net/third_party/quiche/src/quiche/quic/platform/api/quic_socket_address.h | |
parent | f7eaed5286974984ba5f9e3189d8f49d03e99f81 (diff) | |
download | qtwebengine-chromium-774f54339e5db91f785733232d3950366db65d07.tar.gz |
BASELINE: Update Chromium to 102.0.5005.57
Change-Id: I885f714bb40ee724c28f94ca6bd8dbdb39915158
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/net/third_party/quiche/src/quiche/quic/platform/api/quic_socket_address.h')
-rw-r--r-- | chromium/net/third_party/quiche/src/quiche/quic/platform/api/quic_socket_address.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/chromium/net/third_party/quiche/src/quiche/quic/platform/api/quic_socket_address.h b/chromium/net/third_party/quiche/src/quiche/quic/platform/api/quic_socket_address.h new file mode 100644 index 00000000000..9ec97175051 --- /dev/null +++ b/chromium/net/third_party/quiche/src/quiche/quic/platform/api/quic_socket_address.h @@ -0,0 +1,63 @@ +// Copyright (c) 2016 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef QUICHE_QUIC_PLATFORM_API_QUIC_SOCKET_ADDRESS_H_ +#define QUICHE_QUIC_PLATFORM_API_QUIC_SOCKET_ADDRESS_H_ + +#include <string> + +#include "quiche/quic/platform/api/quic_export.h" +#include "quiche/quic/platform/api/quic_ip_address.h" + +namespace quic { + +// A class representing a socket endpoint address (i.e., IP address plus a +// port) in QUIC. +class QUIC_EXPORT_PRIVATE QuicSocketAddress { + public: + QuicSocketAddress() {} + QuicSocketAddress(QuicIpAddress address, uint16_t port); + explicit QuicSocketAddress(const struct sockaddr_storage& saddr); + explicit QuicSocketAddress(const sockaddr* saddr, socklen_t len); + QuicSocketAddress(const QuicSocketAddress& other) = default; + QuicSocketAddress& operator=(const QuicSocketAddress& other) = default; + QuicSocketAddress& operator=(QuicSocketAddress&& other) = default; + QUIC_EXPORT_PRIVATE friend bool operator==(const QuicSocketAddress& lhs, + const QuicSocketAddress& rhs); + QUIC_EXPORT_PRIVATE friend bool operator!=(const QuicSocketAddress& lhs, + const QuicSocketAddress& rhs); + + bool IsInitialized() const; + std::string ToString() const; + int FromSocket(int fd); + QuicSocketAddress Normalized() const; + + QuicIpAddress host() const; + uint16_t port() const; + sockaddr_storage generic_address() const; + + // Hashes this address to an uint32_t. + uint32_t Hash() const; + + private: + QuicIpAddress host_; + uint16_t port_ = 0; +}; + +inline std::ostream& operator<<(std::ostream& os, + const QuicSocketAddress address) { + os << address.ToString(); + return os; +} + +class QUIC_EXPORT_PRIVATE QuicSocketAddressHash { + public: + size_t operator()(QuicSocketAddress const& address) const noexcept { + return address.Hash(); + } +}; + +} // namespace quic + +#endif // QUICHE_QUIC_PLATFORM_API_QUIC_SOCKET_ADDRESS_H_ |