text: // 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_CORE_QUIC_PENDING_RETRANSMISSION_H_
  #define QUICHE_QUIC_CORE_QUIC_PENDING_RETRANSMISSION_H_
  
  #include "net/third_party/quiche/src/quic/core/frames/quic_frame.h"
  #include "net/third_party/quiche/src/quic/core/quic_transmission_info.h"
  #include "net/third_party/quiche/src/quic/core/quic_types.h"
  #include "net/third_party/quiche/src/quic/platform/api/quic_export.h"
  
  namespace quic {
  
  // Struct to store the pending retransmission information.
  struct QUIC_EXPORT_PRIVATE QuicPendingRetransmission {
    QuicPendingRetransmission(QuicPacketNumber packet_number,
                              TransmissionType transmission_type,
                              const QuicFrames& retransmittable_frames,
                              bool has_crypto_handshake,
                              int num_padding_bytes,
                              EncryptionLevel encryption_level,
                              QuicPacketNumberLength packet_number_length)
        : packet_number(packet_number),
          retransmittable_frames(retransmittable_frames),
          transmission_type(transmission_type),
          has_crypto_handshake(has_crypto_handshake),
          num_padding_bytes(num_padding_bytes),
          encryption_level(encryption_level),
          packet_number_length(packet_number_length) {}
  
    QuicPendingRetransmission(QuicPacketNumber packet_number,
                              TransmissionType transmission_type,
                              const QuicTransmissionInfo& tranmission_info)
        : packet_number(packet_number),
          retransmittable_frames(tranmission_info.retransmittable_frames),
          transmission_type(transmission_type),
          has_crypto_handshake(tranmission_info.has_crypto_handshake),
          num_padding_bytes(tranmission_info.num_padding_bytes),
          encryption_level(tranmission_info.encryption_level),
          packet_number_length(tranmission_info.packet_number_length) {}
  
    QuicPacketNumber packet_number;
    const QuicFrames& retransmittable_frames;
    TransmissionType transmission_type;
    bool has_crypto_handshake;
    int num_padding_bytes;
    EncryptionLevel encryption_level;
    QuicPacketNumberLength packet_number_length;
  };
  
  }  // namespace quic
  
  #endif  // QUICHE_QUIC_CORE_QUIC_PENDING_RETRANSMISSION_H_
  