46void ris::RateDrop::setup_python() {
48 bp::class_<ris::RateDrop, ris::RateDropPtr, bp::bases<ris::Master, ris::Slave>, boost::noncopyable>(
50 bp::init<bool, double>());
56 struct timeval currTime;
59 if ((!period) || value == 0) {
61 dropCount_ =
static_cast<uint32_t
>(value);
62 dropTarget_ =
static_cast<uint32_t
>(value);
66 per =
static_cast<uint32_t
>(value * 1e6);
68 div_t divResult = div(per, 1000000);
69 timePeriod_.tv_sec = divResult.quot;
70 timePeriod_.tv_usec = divResult.rem;
72 gettimeofday(&currTime, NULL);
73 timeradd(&currTime, &timePeriod_, &nextPeriod_);
82 struct timeval currTime;
86 if (dropCount_++ == dropTarget_) {
93 gettimeofday(&currTime, NULL);
95 if (timercmp(&currTime, &(nextPeriod_), >)) {
97 timeradd(&currTime, &timePeriod_, &nextPeriod_);