streaming: rename `git_istream` into `odb_read_stream`

In the following patches we are about to make the `git_istream` more
generic so that it becomes fully controlled by the specific object
source that wants to create it. As part of these refactorings we'll
fully move the structure into the object database subsystem.

Prepare for this change by renaming the structure from `git_istream`
to `odb_read_stream`. This mirrors the `odb_write_stream` structure that
we already have.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
seen
Patrick Steinhardt 2025-11-23 19:59:26 +01:00 committed by Junio C Hamano
parent 01f9010cc7
commit 6bdda3a3b0
7 changed files with 43 additions and 43 deletions

View File

@ -129,7 +129,7 @@ static void write_trailer(void)
*/
static int stream_blocked(struct repository *r, const struct object_id *oid)
{
struct git_istream *st;
struct odb_read_stream *st;
enum object_type type;
unsigned long sz;
char buf[BLOCKSIZE];

View File

@ -309,7 +309,7 @@ static int write_zip_entry(struct archiver_args *args,
enum zip_method method;
unsigned char *out;
void *deflated = NULL;
struct git_istream *stream = NULL;
struct odb_read_stream *stream = NULL;
unsigned long flags = 0;
int is_binary = -1;
const char *path_without_prefix = path + args->baselen;

View File

@ -762,7 +762,7 @@ static void find_ref_delta_children(const struct object_id *oid,

struct compare_data {
struct object_entry *entry;
struct git_istream *st;
struct odb_read_stream *st;
unsigned char *buf;
unsigned long buf_size;
};

View File

@ -404,7 +404,7 @@ static unsigned long do_compress(void **pptr, unsigned long size)
return stream.total_out;
}

static unsigned long write_large_blob_data(struct git_istream *st, struct hashfile *f,
static unsigned long write_large_blob_data(struct odb_read_stream *st, struct hashfile *f,
const struct object_id *oid)
{
git_zstream stream;
@ -513,7 +513,7 @@ static unsigned long write_no_reuse_object(struct hashfile *f, struct object_ent
unsigned hdrlen;
enum object_type type;
void *buf;
struct git_istream *st = NULL;
struct odb_read_stream *st = NULL;
const unsigned hashsz = the_hash_algo->rawsz;

if (!usable_delta) {

View File

@ -134,7 +134,7 @@ int stream_object_signature(struct repository *r, const struct object_id *oid)
struct object_id real_oid;
unsigned long size;
enum object_type obj_type;
struct git_istream *st;
struct odb_read_stream *st;
struct git_hash_ctx c;
char hdr[MAX_HEADER_LEN];
int hdrlen;

View File

@ -14,17 +14,17 @@
#include "replace-object.h"
#include "packfile.h"

typedef int (*open_istream_fn)(struct git_istream *,
typedef int (*open_istream_fn)(struct odb_read_stream *,
struct repository *,
const struct object_id *,
enum object_type *);
typedef int (*close_istream_fn)(struct git_istream *);
typedef ssize_t (*read_istream_fn)(struct git_istream *, char *, size_t);
typedef int (*close_istream_fn)(struct odb_read_stream *);
typedef ssize_t (*read_istream_fn)(struct odb_read_stream *, char *, size_t);

#define FILTER_BUFFER (1024*16)

struct filtered_istream {
struct git_istream *upstream;
struct odb_read_stream *upstream;
struct stream_filter *filter;
char ibuf[FILTER_BUFFER];
char obuf[FILTER_BUFFER];
@ -33,7 +33,7 @@ struct filtered_istream {
int input_finished;
};

struct git_istream {
struct odb_read_stream {
open_istream_fn open;
close_istream_fn close;
read_istream_fn read;
@ -71,7 +71,7 @@ struct git_istream {
*
*****************************************************************/

static void close_deflated_stream(struct git_istream *st)
static void close_deflated_stream(struct odb_read_stream *st)
{
if (st->z_state == z_used)
git_inflate_end(&st->z);
@ -84,13 +84,13 @@ static void close_deflated_stream(struct git_istream *st)
*
*****************************************************************/

static int close_istream_filtered(struct git_istream *st)
static int close_istream_filtered(struct odb_read_stream *st)
{
free_stream_filter(st->u.filtered.filter);
return close_istream(st->u.filtered.upstream);
}

static ssize_t read_istream_filtered(struct git_istream *st, char *buf,
static ssize_t read_istream_filtered(struct odb_read_stream *st, char *buf,
size_t sz)
{
struct filtered_istream *fs = &(st->u.filtered);
@ -150,10 +150,10 @@ static ssize_t read_istream_filtered(struct git_istream *st, char *buf,
return filled;
}

static struct git_istream *attach_stream_filter(struct git_istream *st,
struct stream_filter *filter)
static struct odb_read_stream *attach_stream_filter(struct odb_read_stream *st,
struct stream_filter *filter)
{
struct git_istream *ifs = xmalloc(sizeof(*ifs));
struct odb_read_stream *ifs = xmalloc(sizeof(*ifs));
struct filtered_istream *fs = &(ifs->u.filtered);

ifs->close = close_istream_filtered;
@ -173,7 +173,7 @@ static struct git_istream *attach_stream_filter(struct git_istream *st,
*
*****************************************************************/

static ssize_t read_istream_loose(struct git_istream *st, char *buf, size_t sz)
static ssize_t read_istream_loose(struct odb_read_stream *st, char *buf, size_t sz)
{
size_t total_read = 0;

@ -218,14 +218,14 @@ static ssize_t read_istream_loose(struct git_istream *st, char *buf, size_t sz)
return total_read;
}

static int close_istream_loose(struct git_istream *st)
static int close_istream_loose(struct odb_read_stream *st)
{
close_deflated_stream(st);
munmap(st->u.loose.mapped, st->u.loose.mapsize);
return 0;
}

static int open_istream_loose(struct git_istream *st, struct repository *r,
static int open_istream_loose(struct odb_read_stream *st, struct repository *r,
const struct object_id *oid,
enum object_type *type)
{
@ -277,7 +277,7 @@ error:
*
*****************************************************************/

static ssize_t read_istream_pack_non_delta(struct git_istream *st, char *buf,
static ssize_t read_istream_pack_non_delta(struct odb_read_stream *st, char *buf,
size_t sz)
{
size_t total_read = 0;
@ -336,13 +336,13 @@ static ssize_t read_istream_pack_non_delta(struct git_istream *st, char *buf,
return total_read;
}

static int close_istream_pack_non_delta(struct git_istream *st)
static int close_istream_pack_non_delta(struct odb_read_stream *st)
{
close_deflated_stream(st);
return 0;
}

static int open_istream_pack_non_delta(struct git_istream *st,
static int open_istream_pack_non_delta(struct odb_read_stream *st,
struct repository *r UNUSED,
const struct object_id *oid UNUSED,
enum object_type *type UNUSED)
@ -380,13 +380,13 @@ static int open_istream_pack_non_delta(struct git_istream *st,
*
*****************************************************************/

static int close_istream_incore(struct git_istream *st)
static int close_istream_incore(struct odb_read_stream *st)
{
free(st->u.incore.buf);
return 0;
}

static ssize_t read_istream_incore(struct git_istream *st, char *buf, size_t sz)
static ssize_t read_istream_incore(struct odb_read_stream *st, char *buf, size_t sz)
{
size_t read_size = sz;
size_t remainder = st->size - st->u.incore.read_ptr;
@ -400,7 +400,7 @@ static ssize_t read_istream_incore(struct git_istream *st, char *buf, size_t sz)
return read_size;
}

static int open_istream_incore(struct git_istream *st, struct repository *r,
static int open_istream_incore(struct odb_read_stream *st, struct repository *r,
const struct object_id *oid, enum object_type *type)
{
struct object_info oi = OBJECT_INFO_INIT;
@ -420,7 +420,7 @@ static int open_istream_incore(struct git_istream *st, struct repository *r,
* static helpers variables and functions for users of streaming interface
*****************************************************************************/

static int istream_source(struct git_istream *st,
static int istream_source(struct odb_read_stream *st,
struct repository *r,
const struct object_id *oid,
enum object_type *type)
@ -458,25 +458,25 @@ static int istream_source(struct git_istream *st,
* Users of streaming interface
****************************************************************/

int close_istream(struct git_istream *st)
int close_istream(struct odb_read_stream *st)
{
int r = st->close(st);
free(st);
return r;
}

ssize_t read_istream(struct git_istream *st, void *buf, size_t sz)
ssize_t read_istream(struct odb_read_stream *st, void *buf, size_t sz)
{
return st->read(st, buf, sz);
}

struct git_istream *open_istream(struct repository *r,
const struct object_id *oid,
enum object_type *type,
unsigned long *size,
struct stream_filter *filter)
struct odb_read_stream *open_istream(struct repository *r,
const struct object_id *oid,
enum object_type *type,
unsigned long *size,
struct stream_filter *filter)
{
struct git_istream *st = xmalloc(sizeof(*st));
struct odb_read_stream *st = xmalloc(sizeof(*st));
const struct object_id *real = lookup_replace_object(r, oid);
int ret = istream_source(st, r, real, type);

@ -493,7 +493,7 @@ struct git_istream *open_istream(struct repository *r,
}
if (filter) {
/* Add "&& !is_null_stream_filter(filter)" for performance */
struct git_istream *nst = attach_stream_filter(st, filter);
struct odb_read_stream *nst = attach_stream_filter(st, filter);
if (!nst) {
close_istream(st);
return NULL;
@ -508,7 +508,7 @@ struct git_istream *open_istream(struct repository *r,
int stream_blob_to_fd(int fd, const struct object_id *oid, struct stream_filter *filter,
int can_seek)
{
struct git_istream *st;
struct odb_read_stream *st;
enum object_type type;
unsigned long sz;
ssize_t kept = 0;

View File

@ -7,14 +7,14 @@
#include "object.h"

/* opaque */
struct git_istream;
struct odb_read_stream;
struct stream_filter;

struct git_istream *open_istream(struct repository *, const struct object_id *,
enum object_type *, unsigned long *,
struct stream_filter *);
int close_istream(struct git_istream *);
ssize_t read_istream(struct git_istream *, void *, size_t);
struct odb_read_stream *open_istream(struct repository *, const struct object_id *,
enum object_type *, unsigned long *,
struct stream_filter *);
int close_istream(struct odb_read_stream *);
ssize_t read_istream(struct odb_read_stream *, void *, size_t);

int stream_blob_to_fd(int fd, const struct object_id *, struct stream_filter *, int can_seek);