From b5a8aa94bf144d77a922074c7dad38afcf0a6d24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Mon, 22 Aug 2011 15:18:19 +0200 Subject: [PATCH] Don't hide the transport details MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Transports shouldn't get used outside of the library, so don't expose accessor functions. Signed-off-by: Carlos Martín Nieto --- include/git2/transport.h | 8 ------- src/fetch.c | 9 ++++---- src/remote.c | 11 +++++---- src/transport.c | 50 ---------------------------------------- src/transport.h | 7 ------ 5 files changed, 11 insertions(+), 74 deletions(-) diff --git a/include/git2/transport.h b/include/git2/transport.h index 982b081f8..d19eb8a88 100644 --- a/include/git2/transport.h +++ b/include/git2/transport.h @@ -45,14 +45,6 @@ GIT_BEGIN_DECL */ GIT_EXTERN(int) git_transport_new(git_transport **transport, const char *url); -GIT_EXTERN(int) git_transport_connect(git_transport *transport, int direction); - -GIT_EXTERN(int) git_transport_ls(git_transport *transport, git_headarray *array); -GIT_EXTERN(int) git_transport_close(git_transport *transport); -GIT_EXTERN(void) git_transport_free(git_transport *transport); - -GIT_EXTERN(int) git_transport_add(git_transport *transport, const char *prefix); - /** @} */ GIT_END_DECL #endif diff --git a/src/fetch.c b/src/fetch.c index 0dce875f8..74c93da8d 100644 --- a/src/fetch.c +++ b/src/fetch.c @@ -48,7 +48,7 @@ static int filter_wants(git_remote *remote) if (error < GIT_SUCCESS) return error; - error = git_transport_ls(t, &refs); + error = t->ls(t, &refs); if (error < GIT_SUCCESS) { error = git__rethrow(error, "Failed to get remote ref list"); goto cleanup; @@ -102,6 +102,7 @@ int git_fetch_negotiate(git_remote *remote) { int error; git_headarray *list = &remote->refs; + git_transport *t = remote->transport; error = filter_wants(remote); if (error < GIT_SUCCESS) @@ -117,11 +118,11 @@ int git_fetch_negotiate(git_remote *remote) * Now we have everything set up so we can start tell the server * what we want and what we have. */ - error = git_transport_send_wants(remote->transport, list); + error = t->send_wants(t, list); if (error < GIT_SUCCESS) return git__rethrow(error, "Failed to send want list"); - return git_transport_negotiate_fetch(remote->transport, remote->repo, &remote->refs); + return t->negotiate_fetch(t, remote->repo, &remote->refs); } int git_fetch_download_pack(char **out, git_remote *remote) @@ -131,5 +132,5 @@ int git_fetch_download_pack(char **out, git_remote *remote) return GIT_SUCCESS; } - return git_transport_download_pack(out, remote->transport, remote->repo); + return remote->transport->download_pack(out, remote->transport, remote->repo); } diff --git a/src/remote.c b/src/remote.c index 74c5afad5..765e93823 100644 --- a/src/remote.c +++ b/src/remote.c @@ -184,7 +184,7 @@ int git_remote_connect(git_remote *remote, int direction) if (error < GIT_SUCCESS) return git__rethrow(error, "Failed to create transport"); - error = git_transport_connect(t, direction); + error = t->connect(t, direction); if (error < GIT_SUCCESS) { error = git__rethrow(error, "Failed to connect the transport"); goto cleanup; @@ -194,14 +194,14 @@ int git_remote_connect(git_remote *remote, int direction) cleanup: if (error < GIT_SUCCESS) - git_transport_free(t); + t->free(t); return error; } int git_remote_ls(git_remote *remote, git_headarray *refs) { - return git_transport_ls(remote->transport, refs); + return remote->transport->ls(remote->transport, refs); } int git_remote_negotiate(git_remote *remote) @@ -255,8 +255,9 @@ void git_remote_free(git_remote *remote) free(remote->name); if (remote->transport != NULL) { if (remote->transport->connected) - git_transport_close(remote->transport); - git_transport_free(remote->transport); + remote->transport->close(remote->transport); + + remote->transport->free(remote->transport); } free(remote); } diff --git a/src/transport.c b/src/transport.c index 91723df73..91f621c46 100644 --- a/src/transport.c +++ b/src/transport.c @@ -69,53 +69,3 @@ int git_transport_new(git_transport **out, const char *url) return GIT_SUCCESS; } - -int git_transport_connect(git_transport *transport, int direction) -{ - return transport->connect(transport, direction); -} - -int git_transport_ls(git_transport *transport, git_headarray *array) -{ - return transport->ls(transport, array); -} - -int git_transport_send_wants(struct git_transport *transport, git_headarray *array) -{ - return transport->send_wants(transport, array); -} - -int git_transport_send_have(struct git_transport *transport, git_oid *oid) -{ - return transport->send_have(transport, oid); -} - -int git_transport_negotiate_fetch(struct git_transport *transport, git_repository *repo, git_headarray *list) -{ - return transport->negotiate_fetch(transport, repo, list); -} - -int git_transport_send_flush(struct git_transport *transport) -{ - return transport->send_flush(transport); -} - -int git_transport_send_done(struct git_transport *transport) -{ - return transport->send_done(transport); -} - -int git_transport_download_pack(char **out, git_transport *transport, git_repository *repo) -{ - return transport->download_pack(out, transport, repo); -} - -int git_transport_close(git_transport *transport) -{ - return transport->close(transport); -} - -void git_transport_free(git_transport *transport) -{ - transport->free(transport); -} diff --git a/src/transport.h b/src/transport.h index 94f88c4bd..9489ac803 100644 --- a/src/transport.h +++ b/src/transport.h @@ -103,11 +103,4 @@ int git_transport_local(struct git_transport **transport); int git_transport_git(struct git_transport **transport); int git_transport_dummy(struct git_transport **transport); -int git_transport_send_wants(struct git_transport *transport, git_headarray *array); -int git_transport_negotiate_fetch(struct git_transport *transport, git_repository *repo, git_headarray *array); -int git_transport_send_have(struct git_transport *transport, git_oid *oid); -int git_transport_send_done(struct git_transport *transport); -int git_transport_send_flush(struct git_transport *transport); -int git_transport_download_pack(char **out, git_transport *transport, git_repository *repo); - #endif