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