]>
Commit | Line | Data |
---|---|---|
e48d4272 HWN |
1 | /* |
2 | Copyright 2020 Google LLC | |
3 | ||
4 | Use of this source code is governed by a BSD-style | |
5 | license that can be found in the LICENSE file or at | |
6 | https://developers.google.com/open-source/licenses/bsd | |
7 | */ | |
8 | ||
9 | #ifndef STACK_H | |
10 | #define STACK_H | |
11 | ||
12 | #include "system.h" | |
13 | #include "reftable-writer.h" | |
14 | #include "reftable-stack.h" | |
15 | ||
16 | struct reftable_stack { | |
4f36b859 | 17 | struct stat list_st; |
e48d4272 | 18 | char *list_file; |
4f36b859 PS |
19 | int list_fd; |
20 | ||
e48d4272 HWN |
21 | char *reftable_dir; |
22 | int disable_auto_compact; | |
23 | ||
24 | struct reftable_write_options config; | |
25 | ||
26 | struct reftable_reader **readers; | |
27 | size_t readers_len; | |
28 | struct reftable_merged_table *merged; | |
29 | struct reftable_compaction_stats stats; | |
30 | }; | |
31 | ||
32 | int read_lines(const char *filename, char ***lines); | |
33 | ||
34 | struct segment { | |
35 | int start, end; | |
36 | int log; | |
37 | uint64_t bytes; | |
38 | }; | |
39 | ||
40 | int fastlog2(uint64_t sz); | |
41 | struct segment *sizes_to_segments(int *seglen, uint64_t *sizes, int n); | |
42 | struct segment suggest_compaction_segment(uint64_t *sizes, int n); | |
43 | ||
44 | #endif |