File syn_rate_limit.h¶
FileList > src > syntropic > util > syn_rate_limit.h
Go to the source code of this file
Token bucket rate limiter — header-only. More...
#include "../port/syn_port_system.h"#include <stdbool.h>#include <stdint.h>
Classes¶
| Type | Name |
|---|---|
| struct | SYN_RateLimit Token bucket rate limiter instance. |
Public Static Functions¶
| Type | Name |
|---|---|
| bool | syn_rate_limit_allow (SYN_RateLimit * rl) Try to consume one token. Returns true if allowed. |
| void | syn_rate_limit_init (SYN_RateLimit * rl, uint32_t max_tokens, uint32_t interval_ms) Initialize a rate limiter. |
| uint32_t | syn_rate_limit_remaining (const SYN_RateLimit * rl) Check remaining tokens without consuming. |
| void | syn_rate_limit_reset (SYN_RateLimit * rl) Reset the rate limiter to full capacity. |
Detailed Description¶
Throttle operations to N-per-second. Classic use cases: limit log output, throttle retransmissions, cap sensor poll rate.
** **
SYN_RateLimit rl;
syn_rate_limit_init(&rl, 10, 1000); // 10 events per 1000ms
if (syn_rate_limit_allow(&rl)) {
send_packet();
}
Public Static Functions Documentation¶
function syn_rate_limit_allow¶
Try to consume one token. Returns true if allowed.
Parameters:
rlRate limiter.
Returns:
true if a token was consumed, false if exhausted.
function syn_rate_limit_init¶
Initialize a rate limiter.
static inline void syn_rate_limit_init (
SYN_RateLimit * rl,
uint32_t max_tokens,
uint32_t interval_ms
)
Parameters:
rlRate limiter instance.max_tokensMaximum tokens (burst capacity).interval_msInterval over which tokens refill to max.
function syn_rate_limit_remaining¶
Check remaining tokens without consuming.
Parameters:
rlRate limiter.
Returns:
Remaining tokens.
function syn_rate_limit_reset¶
Reset the rate limiter to full capacity.
Parameters:
rlRate limiter.
The documentation for this class was generated from the following file src/syntropic/util/syn_rate_limit.h