|  | /* | 
|  | 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; | 
|  | }; | 
|  |  | 
|  | void merged_table_release(struct reftable_merged_table *mt); | 
|  |  | 
|  | #endif |