diff options
| author | Patrick Steinhardt <ps@pks.im> | 2025-04-07 15:16:15 +0200 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2025-04-07 14:53:09 -0700 |
| commit | 1ac4e5e83d997887dcd051c89861292a45a3db8c (patch) | |
| tree | d843aabb8b472a1f4a523c0552f270b03f784904 /reftable/blocksource.h | |
| parent | b648bd654947db06e5549d724f46d3660ac11e19 (diff) | |
| download | git-1ac4e5e83d997887dcd051c89861292a45a3db8c.tar.xz | |
reftable/blocksource: consolidate code into a single file
The code that implements block sources is distributed across a couple of
files. Consolidate all of it into "reftable/blocksource.c" and its
accompanying header so that it is easier to locate and more self
contained.
While at it, rename some of the functions to have properly scoped names.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'reftable/blocksource.h')
| -rw-r--r-- | reftable/blocksource.h | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/reftable/blocksource.h b/reftable/blocksource.h index 7b67898ae2..639b9a1a3c 100644 --- a/reftable/blocksource.h +++ b/reftable/blocksource.h @@ -12,9 +12,34 @@ #include "system.h" struct reftable_block_source; +struct reftable_block; struct reftable_buf; -/* Create an in-memory block source for reading reftables */ +/* + * Close the block source and the underlying resource. This is a no-op in case + * the block source is zero-initialized. + */ +void block_source_close(struct reftable_block_source *source); + +/* + * Read a block of length `size` from the source at the given `off`. + */ +ssize_t block_source_read_block(struct reftable_block_source *source, + struct reftable_block *dest, uint64_t off, + uint32_t size); + +/* + * Return the total length of the underlying resource. + */ +uint64_t block_source_size(struct reftable_block_source *source); + +/* + * Return a block to its original source, releasing any resources associated + * with it. + */ +void block_source_return_block(struct reftable_block *block); + +/* Create an in-memory block source for reading reftables. */ void block_source_from_buf(struct reftable_block_source *bs, struct reftable_buf *buf); |
