Skip to content

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.

static inline bool syn_rate_limit_allow (
    SYN_RateLimit * rl
) 

Parameters:

  • rl Rate 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:

  • rl Rate limiter instance.
  • max_tokens Maximum tokens (burst capacity).
  • interval_ms Interval over which tokens refill to max.

function syn_rate_limit_remaining

Check remaining tokens without consuming.

static inline uint32_t syn_rate_limit_remaining (
    const SYN_RateLimit * rl
) 

Parameters:

  • rl Rate limiter.

Returns:

Remaining tokens.


function syn_rate_limit_reset

Reset the rate limiter to full capacity.

static inline void syn_rate_limit_reset (
    SYN_RateLimit * rl
) 

Parameters:

  • rl Rate limiter.


The documentation for this class was generated from the following file src/syntropic/util/syn_rate_limit.h