Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=fdc80b3e7db96b9e1be3afcf8d4c19c89ac1a04d
commit fdc80b3e7db96b9e1be3afcf8d4c19c89ac1a04d Author: Michel Hermier <herm...@frugalware.org> Date: Fri Nov 15 12:11:40 2013 +0100 libpacman: Add pacman_download_state_size to the public API. diff --git a/doc/libpacman-changes.txt b/doc/libpacman-changes.txt index e62aeda..ce9ade6 100644 --- a/doc/libpacman-changes.txt +++ b/doc/libpacman-changes.txt @@ -36,6 +36,8 @@ pmconflict_t: is now public and deprecate PM_CONFLICT. pmdb_t: is now public and deprecate PM_DB. +pacman_download_state_size: Access to a download final size. + pmdepmissing_t: is now public and deprecate PM_DEPMISS. pmgrp_t: is now public and deprecate PM_GRP. diff --git a/lib/libpacman/pacman.c b/lib/libpacman/pacman.c index 4a4a232..5ac14fb 100644 --- a/lib/libpacman/pacman.c +++ b/lib/libpacman/pacman.c @@ -412,6 +412,24 @@ pmlist_t *pacman_db_getgrpcache(pmdb_t *db) /** @} */ +/** @defgroup pacman_download_state Download States Functions + * @brief Functions to informations from libpacman downloads + * @{ + */ + +/** Get the final size of the download + * @param download_state pointer to the download state to get the informations from. + * @return the size of the file or ((off_t) -1) in case of error. + */ +off_t pacman_download_state_size(const pmdownload_state_t *download_state) +{ + ASSERT(download_state != NULL, return((off_t) -1)); + + return download_state->dst_size; +} + +/** @} */ + /** @defgroup pacman_packages Package Functions * @brief Functions to manipulate libpacman packages * @{ diff --git a/lib/libpacman/pacman.h b/lib/libpacman/pacman.h index c42cef3..5c65bf5 100644 --- a/lib/libpacman/pacman.h +++ b/lib/libpacman/pacman.h @@ -24,6 +24,8 @@ #ifndef _PACMAN_H #define _PACMAN_H +#include <sys/types.h> // off_t + #ifdef __cplusplus extern "C" { #endif @@ -169,6 +171,12 @@ pmlist_t *pacman_db_search(pmdb_t *db); pmlist_t *pacman_db_test(pmdb_t *db); /* + * Download states + */ + +off_t pacman_download_state_size(const pmdownload_state_t *download_state); + +/* * Packages */ diff --git a/src/pacman-g2/download.c b/src/pacman-g2/download.c index a5646cc..35ead4d 100644 --- a/src/pacman-g2/download.c +++ b/src/pacman-g2/download.c @@ -53,9 +53,9 @@ extern config_t *config; extern unsigned int maxcols; /* FIXME: log10() want float */ -int log_progress(pmdownload_state_t *download_state, int xfered, void *arg) +int log_progress(const pmdownload_state_t *download_state, int xfered, void *arg) { - int fsz = *(int*)arg; + int fsz = pacman_download_state_size(download_state); int pct = ((float)(xfered+offset) / fsz) * 100; static int lastpct=0; unsigned int i, cur; diff --git a/src/pacman-g2/download.h b/src/pacman-g2/download.h index 7ad04fc..151a2bf 100644 --- a/src/pacman-g2/download.h +++ b/src/pacman-g2/download.h @@ -30,7 +30,7 @@ extern float rate; extern int xfered1; extern unsigned int eta_h, eta_m, eta_s, remain, howmany; -int log_progress(pmdownload_state_t *download_state, int xfered, void *arg); +int log_progress(const pmdownload_state_t *download_state, int xfered, void *arg); #endif /* _PM_DOWNLOAD_H */ _______________________________________________ Frugalware-git mailing list Frugalware-git@frugalware.org http://frugalware.org/mailman/listinfo/frugalware-git