2 * Copyright (C) 1996-2014 The Squid Software Foundation and contributors
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.
9 /* DEBUG: section 77 Delay Pools */
11 #ifndef COMPOSITEPOOLNODE_H
12 #define COMPOSITEPOOLNODE_H
15 #include "auth/UserRequest.h"
17 #include "DelayIdComposite.h"
18 #include "DelayPools.h"
19 #include "ip/Address.h"
20 #include "SquidString.h"
24 /// \ingroup DelayPoolsAPI
25 class CompositePoolNode
: public RefCountable
, public Updateable
29 typedef RefCount
<CompositePoolNode
> Pointer
;
30 void *operator new(size_t);
31 void operator delete (void *);
32 virtual ~CompositePoolNode() {}
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;
39 class CompositeSelectionDetails
;
40 virtual DelayIdComposite::Pointer
id(CompositeSelectionDetails
&) = 0;
41 void delayRead(DeferredRead
const &);
43 /// \ingroup DelayPoolsAPI
44 class CompositeSelectionDetails
48 CompositeSelectionDetails() {}
52 Auth::UserRequest::Pointer user
;
59 DeferredReadManager deferredReads
;
62 #endif /* USE_DELAY_POOLS */
63 #endif /* COMPOSITEPOOLNODE_H */