| /* |
| 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 MERGED_H |
| #define MERGED_H |
| |
| #include "pq.h" |
| |
| struct reftable_merged_table { |
| struct reftable_table *stack; |
| size_t stack_len; |
| uint32_t hash_id; |
| |
| /* If unset, produce deletions. This is useful for compaction. For the |
| * full stack, deletions should be produced. */ |
| int suppress_deletions; |
| |
| uint64_t min; |
| uint64_t max; |
| }; |
| |
| struct merged_iter { |
| struct reftable_iterator *stack; |
| uint32_t hash_id; |
| size_t stack_len; |
| uint8_t typ; |
| int suppress_deletions; |
| struct merged_iter_pqueue pq; |
| struct strbuf key; |
| struct strbuf entry_key; |
| }; |
| |
| void merged_table_release(struct reftable_merged_table *mt); |
| |
| #endif |