]>
Commit | Line | Data |
---|---|---|
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 |
7 | namespace Rock |
8 | { | |
e2851fe7 AR |
9 | |
10 | class SwapDir; | |
11 | ||
12 | /// \ingroup Rock | |
13 | /// manages store rebuild process: loading meta information from db on disk | |
9199139f AR |
14 | class Rebuild: public AsyncJob |
15 | { | |
e2851fe7 AR |
16 | public: |
17 | Rebuild(SwapDir *dir); | |
18 | ~Rebuild(); | |
e2851fe7 | 19 | |
078274f6 AR |
20 | protected: |
21 | /* AsyncJob API */ | |
22 | virtual void start(); | |
23 | virtual bool doneAll() const; | |
24 | virtual void swanSong(); | |
e2851fe7 | 25 | |
078274f6 | 26 | private: |
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 */ |