walker.hon commit name-rev: allow converting the exact object name at the tip of a ref (b23e0b9)
   1#ifndef WALKER_H
   2#define WALKER_H
   3
   4#include "remote.h"
   5
   6struct walker {
   7        void *data;
   8        int (*fetch_ref)(struct walker *, struct ref *ref);
   9        void (*prefetch)(struct walker *, unsigned char *sha1);
  10        int (*fetch)(struct walker *, unsigned char *sha1);
  11        void (*cleanup)(struct walker *);
  12        int get_tree;
  13        int get_history;
  14        int get_all;
  15        int get_verbosely;
  16        int get_recover;
  17
  18        int corrupt_object_found;
  19};
  20
  21/* Report what we got under get_verbosely */
  22void walker_say(struct walker *walker, const char *, const char *);
  23
  24/* Load pull targets from stdin */
  25int walker_targets_stdin(char ***target, const char ***write_ref);
  26
  27/* Free up loaded targets */
  28void walker_targets_free(int targets, char **target, const char **write_ref);
  29
  30/* If write_ref is set, the ref filename to write the target value to. */
  31/* If write_ref_log_details is set, additional text will appear in the ref log. */
  32int walker_fetch(struct walker *impl, int targets, char **target,
  33                 const char **write_ref, const char *write_ref_log_details);
  34
  35void walker_free(struct walker *walker);
  36
  37struct walker *get_http_walker(const char *url);
  38
  39#endif /* WALKER_H */