blob: 49320701dce7e28d9edfa8d97ddb164a12591c1a [file] [log] [blame]
// Copyright 2025 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_QUIC_QUIC_ENDPOINT_H_
#define NET_QUIC_QUIC_ENDPOINT_H_
#include "base/values.h"
#include "net/base/connection_endpoint_metadata.h"
#include "net/base/ip_endpoint.h"
#include "net/base/net_export.h"
#include "net/third_party/quiche/src/quiche/quic/core/quic_versions.h"
namespace net {
// Represents a single QUIC endpoint and the information necessary to attempt
// a QUIC session.
struct NET_EXPORT_PRIVATE QuicEndpoint {
QuicEndpoint(quic::ParsedQuicVersion quic_version,
IPEndPoint ip_endpoint,
ConnectionEndpointMetadata metadata);
QuicEndpoint(QuicEndpoint&&) = default;
QuicEndpoint& operator=(QuicEndpoint&&) = default;
QuicEndpoint(const QuicEndpoint&) = default;
QuicEndpoint& operator=(const QuicEndpoint&) = default;
~QuicEndpoint();
quic::ParsedQuicVersion quic_version = quic::ParsedQuicVersion::Unsupported();
IPEndPoint ip_endpoint;
ConnectionEndpointMetadata metadata;
base::Value::Dict ToValue() const;
};
} // namespace net
#endif // NET_QUIC_QUIC_ENDPOINT_H_