#ifndef NET_QUIC_CONGESTION_CONTROL_LOSS_DETECTION_INTERFACE_H_
#define NET_QUIC_CONGESTION_CONTROL_LOSS_DETECTION_INTERFACE_H_
#include "base/basictypes.h"
#include "net/quic/quic_protocol.h"
#include "net/quic/quic_time.h"
namespace net {
class QuicUnackedPacketMap;
class RttStats;
class NET_EXPORT_PRIVATE LossDetectionInterface {
public:
static LossDetectionInterface* Create(LossDetectionType loss_type);
virtual ~LossDetectionInterface() {}
virtual LossDetectionType GetLossDetectionType() const = 0;
virtual SequenceNumberSet DetectLostPackets(
const QuicUnackedPacketMap& unacked_packets,
const QuicTime& time,
QuicPacketSequenceNumber largest_observed,
const RttStats& rtt_stats) = 0;
virtual QuicTime GetLossTimeout() const = 0;
};
}
#endif