]> git.ipfire.org Git - thirdparty/squid.git/blame - src/fs/rock/RockRebuild.h
Moved CustomLog to own header and implementation files.
[thirdparty/squid.git] / src / fs / rock / RockRebuild.h
CommitLineData
e2851fe7
AR
1#ifndef SQUID_FS_ROCK_REBUILD_H
2#define SQUID_FS_ROCK_REBUILD_H
3
078274f6 4#include "base/AsyncJob.h"
e2851fe7
AR
5#include "structs.h"
6
9199139f
AR
7namespace Rock
8{
e2851fe7
AR
9
10class SwapDir;
11
12/// \ingroup Rock
13/// manages store rebuild process: loading meta information from db on disk
9199139f
AR
14class Rebuild: public AsyncJob
15{
e2851fe7
AR
16public:
17 Rebuild(SwapDir *dir);
18 ~Rebuild();
e2851fe7 19
078274f6
AR
20protected:
21 /* AsyncJob API */
22 virtual void start();
23 virtual bool doneAll() const;
24 virtual void swanSong();
e2851fe7 25
078274f6 26private:
e2851fe7
AR
27 void checkpoint();
28 void steps();
29 void doOneEntry();
e2851fe7
AR
30 void failure(const char *msg, int errNo = 0);
31
32 SwapDir *sd;
33
34 int64_t dbSize;
35 int dbEntrySize;
36 int dbEntryLimit;
37
38 int fd; // store db file descriptor
39 int64_t dbOffset;
5b3ea321 40 int filen;
e2851fe7
AR
41
42 struct _store_rebuild_data counts;
43
44 static void Steps(void *data);
078274f6
AR
45
46 CBDATA_CLASS2(Rebuild);
e2851fe7
AR
47};
48
49} // namespace Rock
50
51#endif /* SQUID_FS_ROCK_REBUILD_H */