]> git.ipfire.org Git - thirdparty/squid.git/blob - src/fs/ufs/UFSSwapLogParser.h
SourceFormat Enforcement
[thirdparty/squid.git] / src / fs / ufs / UFSSwapLogParser.h
1 /*
2 * Copyright (C) 1996-2017 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_FS_UFS_UFSSWAPLOGPARSER_H
10 #define SQUID_FS_UFS_UFSSWAPLOGPARSER_H
11
12 class StoreSwapLogData;
13
14 namespace Fs
15 {
16 namespace Ufs
17 {
18 /// \ingroup UFS
19 class UFSSwapLogParser
20 {
21 public:
22 FILE *log;
23 int log_entries;
24 int record_size;
25
26 UFSSwapLogParser(FILE *fp):log(fp),log_entries(-1), record_size(0) {
27 }
28 virtual ~UFSSwapLogParser() {};
29
30 static UFSSwapLogParser *GetUFSSwapLogParser(FILE *fp);
31
32 virtual bool ReadRecord(StoreSwapLogData &swapData) = 0;
33 int SwapLogEntries();
34 void Close() {
35 if (log) {
36 fclose(log);
37 log = NULL;
38 }
39 }
40 };
41
42 } //namespace Ufs
43 } //namespace Fs
44 #endif /* SQUID_FS_UFS_UFSSWAPLOGPARSER_H */
45