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 */
17 void
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 
41 void
43 {
45 
46  for (c = SC_NO_STORE; c < SC_ENUM_END; ++c)
47  if (isSet(c))
48  hist->count(c);
49 }
50 
bool noStore() const
void mergeWith(const HttpHdrScTarget *new_sc)
@ SC_NO_STORE
Definition: forward.h:32
bool isSet(http_hdr_sc_type id) const
http_hdr_sc_type
Definition: forward.h:31
bool noStoreRemote() const
bool hasNoStore() const
void count(double val)
Definition: StatHist.cc:55
#define assert(EX)
Definition: assert.h:17
@ SC_ENUM_END
Definition: forward.h:37
String content() const
void maxAge(int v)
void updateStats(StatHist *) const
int maxAge() const
bool hasContent() const
void Content(const String &v)
int maxStale() const
bool hasMaxAge() const
bool hasNoStoreRemote() const
void maxStale(int v)

 

Introduction

Documentation

Support

Miscellaneous