HttpHdrScTarget.cc
Go to the documentation of this file.
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/* DEBUG: section 90 HTTP Cache Control Header */
10
11#include "squid.h"
12#include "HttpHdrSc.h"
13#include "HttpHdrScTarget.h"
14#include "StatHist.h"
15
16/* copies non-extant fields from new_sc to this sc */
17void
19{
20 assert(new_sc);
21 /* Don't touch the target - this is used to get the operations for a
22 * single surrogate
23 */
24
25 if (new_sc->hasNoStore())
26 noStore(true);
27
28 if (new_sc->hasNoStoreRemote())
29 noStoreRemote(true);
30
31 if (new_sc->hasMaxAge() && !hasMaxAge()) {
32 maxAge(new_sc->maxAge());
33 maxStale(new_sc->maxStale());
34 }
35
36 if (new_sc->hasContent() && !hasContent())
37 Content(new_sc->content());
38
39}
40
41void
43{
45
46 for (c = SC_NO_STORE; c < SC_ENUM_END; ++c)
47 if (isSet(c))
48 hist->count(c);
49}
50
#define assert(EX)
Definition: assert.h:17
bool noStore() const
void maxAge(int v)
String content() const
bool isSet(http_hdr_sc_type id) const
bool noStoreRemote() const
void mergeWith(const HttpHdrScTarget *new_sc)
void updateStats(StatHist *) const
bool hasMaxAge() const
bool hasNoStoreRemote() const
bool hasContent() const
int maxAge() const
int maxStale() const
bool hasNoStore() const
void Content(const String &v)
void maxStale(int v)
void count(double val)
Definition: StatHist.cc:55
http_hdr_sc_type
Definition: forward.h:31
@ SC_NO_STORE
Definition: forward.h:32
@ SC_ENUM_END
Definition: forward.h:37

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors