| #ifndef FETCH_OBJECT_INFO_H | |
| #define FETCH_OBJECT_INFO_H | |
| #include "object.h" | |
| #include "pkt-line.h" | |
| #include "protocol.h" | |
| struct fetch_object_info_results { | |
| size_t *sizes; | |
| enum object_type *types; | |
| uint8_t *unrecognized; | |
| size_t nr; | |
| unsigned wants_size:1; | |
| unsigned wants_type:1; | |
| }; | |
| #define FETCH_OBJECT_INFO_RESULTS_INIT { 0 } | |
| struct oid_array; | |
| /* | |
| * Sends git-cat-file object-info command into the request buf and reads the | |
| * results from packets. | |
| * | |
| * The caller sets the wants_* flags in "results" to indicate which attributes | |
| * it is interested in. On return, "results" holds one array per attribute that | |
| * the server both advertised and answered with. An array left NULL means the | |
| * attribute is not available. | |
| * Release them with free_fetch_object_info_results(). | |
| */ | |
| void fetch_object_info(enum protocol_version version, | |
| const struct string_list *server_options, | |
| const struct oid_array *oids, | |
| struct packet_reader *reader, | |
| struct fetch_object_info_results *results, | |
| int stateless_rpc, | |
| int fd_out); | |
| void free_fetch_object_info_results(struct fetch_object_info_results *results); | |
| #endif /* FETCH_OBJECT_INFO_H */ |