IntervalBudget主要用于按照一定的码率控制数据在时间上的分配,保存着这波发送应该有多少资源要发送,实际上他并不能控制这一波能发送多少,只能控制如果上N波发送的数据过多的话,把这一波的数据消耗完了,那么这一波就不发送了,
主要接口:
void IncreaseBudget(int64_t delta_time_ms):每次发送数据时,计算距离上次发送的时间间隔,结果乘以码率就是这段时间内新增的资源,如果上一次发多了,就用这次的资源补上,但是如果上一次发少了,这次不会过多发。
void UseBudget(size_t bytes):这一波消耗了多少资源,最后剩下的资源会有一个极限,不能过度消耗500ms的资源
size_t bytes_remaining() const:这一波过后还剩下多少资源