blob: 699b2a05959dcd273d7e039055f24d8ef573c1b6 [file] [log] [blame]
// 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.
#include "quiche/quic/core/quic_transmission_info.h"
#include "absl/strings/str_cat.h"
namespace quic {
QuicTransmissionInfo::QuicTransmissionInfo()
: sent_time(QuicTime::Zero()),
bytes_sent(0),
encryption_level(ENCRYPTION_INITIAL),
transmission_type(NOT_RETRANSMISSION),
in_flight(false),
state(OUTSTANDING),
has_crypto_handshake(false),
has_ack_frequency(false) {}
QuicTransmissionInfo::QuicTransmissionInfo(EncryptionLevel level,
TransmissionType transmission_type,
QuicTime sent_time,
QuicPacketLength bytes_sent,
bool has_crypto_handshake,
bool has_ack_frequency)
: sent_time(sent_time),
bytes_sent(bytes_sent),
encryption_level(level),
transmission_type(transmission_type),
in_flight(false),
state(OUTSTANDING),
has_crypto_handshake(has_crypto_handshake),
has_ack_frequency(has_ack_frequency) {}
QuicTransmissionInfo::QuicTransmissionInfo(const QuicTransmissionInfo& other) =
default;
QuicTransmissionInfo::~QuicTransmissionInfo() {}
std::string QuicTransmissionInfo::DebugString() const {
return absl::StrCat(
"{sent_time: ", sent_time.ToDebuggingValue(),
", bytes_sent: ", bytes_sent,
", encryption_level: ", EncryptionLevelToString(encryption_level),
", transmission_type: ", TransmissionTypeToString(transmission_type),
", in_flight: ", in_flight, ", state: ", state,
", has_crypto_handshake: ", has_crypto_handshake,
", has_ack_frequency: ", has_ack_frequency,
", first_sent_after_loss: ", first_sent_after_loss.ToString(),
", largest_acked: ", largest_acked.ToString(),
", retransmittable_frames: ", QuicFramesToString(retransmittable_frames),
"}");
}
} // namespace quic