History.h
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#ifndef SQUID_ADAPT_HISTORY_H
10#define SQUID_ADAPT_HISTORY_H
11
13#include "adaptation/forward.h"
14#include "base/RefCount.h"
15#include "HttpHeader.h"
16#include "Notes.h"
17#include "sbuf/SBuf.h"
18#include "SquidString.h"
19
20namespace Adaptation
21{
22
24class History: public RefCountable
25{
26public:
28
29 History();
30
32 int recordXactStart(const String &serviceId, const timeval &when, bool retrying);
33
35 void recordXactFinish(int hid);
36
38 void allLogString(const char *serviceId, SBuf &);
39
41 void sumLogString(const char *serviceId, SBuf &);
42
44 void updateXxRecord(const char *name, const String &value);
45
47 bool getXxRecord(String &name, String &value) const;
48
50 void updateNextServices(const String &services);
51
53 bool extractNextServices(String &value);
54
56 void recordMeta(const HttpHeader *lm);
57
58 void recordAdaptationService(SBuf &srvId);
59public:
67
68 typedef std::vector<SBuf> AdaptationServices;
70
72 void setFutureServices(const DynamicGroupCfg &services);
73
76
77private:
79 class Entry
80 {
81 public:
82 Entry(const String &serviceId, const timeval &when);
83 Entry(); // required by Vector<>
84
85 void stop();
86 int rptm();
87
89 timeval start;
90
91 private:
92 int theRptm;
93
94 public:
95 bool retried;
96 };
97
98 typedef std::vector<Entry> Entries;
100
101 // theXx* will become a map<string,string>, but we only support one record
104
107};
108
109} // namespace Adaptation
110
111#endif
112
#define RefCountable
The locking interface for use on Reference-Counted classes.
Definition: Lock.h:66
DynamicServiceGroup configuration to remember future dynamic chains.
single Xaction stats (i.e., a historical record entry)
Definition: History.h:80
timeval start
when the xaction was started
Definition: History.h:89
String service
adaptation service ID
Definition: History.h:88
bool retried
whether the xaction was replaced by another
Definition: History.h:95
int theRptm
calculated and cached response time value in msec
Definition: History.h:92
void stop()
updates stats on transaction end
Definition: History.cc:31
int rptm()
returns response time [msec], calculates it if needed
Definition: History.cc:37
collects information about adaptations related to a master transaction
Definition: History.h:25
void sumLogString(const char *serviceId, SBuf &)
dump xaction times, merging retried and retry times together
Definition: History.cc:83
bool extractNextServices(String &value)
returns true, fills the value, and resets iff next services were set
Definition: History.cc:130
String theXxName
name part of the cross-transactional database record
Definition: History.h:102
DynamicGroupCfg theFutureServices
services AccessCheck must use
Definition: History.h:106
Entries theEntries
historical record, in the order of xact starts
Definition: History.h:99
String theNextServices
services Adaptation::Iterator must use next
Definition: History.h:105
String theXxValue
value part of the cross-xactional database record
Definition: History.h:103
DynamicGroupCfg extractCurrentServices(const ServiceFilter &)
returns and forgets planned/future services matching the given filter
Definition: History.cc:165
int recordXactStart(const String &serviceId, const timeval &when, bool retrying)
record the start of a xact, return xact history ID
Definition: History.cc:51
void updateXxRecord(const char *name, const String &value)
sets or resets a cross-transactional database record
Definition: History.cc:105
void setFutureServices(const DynamicGroupCfg &services)
sets future services for the Adaptation::AccessCheck to notice
Definition: History.cc:156
NotePairs::Pointer metaHeaders
Definition: History.h:66
HttpHeader allMeta
All REQMOD and RESPMOD meta headers merged. Last field wins conflicts.
Definition: History.h:63
bool getXxRecord(String &name, String &value) const
returns true and fills the record fields iff there is a db record
Definition: History.cc:111
void updateNextServices(const String &services)
sets or resets next services for the Adaptation::Iterator to notice
Definition: History.cc:121
std::vector< Entry > Entries
Definition: History.h:98
void recordAdaptationService(SBuf &srvId)
Definition: History.cc:150
RefCount< Adaptation::History > Pointer
Definition: History.h:27
void recordMeta(const HttpHeader *lm)
store the last meta header fields received from the adaptation service
Definition: History.cc:140
HttpHeader lastMeta
Last received meta header (REQMOD or RESPMOD, whichever comes last).
Definition: History.h:61
std::vector< SBuf > AdaptationServices
Definition: History.h:68
void allLogString(const char *serviceId, SBuf &)
dump individual xaction times to a string
Definition: History.cc:67
void recordXactFinish(int hid)
record the end of a xact identified by its history ID
Definition: History.cc:61
AdaptationServices theAdaptationServices
The service groups used.
Definition: History.h:69
information used to search for adaptation services
Definition: ServiceFilter.h:23
Definition: SBuf.h:94

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors