]>
Commit | Line | Data |
---|---|---|
db9ecf05 | 1 | /* SPDX-License-Identifier: LGPL-2.1-or-later */ |
c2f1db8f | 2 | #pragma once |
1e2e8133 | 3 | |
11c3a366 TA |
4 | #include <stdbool.h> |
5 | ||
6 | #include "time-util.h" | |
1e2e8133 LP |
7 | #include "util.h" |
8 | ||
9 | typedef struct RateLimit { | |
8c227e7f ZJS |
10 | usec_t interval; /* Keep those two fields first so they can be initialized easily: */ |
11 | unsigned burst; /* RateLimit rl = { INTERVAL, BURST }; */ | |
4ce9faa9 | 12 | unsigned num; |
8c227e7f | 13 | usec_t begin; |
1e2e8133 LP |
14 | } RateLimit; |
15 | ||
8c227e7f ZJS |
16 | static inline void ratelimit_reset(RateLimit *rl) { |
17 | rl->num = rl->begin = 0; | |
18 | } | |
451b34cc | 19 | |
2a155c53 LP |
20 | static inline bool ratelimit_configured(RateLimit *rl) { |
21 | return rl->interval > 0 && rl->burst > 0; | |
22 | } | |
23 | ||
7994ac1d | 24 | bool ratelimit_below(RateLimit *r); |