Squid Web Cache
master
Loading...
Searching...
No Matches
RebuildState.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 1996-2025 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_FS_UFS_REBUILDSTATE_H
10
#define SQUID_SRC_FS_UFS_REBUILDSTATE_H
11
12
#include "
base/RefCount.h
"
13
#include "
store_rebuild.h
"
14
#include "
UFSSwapDir.h
"
15
#include "
UFSSwapLogParser.h
"
16
17
class
StoreEntry
;
18
19
namespace
Fs
20
{
21
namespace
Ufs
22
{
23
24
class
RebuildState
25
{
26
CBDATA_CLASS
(
RebuildState
);
27
28
public
:
29
static
EVH
RebuildStep
;
30
31
RebuildState
(
const
RefCount<UFSSwapDir>
&
sd
);
32
virtual
~RebuildState
();
33
34
virtual
bool
error
()
const
;
35
virtual
bool
isDone
()
const
;
36
37
RefCount<UFSSwapDir>
sd
;
38
int
n_read
;
39
/* FILE *log;*/
40
Fs::Ufs::UFSSwapLogParser
*
LogParser
;
41
int
curlvl1
;
42
int
curlvl2
;
43
44
struct
Flags
{
45
Flags
() :
need_to_validate
(false),
clean
(false),
init
(false) {}
46
bool
need_to_validate
;
47
bool
clean
;
48
bool
init
;
49
}
flags
;
50
int
in_dir
;
51
int
done
;
52
int
fn
;
53
54
dirent_t *
entry
;
55
DIR *
td
;
56
SBuf
fullpath
;
57
SBuf
fullfilename
;
58
59
StoreRebuildData
counts
;
60
61
private
:
62
void
rebuildFromDirectory
();
63
void
rebuildFromSwapLog
();
64
void
rebuildStep
();
65
void
addIfFresh
(
const
cache_key
*key,
66
sfileno
file_number,
67
uint64_t swap_file_sz,
68
time_t expires,
69
time_t timestamp,
70
time_t lastref,
71
time_t lastmod,
72
uint32_t refcount,
73
uint16_t
flags
);
74
bool
evictStaleAndContinue
(
const
cache_key
*candidateKey,
const
time_t maxRef,
int
&staleCount);
75
int
getNextFile
(
sfileno
*,
int
*
size
);
76
bool
fromLog
;
77
bool
_done
;
78
// TODO: (callback) should be hidden behind a proper human readable name
79
void (
callback
)(
void
*
cbdata
);
80
void
*
cbdata
;
81
};
82
83
}
/* namespace Ufs */
84
}
/* namespace Fs */
85
86
#endif
/* SQUID_SRC_FS_UFS_REBUILDSTATE_H */
87
size
int size
Definition
ModDevPoll.cc:70
RefCount.h
UFSSwapDir.h
UFSSwapLogParser.h
Fs::Ufs::RebuildState
Definition
RebuildState.h:25
Fs::Ufs::RebuildState::sd
RefCount< UFSSwapDir > sd
Definition
RebuildState.h:37
Fs::Ufs::RebuildState::rebuildFromDirectory
void rebuildFromDirectory()
process one cache file
Definition
RebuildState.cc:142
Fs::Ufs::RebuildState::cbdata
void * cbdata
Definition
RebuildState.h:80
Fs::Ufs::RebuildState::curlvl1
int curlvl1
Definition
RebuildState.h:41
Fs::Ufs::RebuildState::fullfilename
SBuf fullfilename
Definition
RebuildState.h:57
Fs::Ufs::RebuildState::rebuildFromSwapLog
void rebuildFromSwapLog()
process one swap log entry
Definition
RebuildState.cc:270
Fs::Ufs::RebuildState::fullpath
SBuf fullpath
Definition
RebuildState.h:56
Fs::Ufs::RebuildState::error
virtual bool error() const
Definition
RebuildState.cc:464
Fs::Ufs::RebuildState::counts
StoreRebuildData counts
Definition
RebuildState.h:59
Fs::Ufs::RebuildState::td
DIR * td
Definition
RebuildState.h:55
Fs::Ufs::RebuildState::evictStaleAndContinue
bool evictStaleAndContinue(const cache_key *candidateKey, const time_t maxRef, int &staleCount)
Definition
RebuildState.cc:251
Fs::Ufs::RebuildState::LogParser
Fs::Ufs::UFSSwapLogParser * LogParser
Definition
RebuildState.h:40
Fs::Ufs::RebuildState::fromLog
bool fromLog
Definition
RebuildState.h:76
Fs::Ufs::RebuildState::~RebuildState
virtual ~RebuildState()
Definition
RebuildState.cc:81
Fs::Ufs::RebuildState::done
int done
Definition
RebuildState.h:51
Fs::Ufs::RebuildState::in_dir
int in_dir
Definition
RebuildState.h:50
Fs::Ufs::RebuildState::n_read
int n_read
Definition
RebuildState.h:38
Fs::Ufs::RebuildState::isDone
virtual bool isDone() const
Definition
RebuildState.cc:470
Fs::Ufs::RebuildState::flags
struct Fs::Ufs::RebuildState::Flags flags
Fs::Ufs::RebuildState::fn
int fn
Definition
RebuildState.h:52
Fs::Ufs::RebuildState::RebuildStep
static EVH RebuildStep
Definition
RebuildState.h:29
Fs::Ufs::RebuildState::getNextFile
int getNextFile(sfileno *, int *size)
Definition
RebuildState.cc:354
Fs::Ufs::RebuildState::CBDATA_CLASS
CBDATA_CLASS(RebuildState)
Fs::Ufs::RebuildState::rebuildStep
void rebuildStep()
load entries from swap.state or files until we run out of entries or time
Definition
RebuildState.cc:107
Fs::Ufs::RebuildState::entry
dirent_t * entry
Definition
RebuildState.h:54
Fs::Ufs::RebuildState::callback
void() callback(void *cbdata)
Fs::Ufs::RebuildState::curlvl2
int curlvl2
Definition
RebuildState.h:42
Fs::Ufs::RebuildState::addIfFresh
void addIfFresh(const cache_key *key, sfileno file_number, uint64_t swap_file_sz, time_t expires, time_t timestamp, time_t lastref, time_t lastmod, uint32_t refcount, uint16_t flags)
if the loaded entry metadata is still relevant, indexes the entry
Definition
RebuildState.cc:220
Fs::Ufs::RebuildState::_done
bool _done
Definition
RebuildState.h:77
Fs::Ufs::UFSSwapLogParser
Definition
UFSSwapLogParser.h:20
RefCount
Definition
RefCount.h:28
SBuf
Definition
SBuf.h:94
StoreEntry
Definition
Store.h:38
StoreRebuildData
cache_dir(s) indexing statistics
Definition
store_rebuild.h:20
EVH
void EVH(void *)
Definition
event.h:18
Fs
Definition
Module.h:13
cache_key
unsigned char cache_key
Store key.
Definition
forward.h:29
sfileno
signed_int32_t sfileno
Definition
forward.h:22
store_rebuild.h
Fs::Ufs::RebuildState::Flags
Definition
RebuildState.h:44
Fs::Ufs::RebuildState::Flags::need_to_validate
bool need_to_validate
Definition
RebuildState.h:46
Fs::Ufs::RebuildState::Flags::init
bool init
Definition
RebuildState.h:48
Fs::Ufs::RebuildState::Flags::Flags
Flags()
Definition
RebuildState.h:45
Fs::Ufs::RebuildState::Flags::clean
bool clean
Definition
RebuildState.h:47
squid
src
fs
ufs
RebuildState.h
Generated by
1.9.8