diff options
| author | Ben Straub <bs@github.com> | 2012-10-16 13:29:12 -0700 |
|---|---|---|
| committer | Ben Straub <bs@github.com> | 2012-10-19 19:34:15 -0700 |
| commit | d57c47dc07044b4fd3f5e9d57615329692823111 (patch) | |
| tree | 4148ff7f84ad40973a6414c29a41259c5f151010 /examples/network/fetch.c | |
| parent | 3028be0723f42f31b1973da9f19f2b0468b11754 (diff) | |
| download | libgit2-d57c47dc07044b4fd3f5e9d57615329692823111.tar.gz | |
Add accessor for git_remote's stats field
Also converted the network example to use it.
Diffstat (limited to 'examples/network/fetch.c')
| -rw-r--r-- | examples/network/fetch.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/examples/network/fetch.c b/examples/network/fetch.c index fa941b97a..6c342be96 100644 --- a/examples/network/fetch.c +++ b/examples/network/fetch.c @@ -9,7 +9,6 @@ struct dl_data { git_remote *remote; git_off_t *bytes; - git_indexer_stats *stats; int ret; int finished; }; @@ -35,7 +34,7 @@ static void *download(void *ptr) // Download the packfile and index it. This function updates the // amount of received data and the indexer stats which lets you // inform the user about progress. - if (git_remote_download(data->remote, data->bytes, data->stats) < 0) { + if (git_remote_download(data->remote, data->bytes) < 0) { data->ret = -1; goto exit; } @@ -70,14 +69,14 @@ int fetch(git_repository *repo, int argc, char **argv) { git_remote *remote = NULL; git_off_t bytes = 0; - git_indexer_stats stats; + const git_indexer_stats *stats; pthread_t worker; struct dl_data data; git_remote_callbacks callbacks; argc = argc; // Figure out whether it's a named remote or a URL - printf("Fetching %s\n", argv[1]); + printf("Fetching %s for repo %p\n", argv[1], repo); if (git_remote_load(&remote, repo, argv[1]) < 0) { if (git_remote_new(&remote, repo, NULL, argv[1], NULL) < 0) return -1; @@ -92,10 +91,10 @@ int fetch(git_repository *repo, int argc, char **argv) // Set up the information for the background worker thread data.remote = remote; data.bytes = &bytes; - data.stats = &stats; data.ret = 0; data.finished = 0; - memset(&stats, 0, sizeof(stats)); + + stats = git_remote_stats(remote); pthread_create(&worker, NULL, download, &data); @@ -106,16 +105,16 @@ int fetch(git_repository *repo, int argc, char **argv) do { usleep(10000); - if (stats.total > 0) + if (stats->total > 0) printf("Received %d/%d objects (%d) in %d bytes\r", - stats.received, stats.total, stats.processed, bytes); + stats->received, stats->total, stats->processed, bytes); } while (!data.finished); if (data.ret < 0) goto on_error; pthread_join(worker, NULL); - printf("\rReceived %d/%d objects in %zu bytes\n", stats.processed, stats.total, bytes); + printf("\rReceived %d/%d objects in %zu bytes\n", stats->processed, stats->total, bytes); // Disconnect the underlying connection to prevent from idling. git_remote_disconnect(remote); |
