DelayBucket.cc
Go to the documentation of this file.
1/*
2 * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
3 *
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
7 */
8
9/* DEBUG: section 77 Delay Pools */
10
11#include "squid.h"
12
13#if USE_DELAY_POOLS
14#include "DelayBucket.h"
15#include "DelaySpec.h"
16#include "SquidConfig.h"
17#include "Store.h"
18
19void
21{
22 storeAppendPrintf(entry, "%d", level());
23}
24
25void
26DelayBucket::update(DelaySpec const &rate, int incr)
27{
28 if (rate.restore_bps != -1 &&
29 (level() += rate.restore_bps * incr) > rate.max_bytes)
30 level() = rate.max_bytes;
31}
32
33int
34DelayBucket::bytesWanted(int minimum, int maximum) const
35{
36 int result = max(minimum, min(maximum, level()));
37 return result;
38}
39
40void
42{
43 level() -= qty;
44}
45
46void
48{
49 level() = (int) (((double)rate.max_bytes *
50 Config.Delay.initial) / 100);
51}
52
53#endif /* USE_DELAY_POOLS */
54
class SquidConfig Config
Definition: SquidConfig.cc:12
void init(DelaySpec const &)
Definition: DelayBucket.cc:47
void update(DelaySpec const &, int incr)
Definition: DelayBucket.cc:26
void bytesIn(int qty)
Definition: DelayBucket.cc:41
void stats(StoreEntry *) const
Definition: DelayBucket.cc:20
int const & level() const
Definition: DelayBucket.h:24
int bytesWanted(int min, int max) const
Definition: DelayBucket.cc:34
unsigned short initial
Definition: DelayConfig.h:28
int restore_bps
Definition: DelaySpec.h:23
int64_t max_bytes
Definition: DelaySpec.h:24
DelayConfig Delay
Definition: SquidConfig.h:445
A const & max(A const &lhs, A const &rhs)
A const & min(A const &lhs, A const &rhs)
void storeAppendPrintf(StoreEntry *e, const char *fmt,...)
Definition: store.cc:841
int unsigned int
Definition: stub_fd.cc:19

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors