9#ifndef SQUID_SRC_MESSAGEDELAYPOOLS_H
10#define SQUID_SRC_MESSAGEDELAYPOOLS_H
32 int64_t aggregateSpeed, int64_t aggregateSize, uint16_t initialBucketPercent);
88 std::vector<MessageDelayPool::Pointer>
pools;
106#define free_response_delay_pool_access(X)
107#define dump_response_delay_pool_access(X, Y, Z)
#define RefCountable
The locking interface for use on Reference-Counted classes.
void dump_response_delay_pool_parameters(StoreEntry *entry, const char *, MessageDelayConfig &cfg)
RefCount< MessageBucket > MessageBucketPointer
void parse_response_delay_pool_parameters(MessageDelayConfig *cfg)
void parse_response_delay_pool_access(MessageDelayConfig *cfg)
void free_response_delay_pool_parameters(MessageDelayConfig *cfg)
int const & level() const
Limits Squid-to-client bandwidth for each matching response.
represents configuration for response delay pools
void parseResponseDelayPool()
void dumpResponseDelayPoolParameters(StoreEntry *)
void parseResponseDelayPoolAccess()
~MessageDelayPool() override
int64_t individualRestore
the speed limit of an individual bucket (bytes/s)
time_t lastUpdate
Time the aggregate bucket level was last refilled.
bool noLimit() const
whether the aggregate bucket has no limit
DelayBucket theBucket
the aggregate bucket
void refillBucket()
Increases the aggregate bucket level with the aggregateRestore speed.
SBuf poolName
the response delay pool name
MessageDelayPool(const MessageDelayPool &)=delete
int level()
current aggregate level
MessageBucketPointer createBucket()
creates an individual response bucket
uint16_t initialBucketLevel
the initial bucket size as a percentage of individualMaximum
int64_t individualMaximum
the maximum size of an individual bucket
int64_t aggregateMaximum
the maximum size of the aggregate bucket
void dump(StoreEntry *entry) const
RefCount< MessageDelayPool > Pointer
void bytesIn(int qty)
decreases the aggregate level
MessageDelayPool & operator=(const MessageDelayPool &)=delete
int64_t aggregateRestore
the speed limit of the aggregate bucket (bytes/s)
void add(MessageDelayPool *pool)
appends a single MessageDelayPool, created during configuration
static MessageDelayPools * Instance()
std::vector< MessageDelayPool::Pointer > pools
MessageDelayPool::Pointer pool(const SBuf &name)
returns a MessageDelayPool with a given name or null otherwise
MessageDelayPools & operator=(const MessageDelayPools &)=delete
void freePools()
memory cleanup, performing during reconfiguration
MessageDelayPools(const MessageDelayPools &)=delete