| /* | |
| Copyright 2020 Google LLC | |
| Use of this source code is governed by a BSD-style | |
| license that can be found in the LICENSE file or at | |
| https://developers.google.com/open-source/licenses/bsd | |
| */ | |
| #ifndef STACK_H | |
| #define STACK_H | |
| #include "system.h" | |
| #include "reftable-writer.h" | |
| #include "reftable-stack.h" | |
| struct reftable_stack { | |
| char *list_file; | |
| char *reftable_dir; | |
| int disable_auto_compact; | |
| struct reftable_write_options config; | |
| struct reftable_reader **readers; | |
| size_t readers_len; | |
| struct reftable_merged_table *merged; | |
| struct reftable_compaction_stats stats; | |
| }; | |
| int read_lines(const char *filename, char ***lines); | |
| struct segment { | |
| int start, end; | |
| int log; | |
| uint64_t bytes; | |
| }; | |
| int fastlog2(uint64_t sz); | |
| struct segment *sizes_to_segments(int *seglen, uint64_t *sizes, int n); | |
| struct segment suggest_compaction_segment(uint64_t *sizes, int n); | |
| #endif |