object-store: move function declarations to their respective subsystems
We carry declarations for a couple of functions in "object-store.h" that are not defined in "object-store.c", but in a different subsystem. Move these declarations to the respective headers whose matching code files carry the corresponding definition. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
0b8ed25b66
commit
1a793261c5
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "git-zlib.h"
|
||||
#include "object.h"
|
||||
#include "object-store.h"
|
||||
|
||||
struct index_state;
|
||||
|
||||
@@ -25,6 +26,16 @@ int index_path(struct index_state *istate, struct object_id *oid, const char *pa
|
||||
|
||||
struct object_directory;
|
||||
|
||||
/*
|
||||
* Populate and return the loose object cache array corresponding to the
|
||||
* given object ID.
|
||||
*/
|
||||
struct oidtree *odb_loose_cache(struct object_directory *odb,
|
||||
const struct object_id *oid);
|
||||
|
||||
/* Empty the loose object cache for the specified object directory. */
|
||||
void odb_clear_loose_cache(struct object_directory *odb);
|
||||
|
||||
/*
|
||||
* Put in `buf` the name of the file in the local object database that
|
||||
* would be used to store a loose object with the specified oid.
|
||||
@@ -42,6 +53,68 @@ int has_loose_object_nonlocal(const struct object_id *);
|
||||
|
||||
int has_loose_object(const struct object_id *);
|
||||
|
||||
void *map_loose_object(struct repository *r, const struct object_id *oid,
|
||||
unsigned long *size);
|
||||
|
||||
/*
|
||||
* Iterate over the files in the loose-object parts of the object
|
||||
* directory "path", triggering the following callbacks:
|
||||
*
|
||||
* - loose_object is called for each loose object we find.
|
||||
*
|
||||
* - loose_cruft is called for any files that do not appear to be
|
||||
* loose objects. Note that we only look in the loose object
|
||||
* directories "objects/[0-9a-f]{2}/", so we will not report
|
||||
* "objects/foobar" as cruft.
|
||||
*
|
||||
* - loose_subdir is called for each top-level hashed subdirectory
|
||||
* of the object directory (e.g., "$OBJDIR/f0"). It is called
|
||||
* after the objects in the directory are processed.
|
||||
*
|
||||
* Any callback that is NULL will be ignored. Callbacks returning non-zero
|
||||
* will end the iteration.
|
||||
*
|
||||
* In the "buf" variant, "path" is a strbuf which will also be used as a
|
||||
* scratch buffer, but restored to its original contents before
|
||||
* the function returns.
|
||||
*/
|
||||
typedef int each_loose_object_fn(const struct object_id *oid,
|
||||
const char *path,
|
||||
void *data);
|
||||
typedef int each_loose_cruft_fn(const char *basename,
|
||||
const char *path,
|
||||
void *data);
|
||||
typedef int each_loose_subdir_fn(unsigned int nr,
|
||||
const char *path,
|
||||
void *data);
|
||||
int for_each_file_in_obj_subdir(unsigned int subdir_nr,
|
||||
struct strbuf *path,
|
||||
each_loose_object_fn obj_cb,
|
||||
each_loose_cruft_fn cruft_cb,
|
||||
each_loose_subdir_fn subdir_cb,
|
||||
void *data);
|
||||
int for_each_loose_file_in_objdir(const char *path,
|
||||
each_loose_object_fn obj_cb,
|
||||
each_loose_cruft_fn cruft_cb,
|
||||
each_loose_subdir_fn subdir_cb,
|
||||
void *data);
|
||||
int for_each_loose_file_in_objdir_buf(struct strbuf *path,
|
||||
each_loose_object_fn obj_cb,
|
||||
each_loose_cruft_fn cruft_cb,
|
||||
each_loose_subdir_fn subdir_cb,
|
||||
void *data);
|
||||
|
||||
/*
|
||||
* Iterate over all accessible loose objects without respect to
|
||||
* reachability. By default, this includes both local and alternate objects.
|
||||
* The order in which objects are visited is unspecified.
|
||||
*
|
||||
* Any flags specific to packs are ignored.
|
||||
*/
|
||||
int for_each_loose_object(each_loose_object_fn, void *,
|
||||
enum for_each_object_flags flags);
|
||||
|
||||
|
||||
/**
|
||||
* format_object_header() is a thin wrapper around s xsnprintf() that
|
||||
* writes the initial "<type> <obj-len>" part of the loose object
|
||||
@@ -158,6 +231,10 @@ int finalize_object_file(const char *tmpfile, const char *filename);
|
||||
int finalize_object_file_flags(const char *tmpfile, const char *filename,
|
||||
enum finalize_object_file_flags flags);
|
||||
|
||||
void hash_object_file(const struct git_hash_algo *algo, const void *buf,
|
||||
unsigned long len, enum object_type type,
|
||||
struct object_id *oid);
|
||||
|
||||
/* Helper to check and "touch" a file */
|
||||
int check_and_freshen_file(const char *fn, int freshen);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user