]>
Commit | Line | Data |
---|---|---|
b67e2c8c | 1 | /* |
4ac4a490 | 2 | * Copyright (C) 1996-2017 The Squid Software Foundation and contributors |
b67e2c8c | 3 | * |
bbc27441 AJ |
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. | |
b67e2c8c | 7 | */ |
bbc27441 AJ |
8 | |
9 | /* DEBUG: section 77 Delay Pools */ | |
10 | ||
b67e2c8c | 11 | #ifndef COMPOSITEPOOLNODE_H |
12 | #define COMPOSITEPOOLNODE_H | |
13 | ||
9a0a18de | 14 | #if USE_DELAY_POOLS |
a33a428a | 15 | #include "auth/UserRequest.h" |
a46d2c0e | 16 | #include "CommRead.h" |
582c2af2 FC |
17 | #include "DelayIdComposite.h" |
18 | #include "DelayPools.h" | |
96d89ea0 | 19 | #include "ip/Address.h" |
582c2af2 | 20 | #include "SquidString.h" |
b67e2c8c | 21 | |
22 | class StoreEntry; | |
62e76326 | 23 | |
63be0a78 | 24 | /// \ingroup DelayPoolsAPI |
62e76326 | 25 | class CompositePoolNode : public RefCountable, public Updateable |
26 | { | |
27 | ||
b67e2c8c | 28 | public: |
29 | typedef RefCount<CompositePoolNode> Pointer; | |
30 | void *operator new(size_t); | |
31 | void operator delete (void *); | |
26ac0430 | 32 | virtual ~CompositePoolNode() {} |
62e76326 | 33 | |
b67e2c8c | 34 | virtual void stats(StoreEntry * sentry) =0; |
35 | virtual void dump(StoreEntry *entry) const =0; | |
36 | virtual void update(int incr) =0; | |
37 | virtual void parse() = 0; | |
62e76326 | 38 | |
1e5562e3 | 39 | class CompositeSelectionDetails; |
40 | virtual DelayIdComposite::Pointer id(CompositeSelectionDetails &) = 0; | |
a46d2c0e | 41 | void delayRead(DeferredRead const &); |
42 | ||
63be0a78 | 43 | /// \ingroup DelayPoolsAPI |
1e5562e3 | 44 | class CompositeSelectionDetails |
45 | { | |
46 | ||
47 | public: | |
48 | CompositeSelectionDetails() {} | |
49 | ||
b7ac5457 | 50 | Ip::Address src_addr; |
79fc6915 | 51 | #if USE_AUTH |
c7baff40 | 52 | Auth::UserRequest::Pointer user; |
79fc6915 | 53 | #endif |
30abd221 | 54 | String tag; |
1e5562e3 | 55 | }; |
56 | ||
a46d2c0e | 57 | protected: |
58 | void kickReads(); | |
59 | DeferredReadManager deferredReads; | |
b67e2c8c | 60 | }; |
62e76326 | 61 | |
9a0a18de | 62 | #endif /* USE_DELAY_POOLS */ |
b67e2c8c | 63 | #endif /* COMPOSITEPOOLNODE_H */ |
f53969cc | 64 |