]> git.ipfire.org Git - thirdparty/squid.git/blob - src/HttpHeaderStat.h
Source Format Enforcement (#763)
[thirdparty/squid.git] / src / HttpHeaderStat.h
1 /*
2 * Copyright (C) 1996-2021 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 HTTPHEADERSTAT_H_
10 #define HTTPHEADERSTAT_H_
11
12 #include "HttpHdrCc.h"
13 #include "HttpHdrSc.h"
14 #include "StatHist.h"
15
16 /// HTTP per header statistics
17 class HttpHeaderStat
18 {
19 public:
20 HttpHeaderStat() :
21 label(NULL),
22 owner_mask(NULL),
23 parsedCount(0),
24 ccParsedCount(0),
25 scParsedCount(0),
26 destroyedCount(0),
27 busyDestroyedCount(0)
28 {
29 hdrUCountDistr.enumInit(32); /* not a real enum */
30 fieldTypeDistr.enumInit(Http::HdrType::enumEnd_);
31 ccTypeDistr.enumInit(HttpHdrCcType::CC_ENUM_END);
32 scTypeDistr.enumInit(SC_ENUM_END);
33 }
34
35 HttpHeaderStat(const char *aLabel, HttpHeaderMask *aMask) :
36 label(aLabel),
37 owner_mask(aMask),
38 parsedCount(0),
39 ccParsedCount(0),
40 scParsedCount(0),
41 destroyedCount(0),
42 busyDestroyedCount(0)
43 {
44 assert(label);
45 hdrUCountDistr.enumInit(32); /* not a real enum */
46 fieldTypeDistr.enumInit(Http::HdrType::enumEnd_);
47 ccTypeDistr.enumInit(HttpHdrCcType::CC_ENUM_END);
48 scTypeDistr.enumInit(SC_ENUM_END);
49 }
50
51 // nothing to destruct as label is a pointer to global const string
52 // and owner_mask is a pointer to global static array
53 ~HttpHeaderStat() {}
54
55 const char *label;
56 HttpHeaderMask *owner_mask;
57
58 StatHist hdrUCountDistr;
59 StatHist fieldTypeDistr;
60 StatHist ccTypeDistr;
61 StatHist scTypeDistr;
62
63 int parsedCount;
64 int ccParsedCount;
65 int scParsedCount;
66 int destroyedCount;
67 int busyDestroyedCount;
68 };
69
70 #endif /* HTTPHEADERSTAT_H_ */
71