#include "quiche/quic/core/quic_path_validator.h"
#include <memory>
#include <ostream>
#include <utility>
#include "quiche/quic/core/quic_constants.h"
#include "quiche/quic/core/quic_types.h"
#include "quiche/quic/platform/api/quic_socket_address.h"
namespace quic {
class RetryAlarmDelegate : public QuicAlarm::DelegateWithContext { … };
std::ostream& operator<<(std::ostream& os,
const QuicPathValidationContext& context) { … }
QuicPathValidator::QuicPathValidator(QuicAlarmFactory* alarm_factory,
QuicConnectionArena* arena,
SendDelegate* send_delegate,
QuicRandom* random, const QuicClock* clock,
QuicConnectionContext* context)
: … { … }
void QuicPathValidator::OnPathResponse(const QuicPathFrameBuffer& probing_data,
QuicSocketAddress self_address) { … }
void QuicPathValidator::StartPathValidation(
std::unique_ptr<QuicPathValidationContext> context,
std::unique_ptr<ResultDelegate> result_delegate,
PathValidationReason reason) { … }
void QuicPathValidator::ResetPathValidation() { … }
void QuicPathValidator::CancelPathValidation() { … }
bool QuicPathValidator::HasPendingPathValidation() const { … }
QuicPathValidationContext* QuicPathValidator::GetContext() const { … }
std::unique_ptr<QuicPathValidationContext> QuicPathValidator::ReleaseContext() { … }
const QuicPathFrameBuffer& QuicPathValidator::GeneratePathChallengePayload() { … }
void QuicPathValidator::OnRetryTimeout() { … }
void QuicPathValidator::SendPathChallengeAndSetAlarm() { … }
bool QuicPathValidator::IsValidatingPeerAddress(
const QuicSocketAddress& effective_peer_address) { … }
void QuicPathValidator::MaybeWritePacketToAddress(
const char* buffer, size_t buf_len, const QuicSocketAddress& peer_address) { … }
}