1 /* 2 * libdpkg - Debian packaging suite library routines 3 * progress.h - generic progress reporting 4 * 5 * Copyright © 2009 Guillem Jover <guillem@debian.org> 6 * 7 * This is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation; either version 2 of the License, or 10 * (at your option) any later version. 11 * 12 * This is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program. If not, see <https://www.gnu.org/licenses/>. 19 */ 20 21 #ifndef LIBDPKG_PROGRESS_H 22 #define LIBDPKG_PROGRESS_H 23 24 #include <stdbool.h> 25 26 #include <dpkg/macros.h> 27 28 DPKG_BEGIN_DECLS 29 30 /** 31 * @defgroup progress Progress reporting 32 * @ingroup dpkg-internal 33 * @{ 34 */ 35 36 struct progress { 37 const char *text; 38 39 int max; 40 int cur; 41 int last_percent; 42 43 bool on_tty; 44 }; 45 46 void progress_init(struct progress *progress, const char *text, int max); 47 void progress_step(struct progress *progress); 48 void progress_done(struct progress *progress); 49 50 /** @} */ 51 52 DPKG_END_DECLS 53 54 #endif 55