aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2025-04-07 15:16:25 +0200
committerJunio C Hamano <gitster@pobox.com>2025-04-07 14:53:12 -0700
commitc8cbe85a233c7f38cb644c2e6a676871c90c9dcd (patch)
tree6a7ce1a6f390be1b0e81b04fa9bbad14386c91b6
parent50d845947734f45970439518047ab1f79628bb7e (diff)
downloadgit-c8cbe85a233c7f38cb644c2e6a676871c90c9dcd.tar.gz
reftable/table: add `reftable_table` to the public interface
The `reftable_table` interface is an internal implementation detail that callers have no access to. Having direct access to this structure is important though for a subsequent patch series that will implement consistency checks for the reftable backend. Move the structure into "reftable-table.h" so that it part of the public interface. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--reftable/reftable-table.h32
-rw-r--r--reftable/table.h33
2 files changed, 31 insertions, 34 deletions
diff --git a/reftable/reftable-table.h b/reftable/reftable-table.h
index 9437902672..a78db9eea7 100644
--- a/reftable/reftable-table.h
+++ b/reftable/reftable-table.h
@@ -20,8 +20,38 @@
* reftable_merged_table and struct reftable_stack.
*/
+/* Metadata for a block type. */
+struct reftable_table_offsets {
+ int is_present;
+ uint64_t offset;
+ uint64_t index_offset;
+};
+
/* The table struct is a handle to an open reftable file. */
-struct reftable_table;
+struct reftable_table {
+ /* for convenience, associate a name with the instance. */
+ char *name;
+ struct reftable_block_source source;
+
+ /* Size of the file, excluding the footer. */
+ uint64_t size;
+
+ /* The hash function used for ref records. */
+ enum reftable_hash hash_id;
+
+ uint32_t block_size;
+ uint64_t min_update_index;
+ uint64_t max_update_index;
+ /* Length of the OID keys in the 'o' section */
+ int object_id_len;
+ int version;
+
+ struct reftable_table_offsets ref_offsets;
+ struct reftable_table_offsets obj_offsets;
+ struct reftable_table_offsets log_offsets;
+
+ uint64_t refcount;
+};
/* reftable_table_new opens a reftable for reading. If successful,
* returns 0 code and sets pp. The name is used for creating a
diff --git a/reftable/table.h b/reftable/table.h
index e15d58d8e9..c54703e621 100644
--- a/reftable/table.h
+++ b/reftable/table.h
@@ -14,39 +14,6 @@
#include "reftable-iterator.h"
#include "reftable-table.h"
-/* metadata for a block type */
-struct reftable_table_offsets {
- int is_present;
- uint64_t offset;
- uint64_t index_offset;
-};
-
-/* The state for reading a reftable file. */
-struct reftable_table {
- /* for convenience, associate a name with the instance. */
- char *name;
- struct reftable_block_source source;
-
- /* Size of the file, excluding the footer. */
- uint64_t size;
-
- /* The hash function used for ref records. */
- enum reftable_hash hash_id;
-
- uint32_t block_size;
- uint64_t min_update_index;
- uint64_t max_update_index;
- /* Length of the OID keys in the 'o' section */
- int object_id_len;
- int version;
-
- struct reftable_table_offsets ref_offsets;
- struct reftable_table_offsets obj_offsets;
- struct reftable_table_offsets log_offsets;
-
- uint64_t refcount;
-};
-
const char *reftable_table_name(struct reftable_table *t);
int table_init_iter(struct reftable_table *t,