Replace QuicSocketAddress with a platform-independent implementation.
Not having to rely directly on a platform-specified type would make it easier to port QUIC to new embedders.
gfe-relnote: n/a (no functional change)
PiperOrigin-RevId: 253124606
Change-Id: Ifd2a171f007e9e055d9c913500608b4161fca373
diff --git a/quic/platform/api/quic_socket_address.h b/quic/platform/api/quic_socket_address.h
index 94e78a6..1a200e1 100644
--- a/quic/platform/api/quic_socket_address.h
+++ b/quic/platform/api/quic_socket_address.h
@@ -9,20 +9,17 @@
#include "net/third_party/quiche/src/quic/platform/api/quic_export.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_ip_address.h"
-#include "net/quic/platform/impl/quic_socket_address_impl.h"
namespace quic {
+// A class representing a socket endpoint address (i.e., IP address plus a
+// port) in QUIC.
class QUIC_EXPORT_PRIVATE QuicSocketAddress {
- // A class representing a socket endpoint address (i.e., IP address plus a
- // port) in QUIC. The actual implementation (platform dependent) of a socket
- // address is in QuicSocketAddressImpl.
public:
- QuicSocketAddress() = default;
+ QuicSocketAddress() {}
QuicSocketAddress(QuicIpAddress address, uint16_t port);
explicit QuicSocketAddress(const struct sockaddr_storage& saddr);
explicit QuicSocketAddress(const sockaddr* saddr, socklen_t len);
- explicit QuicSocketAddress(const QuicSocketAddressImpl& impl);
QuicSocketAddress(const QuicSocketAddress& other) = default;
QuicSocketAddress& operator=(const QuicSocketAddress& other) = default;
QuicSocketAddress& operator=(QuicSocketAddress&& other) = default;
@@ -41,7 +38,8 @@
sockaddr_storage generic_address() const;
private:
- QuicSocketAddressImpl impl_;
+ QuicIpAddress host_;
+ uint16_t port_ = 0;
};
} // namespace quic