| 89 | } |
| 90 | |
| 91 | const int PoissonDistribution :: GetNextIntervalTimeMs() { |
| 92 | |
| 93 | if (impl_->last_base_interval_time_ms == 0) { |
| 94 | return 0; |
| 95 | } |
| 96 | |
| 97 | if (impl_->base_interval_time_change) { |
| 98 | impl_->base_interval_time_change = false; |
| 99 | |
| 100 | Rebuild(impl_->last_base_interval_time_ms); |
| 101 | } |
| 102 | |
| 103 | int next_interval_time_ms = (int)((*impl_->delay_distribution)(*impl_->delay_generator)); |
| 104 | if (impl_->min_interval_time_ms > 0 && next_interval_time_ms < impl_->min_interval_time_ms) { |
| 105 | next_interval_time_ms = impl_->min_interval_time_ms; |
| 106 | } |
| 107 | else if (impl_->max_interval_time_ms > 0 && next_interval_time_ms > impl_->max_interval_time_ms) { |
| 108 | next_interval_time_ms = impl_->max_interval_time_ms; |
| 109 | } |
| 110 | |
| 111 | return next_interval_time_ms; |
| 112 | } |
| 113 | |
| 114 | void PoissonDistribution :: RealtimeChangeBaseIntervalMs(const int new_base_interval_ms) |
| 115 | { |
nothing calls this directly
no outgoing calls
no test coverage detected