]>
Commit | Line | Data |
---|---|---|
b27668ec | 1 | /* |
f6e9a3ee | 2 | * Copyright (C) 1996-2019 The Squid Software Foundation and contributors |
b27668ec EB |
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 | #ifndef MESSAGEBUCKET_H | |
10 | #define MESSAGEBUCKET_H | |
11 | ||
12 | #if USE_DELAY_POOLS | |
13 | ||
14 | #include "BandwidthBucket.h" | |
15 | #include "base/RefCount.h" | |
16 | #include "comm/forward.h" | |
17 | #include "MessageDelayPools.h" | |
18 | ||
19 | /// Limits Squid-to-client bandwidth for each matching response | |
20 | class MessageBucket : public RefCountable, public BandwidthBucket | |
21 | { | |
22 | MEMPROXY_CLASS(MessageBucket); | |
23 | ||
24 | public: | |
25 | typedef RefCount<MessageBucket> Pointer; | |
26 | ||
27 | MessageBucket(const int speed, const int initialLevelPercent, const double sizeLimit, MessageDelayPool::Pointer pool); | |
28 | ||
29 | /* BandwidthBucket API */ | |
30 | virtual int quota() override; | |
31 | virtual void scheduleWrite(Comm::IoCallback *state) override; | |
3d452cb1 | 32 | virtual void reduceBucket(int len) override; |
b27668ec EB |
33 | |
34 | private: | |
35 | MessageDelayPool::Pointer theAggregate; | |
36 | }; | |
37 | ||
38 | #endif /* USE_DELAY_POOLS */ | |
39 | ||
40 | #endif | |
41 |