summaryrefslogtreecommitdiff
path: root/wrapper.c
diff options
context:
space:
mode:
authorAidan Nulman <[email protected]>2014-04-03 16:41:43 -0400
committerAidan Nulman <[email protected]>2014-04-03 16:41:43 -0400
commitd9f4adff6c548a6cb6f00258c99129c7e41062b3 (patch)
tree264a73dcf05f99cec7395b20b3488ea202c3cadf /wrapper.c
parentb5e60dc106828b308fdb7e69fe10a0d2dec4eece (diff)
parent9cd1d129bcd567ef65137783a603f8d898d8d933 (diff)
Merge branch 'master' into custom_odb
Conflicts: odb.go wrapper.c
Diffstat (limited to 'wrapper.c')
-rw-r--r--wrapper.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/wrapper.c b/wrapper.c
index 66a6110..f2232e4 100644
--- a/wrapper.c
+++ b/wrapper.c
@@ -42,4 +42,42 @@ void _go_git_refdb_backend_free(git_refdb_backend *backend)
return;
}
+
+void _go_git_setup_callbacks(git_remote_callbacks *callbacks) {
+ typedef int (*progress_cb)(const char *str, int len, void *data);
+ typedef int (*completion_cb)(git_remote_completion_type type, void *data);
+ typedef int (*credentials_cb)(git_cred **cred, const char *url, const char *username_from_url, unsigned int allowed_types, void *data);
+ typedef int (*transfer_progress_cb)(const git_transfer_progress *stats, void *data);
+ typedef int (*update_tips_cb)(const char *refname, const git_oid *a, const git_oid *b, void *data);
+ callbacks->progress = (progress_cb)progressCallback;
+ callbacks->completion = (completion_cb)completionCallback;
+ callbacks->credentials = (credentials_cb)credentialsCallback;
+ callbacks->transfer_progress = (transfer_progress_cb)transferProgressCallback;
+ callbacks->update_tips = (update_tips_cb)updateTipsCallback;
+}
+
+typedef int (*status_foreach_cb)(const char *ref, const char *msg, void *data);
+
+int _go_git_push_status_foreach(git_push *push, void *data)
+{
+ return git_push_status_foreach(push, (status_foreach_cb)statusForeach, data);
+}
+
+int _go_git_push_set_callbacks(git_push *push, void *packbuilder_progress_data, void *transfer_progress_data)
+{
+ return git_push_set_callbacks(push, packbuilderProgress, packbuilder_progress_data, pushTransferProgress, transfer_progress_data);
+}
+
+int _go_blob_chunk_cb(char *buffer, size_t maxLen, void *payload)
+{
+ return blobChunkCb(buffer, maxLen, payload);
+}
+
+int _go_git_blob_create_fromchunks(git_oid *id,
+ git_repository *repo,
+ const char *hintpath,
+ void *payload)
+{
+ return git_blob_create_fromchunks(id, repo, hintpath, _go_blob_chunk_cb, payload);
+}
/* EOF */