| 274 | public: |
| 275 | |
| 276 | FileCC(CUDT* parent) |
| 277 | : SrtCongestionControlBase(parent) |
| 278 | , m_iRCInterval(CUDT::COMM_SYN_INTERVAL_US) |
| 279 | , m_LastRCTime(steady_clock::now()) |
| 280 | , m_bSlowStart(true) |
| 281 | , m_iLastAck(parent->sndSeqNo()) |
| 282 | , m_bLoss(false) |
| 283 | , m_iLastDecSeq(CSeqNo::decseq(m_iLastAck)) |
| 284 | , m_dLastDecPeriod(1) |
| 285 | , m_iNAKCount(0) |
| 286 | , m_iDecRandom(1) |
| 287 | , m_iAvgNAKNum(0) |
| 288 | , m_iDecCount(0) |
| 289 | , m_maxSR(0) |
| 290 | { |
| 291 | // Note that this function is called at the moment of |
| 292 | // calling m_Smoother.configure(this). It is placed more less |
| 293 | // at the same position as the series-of-parameter-setting-then-init |
| 294 | // in the original UDT code. So, old CUDTCC::init() can be moved |
| 295 | // to constructor. |
| 296 | |
| 297 | // SmotherBase |
| 298 | m_dCWndSize = 16; |
| 299 | m_dPktSndPeriod = 1; |
| 300 | |
| 301 | parent->ConnectSignal(TEV_ACK, SSLOT(onACK)); |
| 302 | parent->ConnectSignal(TEV_LOSSREPORT, SSLOT(onLossReport)); |
| 303 | parent->ConnectSignal(TEV_CHECKTIMER, SSLOT(onRTO)); |
| 304 | |
| 305 | HLOGC(cclog.Debug, log << "Creating FileCC"); |
| 306 | } |
| 307 | |
| 308 | bool checkTransArgs(SrtCongestion::TransAPI, SrtCongestion::TransDir, const char*, size_t, int, bool) ATR_OVERRIDE |
| 309 | { |
nothing calls this directly
no test coverage detected