XROAD
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
xroad_rate_control.h
Go to the documentation of this file.
1 
7 #pragma once
8 
9 #include <stdbool.h>
10 #include <stdint.h>
12 
13 #ifdef __cplusplus
14 extern "C"
15 {
16 #endif
17 
45 typedef struct
46 {
47  uint64_t rate; //< Number of events per interval. If rate is 0, rate control is allowing all
48  xroad_timestamp_t per; //< Rate interval
49  xroad_timestamp_t last_check_time; //< Timestamp of last rate control check
50  uint64_t timestamps_start_pos; //< Start pos in timestamps
51  uint64_t timestamps_amount; //< Amount of stored timestamps
52  xroad_timestamp_t* timestamps; //< Timestamps array
54 
60 
68 xroad_errno_t xroad_rate_control_set_options(xroad_rate_control_t* ctx, uint64_t rate, xroad_timestamp_t per);
69 
76 bool xroad_rate_control_allow_to_process(xroad_rate_control_t* ctx, xroad_timestamp_t current_time);
77 
83 
89 
90 #ifdef __cplusplus
91 }
92 #endif
Definition: xroad_rate_control.h:46
bool xroad_rate_control_allow_to_process(xroad_rate_control_t *ctx, xroad_timestamp_t current_time)
void xroad_rate_control_init(xroad_rate_control_t *ctx)
xroad_errno_t xroad_rate_control_set_options(xroad_rate_control_t *ctx, uint64_t rate, xroad_timestamp_t per)
void xroad_rate_control_processed(xroad_rate_control_t *ctx)
void xroad_rate_control_clear(xroad_rate_control_t *ctx)