trait CalculatesRateLimits

Constants

private WEIGHT_SCALE

Methods

calculateConsume(AdmissionPolicy $policy, int $now, int $value, int $secondaryValue, int $expiresAt)

Calculate an admission decision and update accepted state values.

array
calculateMany(array $policies, int $now, array $states)

Calculate ordered group decisions against staged state.

calculateInspection(AdmissionPolicy|Backoff|Cooldown $policy, int $now, int $value, int $secondaryValue, int $expiresAt)

Calculate a non-mutating policy inspection.

calculateCooldownBlock(int $durationMicroseconds, int $now, int $value, int $secondaryValue, int $expiresAt)

Calculate a cooldown extension and update its expiry.

calculateFailure(Backoff $backoff, int $now, int $value, int $secondaryValue, int $expiresAt)

Calculate a failure transition and update its state values.

int
currentTimeInMicroseconds()

Get the current epoch time in microseconds.

Details

at line 27
protected LimitResult calculateConsume(AdmissionPolicy $policy, int $now, int $value, int $secondaryValue, int $expiresAt)

Calculate an admission decision and update accepted state values.

Parameters

AdmissionPolicy $policy
int $now
int $value
int $secondaryValue
int $expiresAt

Return Value

LimitResult

at line 73
protected array calculateMany(array $policies, int $now, array $states)

Calculate ordered group decisions against staged state.

Parameters

array $policies
int $now
array $states

Return Value

array

at line 118
protected LimitResult|BackoffResult|CooldownResult calculateInspection(AdmissionPolicy|Backoff|Cooldown $policy, int $now, int $value, int $secondaryValue, int $expiresAt)

Calculate a non-mutating policy inspection.

Parameters

AdmissionPolicy|Backoff|Cooldown $policy
int $now
int $value
int $secondaryValue
int $expiresAt

Return Value

LimitResult|BackoffResult|CooldownResult

at line 172
protected CooldownResult calculateCooldownBlock(int $durationMicroseconds, int $now, int $value, int $secondaryValue, int $expiresAt)

Calculate a cooldown extension and update its expiry.

Parameters

int $durationMicroseconds
int $now
int $value
int $secondaryValue
int $expiresAt

Return Value

CooldownResult

at line 190
protected BackoffResult calculateFailure(Backoff $backoff, int $now, int $value, int $secondaryValue, int $expiresAt)

Calculate a failure transition and update its state values.

Parameters

Backoff $backoff
int $now
int $value
int $secondaryValue
int $expiresAt

Return Value

BackoffResult

at line 638
protected int currentTimeInMicroseconds()

Get the current epoch time in microseconds.

Return Value

int