#include <MessageDelayPools.h>
Public Types | |
typedef RefCount< MessageDelayPool > | Pointer |
Public Member Functions | |
MessageDelayPool (const SBuf &name, int64_t bucketSpeed, int64_t bucketSize, int64_t aggregateSpeed, int64_t aggregateSize, uint16_t initialBucketPercent) | |
~MessageDelayPool () override | |
MessageDelayPool (const MessageDelayPool &)=delete | |
MessageDelayPool & | operator= (const MessageDelayPool &)=delete |
void | refillBucket () |
Increases the aggregate bucket level with the aggregateRestore speed. More... | |
void | bytesIn (int qty) |
decreases the aggregate level More... | |
int | level () |
current aggregate level More... | |
MessageBucketPointer | createBucket () |
creates an individual response bucket More... | |
bool | noLimit () const |
whether the aggregate bucket has no limit More... | |
void | dump (StoreEntry *entry) const |
Public Attributes | |
acl_access * | access |
SBuf | poolName |
the response delay pool name More... | |
int64_t | individualRestore |
the speed limit of an individual bucket (bytes/s) More... | |
int64_t | individualMaximum |
the maximum size of an individual bucket More... | |
int64_t | aggregateRestore |
the speed limit of the aggregate bucket (bytes/s) More... | |
int64_t | aggregateMaximum |
the maximum size of the aggregate bucket More... | |
uint16_t | initialBucketLevel |
the initial bucket size as a percentage of individualMaximum More... | |
DelayBucket | theBucket |
the aggregate bucket More... | |
Private Attributes | |
time_t | lastUpdate |
Time the aggregate bucket level was last refilled. More... | |
Detailed Description
Represents one 'response' delay pool, creates individual response buckets and performes aggregate limiting for them
Definition at line 26 of file MessageDelayPools.h.
Member Typedef Documentation
◆ Pointer
Definition at line 29 of file MessageDelayPools.h.
Constructor & Destructor Documentation
◆ MessageDelayPool() [1/2]
MessageDelayPool::MessageDelayPool | ( | const SBuf & | name, |
int64_t | bucketSpeed, | ||
int64_t | bucketSize, | ||
int64_t | aggregateSpeed, | ||
int64_t | aggregateSize, | ||
uint16_t | initialBucketPercent | ||
) |
Definition at line 63 of file MessageDelayPools.cc.
References aggregateMaximum, DelayBucket::level(), and theBucket.
◆ ~MessageDelayPool()
|
override |
Definition at line 77 of file MessageDelayPools.cc.
References access, and aclDestroyAccessList().
◆ MessageDelayPool() [2/2]
|
delete |
Member Function Documentation
◆ bytesIn()
|
inline |
Definition at line 40 of file MessageDelayPools.h.
References DelayBucket::bytesIn(), noLimit(), and theBucket.
Referenced by MessageBucket::reduceBucket().
◆ createBucket()
MessageBucket::Pointer MessageDelayPool::createBucket | ( | ) |
Definition at line 110 of file MessageDelayPools.cc.
References individualMaximum, individualRestore, and initialBucketLevel.
◆ dump()
void MessageDelayPool::dump | ( | StoreEntry * | entry | ) | const |
Definition at line 99 of file MessageDelayPools.cc.
References access, aggregateMaximum, aggregateRestore, SBuf::append(), SBuf::c_str(), dump_acl_access(), individualMaximum, individualRestore, initialBucketLevel, poolName, PRId64, and storeAppendPrintf().
◆ level()
|
inline |
Definition at line 42 of file MessageDelayPools.h.
References DelayBucket::level(), and theBucket.
Referenced by MessageBucket::quota().
◆ noLimit()
|
inline |
Definition at line 46 of file MessageDelayPools.h.
References aggregateRestore.
Referenced by bytesIn(), MessageBucket::quota(), and refillBucket().
◆ operator=()
|
delete |
◆ refillBucket()
void MessageDelayPool::refillBucket | ( | ) |
Definition at line 84 of file MessageDelayPools.cc.
References aggregateMaximum, aggregateRestore, lastUpdate, DelaySpec::max_bytes, noLimit(), DelaySpec::restore_bps, squid_curtime, theBucket, and DelayBucket::update().
Referenced by MessageBucket::quota().
Member Data Documentation
◆ access
acl_access* MessageDelayPool::access |
Definition at line 50 of file MessageDelayPools.h.
Referenced by ~MessageDelayPool(), dump(), and MessageDelayConfig::parseResponseDelayPoolAccess().
◆ aggregateMaximum
int64_t MessageDelayPool::aggregateMaximum |
Definition at line 60 of file MessageDelayPools.h.
Referenced by MessageDelayPool(), dump(), and refillBucket().
◆ aggregateRestore
int64_t MessageDelayPool::aggregateRestore |
Definition at line 58 of file MessageDelayPools.h.
Referenced by dump(), noLimit(), and refillBucket().
◆ individualMaximum
int64_t MessageDelayPool::individualMaximum |
Definition at line 56 of file MessageDelayPools.h.
Referenced by createBucket(), and dump().
◆ individualRestore
int64_t MessageDelayPool::individualRestore |
Definition at line 54 of file MessageDelayPools.h.
Referenced by createBucket(), and dump().
◆ initialBucketLevel
uint16_t MessageDelayPool::initialBucketLevel |
Definition at line 62 of file MessageDelayPools.h.
Referenced by createBucket(), and dump().
◆ lastUpdate
|
private |
Definition at line 68 of file MessageDelayPools.h.
Referenced by refillBucket().
◆ poolName
SBuf MessageDelayPool::poolName |
Definition at line 52 of file MessageDelayPools.h.
Referenced by MessageDelayPools::add(), and dump().
◆ theBucket
DelayBucket MessageDelayPool::theBucket |
Definition at line 64 of file MessageDelayPools.h.
Referenced by MessageDelayPool(), bytesIn(), level(), and refillBucket().
The documentation for this class was generated from the following files: