]> git.ipfire.org Git - thirdparty/squid.git/blob - src/DelayId.h
Maintenance: Remove debug_log wrapper (#1833)
[thirdparty/squid.git] / src / DelayId.h
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 #ifndef SQUID_SRC_DELAYID_H
10 #define SQUID_SRC_DELAYID_H
11
12 #if USE_DELAY_POOLS
13
14 #include "base/forward.h"
15 #include "DelayIdComposite.h"
16
17 class ClientHttpRequest;
18 class HttpReply;
19
20 /// \ingroup DelayPoolsAPI
21 class DelayId
22 {
23
24 public:
25 static DelayId DelayClient(ClientHttpRequest *, HttpReply *reply = nullptr);
26 DelayId ();
27 DelayId (unsigned short);
28 ~DelayId ();
29 unsigned short pool() const;
30 DelayIdComposite::Pointer compositePosition();
31 DelayIdComposite::Pointer const compositePosition() const;
32 void compositePosition(const DelayIdComposite::Pointer &);
33 bool operator == (DelayId const &rhs) const;
34 operator bool() const;
35 int bytesWanted(int min, int max) const;
36 void bytesIn (int qty);
37 void setNoDelay(bool const);
38 void delayRead(const AsyncCallPointer &);
39
40 private:
41 unsigned short pool_;
42 DelayIdComposite::Pointer compositeId;
43 bool markedAsNoDelay;
44 };
45
46 #endif /* USE_DELAY_POOLS */
47 #endif /* SQUID_SRC_DELAYID_H */
48