Warning: This is an old version. The latest stable version is Version 11.0.1.
Scope: kodo_slide
rate_controller (uint32_t n, uint32_t k) | |
void | advance () |
bool | send_repair () const |
Small helper to control the amount of redundancy generated. Using the common n,k termionology. For each k symbols we send n. This means that r=n-k is the redundancy/repair symbols. Example: n=6, k=4, r=2. We have k=4 source symbols, we send n=6 symbols so after the 4’th source symbol we send r=2 (coded) redundancy symbols. Usage:
rate_controller rate = {6, 4};
// For every 6 symbols we send 4 are source symbols and 2 are
// repair.
assert(rate.send_repair() == false);
rate.advance();
assert(rate.send_repair() == false);
rate.advance();
assert(rate.send_repair() == false);
rate.advance();
assert(rate.send_repair() == false);
rate.advance();
assert(rate.send_repair() == true);
rate.advance();
assert(rate.send_repair() == true);
rate.advance();
// We now start over
assert(rate.send_repair() == false);
rate.advance();