diff options
Diffstat (limited to 'src/reader.h')
-rw-r--r-- | src/reader.h | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/src/reader.h b/src/reader.h deleted file mode 100644 index 18a6a1103..000000000 --- a/src/reader.h +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_reader_h__ -#define INCLUDE_reader_h__ - -#include "common.h" - -/* Returned when the workdir does not match the index */ -#define GIT_READER_MISMATCH 1 - -typedef struct git_reader git_reader; - -/* - * The `git_reader` structure is a generic interface for reading the - * contents of a file by its name, and implementations are provided - * for reading out of a tree, the index, and the working directory. - * - * Note that the reader implementation is meant to have a short - * lifecycle and does not increase the refcount of the object that - * it's reading. Callers should ensure that they do not use a - * reader after disposing the underlying object that it reads. - */ -struct git_reader { - int (*read)(git_buf *out, git_oid *out_oid, git_filemode_t *mode, git_reader *reader, const char *filename); -}; - -/** - * Create a `git_reader` that will allow random access to the given - * tree. Paths requested via `git_reader_read` will be rooted at this - * tree, callers are not expected to recurse through tree lookups. Thus, - * you can request to read `/src/foo.c` and the tree provided to this - * function will be searched to find another tree named `src`, which - * will then be opened to find `foo.c`. - * - * @param out The reader for the given tree - * @param tree The tree object to read - * @return 0 on success, or an error code < 0 - */ -extern int git_reader_for_tree( - git_reader **out, - git_tree *tree); - -/** - * Create a `git_reader` that will allow random access to the given - * index, or the repository's index. - * - * @param out The reader for the given index - * @param repo The repository containing the index - * @param index The index to read, or NULL to use the repository's index - * @return 0 on success, or an error code < 0 - */ -extern int git_reader_for_index( - git_reader **out, - git_repository *repo, - git_index *index); - -/** - * Create a `git_reader` that will allow random access to the given - * repository's working directory. Note that the contents are read - * in repository format, meaning any workdir -> odb filters are - * applied. - * - * If `validate_index` is set to true, reads of files will hash the - * on-disk contents and ensure that the resulting object ID matches - * the repository's index. This ensures that the working directory - * is unmodified from the index contents. - * - * @param out The reader for the given working directory - * @param repo The repository containing the working directory - * @param validate_index If true, the working directory contents will - * be compared to the index contents during read to ensure that - * the working directory is unmodified. - * @return 0 on success, or an error code < 0 - */ -extern int git_reader_for_workdir( - git_reader **out, - git_repository *repo, - bool validate_index); - -/** - * Read the given filename from the reader and populate the given buffer - * with the contents and the given oid with the object ID. - * - * @param out The buffer to populate with the file contents - * @param out_id The oid to populate with the object ID - * @param reader The reader to read - * @param filename The filename to read from the reader - */ -extern int git_reader_read( - git_buf *out, - git_oid *out_id, - git_filemode_t *out_filemode, - git_reader *reader, - const char *filename); - -/** - * Free the given reader and any associated objects. - * - * @param reader The reader to free - */ -extern void git_reader_free(git_reader *reader); - -#endif |