#ifndef QUICHE_QUIC_CORE_CONGESTION_CONTROL_BBR2_MISC_H_
#define QUICHE_QUIC_CORE_CONGESTION_CONTROL_BBR2_MISC_H_
#include <algorithm>
#include <limits>
#include "quiche/quic/core/congestion_control/bandwidth_sampler.h"
#include "quiche/quic/core/congestion_control/send_algorithm_interface.h"
#include "quiche/quic/core/congestion_control/windowed_filter.h"
#include "quiche/quic/core/quic_bandwidth.h"
#include "quiche/quic/core/quic_packet_number.h"
#include "quiche/quic/core/quic_time.h"
#include "quiche/quic/core/quic_types.h"
#include "quiche/quic/platform/api/quic_export.h"
#include "quiche/quic/platform/api/quic_flags.h"
namespace quic {
template <typename T>
class QUICHE_EXPORT Limits { … };
template <typename T>
QUICHE_EXPORT inline Limits<T> MinMax(T min, T max) { … }
template <typename T>
QUICHE_EXPORT inline Limits<T> NoLessThan(T min) { … }
template <typename T>
QUICHE_EXPORT inline Limits<T> NoGreaterThan(T max) { … }
template <typename T>
QUICHE_EXPORT inline Limits<T> Unlimited() { … }
template <typename T>
QUICHE_EXPORT inline std::ostream& operator<<(std::ostream& os,
const Limits<T>& limits) { … }
struct QUICHE_EXPORT Bbr2Params { … };
class QUICHE_EXPORT RoundTripCounter { … };
class QUICHE_EXPORT MinRttFilter { … };
class QUICHE_EXPORT Bbr2MaxBandwidthFilter { … };
struct QUICHE_EXPORT Bbr2CongestionEvent { … };
class QUICHE_EXPORT Bbr2NetworkModel { … };
enum class Bbr2Mode : uint8_t { … };
QUICHE_EXPORT inline std::ostream& operator<<(std::ostream& os,
const Bbr2Mode& mode) { … }
class Bbr2Sender;
class QUICHE_EXPORT Bbr2ModeBase { … };
QUICHE_EXPORT inline QuicByteCount BytesInFlight(
const SendTimeState& send_state) { … }
}
#endif