diff options
author | Han-Wen Nienhuys <hanwen@google.com> | 2021-10-07 20:25:01 +0000 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-10-08 10:45:48 -0700 |
commit | 1214aa841bc825c97541a68f397227cb2bfd3f3c (patch) | |
tree | 782222593af1c28bbefd31058460aec0b3aa6107 /reftable/blocksource.h | |
parent | reftable: utility functions (diff) | |
download | tgif-1214aa841bc825c97541a68f397227cb2bfd3f3c.tar.xz |
reftable: add blocksource, an abstraction for random access reads
The reftable format is usually used with files for storage. However, we abstract
away this using the blocksource data structure. This has two advantages:
* log blocks are zlib compressed, and handling them is simplified if we can
discard byte segments from within the block layer.
* for unittests, it is useful to read and write in-memory. The blocksource
allows us to abstract the data away from on-disk files.
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'reftable/blocksource.h')
-rw-r--r-- | reftable/blocksource.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/reftable/blocksource.h b/reftable/blocksource.h new file mode 100644 index 0000000000..072e2727ad --- /dev/null +++ b/reftable/blocksource.h @@ -0,0 +1,22 @@ +/* +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 BLOCKSOURCE_H +#define BLOCKSOURCE_H + +#include "system.h" + +struct reftable_block_source; + +/* Create an in-memory block source for reading reftables */ +void block_source_from_strbuf(struct reftable_block_source *bs, + struct strbuf *buf); + +struct reftable_block_source malloc_block_source(void); + +#endif |