Skip to content

Commit 987762a

Browse files
pks-tgitster
authored andcommitted
reftable/merged: expose functions to initialize iterators
We do not expose any functions via our public headers that would allow a caller to initialize a reftable iterator from a merged table. Instead, they are expected to go via the generic `reftable_table` interface, which is somewhat roundabout. Implement two new functions to initialize iterators for ref and log records to plug this gap. Signed-off-by: Patrick Steinhardt <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 9b4df82 commit 987762a

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

reftable/merged.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,18 @@ void merged_table_init_iter(struct reftable_merged_table *mt,
254254
iterator_from_merged_iter(it, mi);
255255
}
256256

257+
void reftable_merged_table_init_ref_iterator(struct reftable_merged_table *mt,
258+
struct reftable_iterator *it)
259+
{
260+
merged_table_init_iter(mt, it, BLOCK_TYPE_REF);
261+
}
262+
263+
void reftable_merged_table_init_log_iterator(struct reftable_merged_table *mt,
264+
struct reftable_iterator *it)
265+
{
266+
merged_table_init_iter(mt, it, BLOCK_TYPE_LOG);
267+
}
268+
257269
uint32_t reftable_merged_table_hash_id(struct reftable_merged_table *mt)
258270
{
259271
return mt->hash_id;

reftable/reftable-merged.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,14 @@ int reftable_new_merged_table(struct reftable_merged_table **dest,
3636
struct reftable_table *stack, size_t n,
3737
uint32_t hash_id);
3838

39+
/* Initialize a merged table iterator for reading refs. */
40+
void reftable_merged_table_init_ref_iterator(struct reftable_merged_table *mt,
41+
struct reftable_iterator *it);
42+
43+
/* Initialize a merged table iterator for reading logs. */
44+
void reftable_merged_table_init_log_iterator(struct reftable_merged_table *mt,
45+
struct reftable_iterator *it);
46+
3947
/* returns the max update_index covered by this merged table. */
4048
uint64_t
4149
reftable_merged_table_max_update_index(struct reftable_merged_table *mt);

0 commit comments

Comments
 (0)