reftable: introduce "reftable-system.h" header
We're including a couple of standard headers like <stdint.h> in a bunch
of locations, which makes it hard for a project to plug in their own
logic for making required functionality available. For us this is for
example via "compat/posix.h", which already includes all of the system
headers relevant to us.
Introduce a new "reftable-system.h" header that allows projects to
provide their own headers. This new header is supposed to contain all
the project-specific bits to provide the POSIX-like environment, and some
additional supporting code. With this change, we thus have the following
split in our system-specific code:
- "reftable/reftable-system.h" is the project-specific header that
provides a POSIX-like environment. Every project is expected to
provide their own implementation.
- "reftable/system.h" contains the project-independent definition of
the interfaces that a project needs to implement. This file should
not be touched by a project.
- "reftable/system.c" contains the project-specific implementation of
the interfaces defined in "system.h". Again, every project is
expected to provide their own implementation.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
parent
270e10ad6d
commit
34c17b840d
|
|
@ -9,7 +9,7 @@
|
|||
#ifndef REFTABLE_BASICS_H
|
||||
#define REFTABLE_BASICS_H
|
||||
|
||||
#include <stddef.h>
|
||||
#include "reftable-system.h"
|
||||
|
||||
/* A buffer that contains arbitrary byte slices. */
|
||||
struct reftable_buf {
|
||||
|
|
|
|||
|
|
@ -9,8 +9,7 @@
|
|||
#ifndef REFTABLE_BLOCK_H
|
||||
#define REFTABLE_BLOCK_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "reftable-system.h"
|
||||
#include "reftable-basics.h"
|
||||
#include "reftable-blocksource.h"
|
||||
#include "reftable-iterator.h"
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
#ifndef REFTABLE_BLOCKSOURCE_H
|
||||
#define REFTABLE_BLOCKSOURCE_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include "reftable-system.h"
|
||||
|
||||
/*
|
||||
* Generic wrapper for a seekable readable file.
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@
|
|||
#ifndef REFTABLE_ERROR_H
|
||||
#define REFTABLE_ERROR_H
|
||||
|
||||
#include "reftable-system.h"
|
||||
|
||||
/*
|
||||
* Errors in reftable calls are signaled with negative integer return values. 0
|
||||
* means success.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef REFTABLE_FSCK_H
|
||||
#define REFTABLE_FSCK_H
|
||||
|
||||
#include "reftable-system.h"
|
||||
#include "reftable-stack.h"
|
||||
|
||||
enum reftable_fsck_error {
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
#ifndef REFTABLE_ITERATOR_H
|
||||
#define REFTABLE_ITERATOR_H
|
||||
|
||||
#include "reftable-system.h"
|
||||
#include "reftable-record.h"
|
||||
|
||||
struct reftable_iterator_vtable;
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
#ifndef REFTABLE_MERGED_H
|
||||
#define REFTABLE_MERGED_H
|
||||
|
||||
#include "reftable-system.h"
|
||||
#include "reftable-iterator.h"
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@
|
|||
#ifndef REFTABLE_RECORD_H
|
||||
#define REFTABLE_RECORD_H
|
||||
|
||||
#include "reftable-system.h"
|
||||
#include "reftable-basics.h"
|
||||
#include <stdint.h>
|
||||
|
||||
/*
|
||||
* Basic data types
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
#ifndef REFTABLE_STACK_H
|
||||
#define REFTABLE_STACK_H
|
||||
|
||||
#include "reftable-system.h"
|
||||
#include "reftable-writer.h"
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -0,0 +1,15 @@
|
|||
#ifndef REFTABLE_SYSTEM_H
|
||||
#define REFTABLE_SYSTEM_H
|
||||
|
||||
/*
|
||||
* This header defines the platform-specific bits required to compile the
|
||||
* reftable library. It should provide an environment that bridges over the
|
||||
* gaps between POSIX and your system, as well as the zlib interfaces. This
|
||||
* header is expected to be changed by the individual project.
|
||||
*/
|
||||
|
||||
#define MINGW_DONT_HANDLE_IN_USE_ERROR
|
||||
#include "compat/posix.h"
|
||||
#include "compat/zlib-compat.h"
|
||||
|
||||
#endif
|
||||
|
|
@ -9,6 +9,7 @@
|
|||
#ifndef REFTABLE_TABLE_H
|
||||
#define REFTABLE_TABLE_H
|
||||
|
||||
#include "reftable-system.h"
|
||||
#include "reftable-iterator.h"
|
||||
#include "reftable-block.h"
|
||||
#include "reftable-blocksource.h"
|
||||
|
|
|
|||
|
|
@ -9,11 +9,9 @@
|
|||
#ifndef REFTABLE_WRITER_H
|
||||
#define REFTABLE_WRITER_H
|
||||
|
||||
#include "reftable-system.h"
|
||||
#include "reftable-record.h"
|
||||
|
||||
#include <stdint.h>
|
||||
#include <unistd.h> /* ssize_t */
|
||||
|
||||
/* Writing single reftables */
|
||||
|
||||
/* reftable_write_options sets options for writing a single reftable. */
|
||||
|
|
|
|||
|
|
@ -9,11 +9,14 @@
|
|||
#ifndef SYSTEM_H
|
||||
#define SYSTEM_H
|
||||
|
||||
/* This header glues the reftable library to the rest of Git */
|
||||
/*
|
||||
* This header defines the platform-agnostic interface that is to be
|
||||
* implemented by the project to make it work on their respective supported
|
||||
* systems, and to integrate it into the project itself. This header is not
|
||||
* expected to be changed by the individual project.
|
||||
*/
|
||||
|
||||
#define MINGW_DONT_HANDLE_IN_USE_ERROR
|
||||
#include "compat/posix.h"
|
||||
#include "compat/zlib-compat.h"
|
||||
#include "reftable-system.h"
|
||||
|
||||
/*
|
||||
* Return a random 32 bit integer. This function is expected to return
|
||||
|
|
|
|||
Loading…
Reference in New Issue