gwenhywfar 5.14.1
progressdata.c
Go to the documentation of this file.
1/***************************************************************************
2 begin : Tue Feb 16 2010
3 copyright : (C) 2010 by Martin Preuss
4 email : martin@libchipcard.de
5
6 ***************************************************************************
7 * Please see toplevel file COPYING for license details *
8 ***************************************************************************/
9
10
11#ifdef HAVE_CONFIG_H
12# include <config.h>
13#endif
14
15#define DISABLE_DEBUGLOG
16
17
18#include "progressdata_p.h"
19
20#include <gwenhywfar/misc.h>
21#include <gwenhywfar/debug.h>
22
23
24
25
27
28
29
30
32 uint32_t id,
33 uint32_t progressFlags,
34 const char *title,
35 const char *text,
36 uint64_t total)
37{
39
42
43 pd->gui=gui;
44 pd->id=id;
45 pd->flags=progressFlags;
46 if (title)
47 pd->title=strdup(title);
48 if (text)
49 pd->text=strdup(text);
50 pd->total=total;
51
52 pd->logBuf=GWEN_Buffer_new(0, 1024, 0, 1);
53 pd->startTime=time(0);
54
55 return pd;
56}
57
58
59
61{
62 if (pd) {
64 free(pd->title);
65 free(pd->text);
66 GWEN_Buffer_free(pd->logBuf);
68 }
69}
70
71
72
74{
75 assert(pd);
76 return pd->gui;
77}
78
79
80
82{
83 assert(pd);
84 return pd->id;
85}
86
87
88
90{
91 assert(pd);
92 return pd->previousId;
93}
94
95
96
98{
99 assert(pd);
100 pd->previousId=i;
101}
102
103
104
106{
107 assert(pd);
108 return pd->flags;
109}
110
111
112
114{
115 assert(pd);
116 pd->flags|=fl;
117}
118
119
120
122{
123 assert(pd);
124 pd->flags&=~fl;
125}
126
127
128
130{
131 assert(pd);
132 return pd->title;
133}
134
135
136
138{
139 assert(pd);
140 return pd->text;
141}
142
143
144
146{
147 assert(pd);
148 return pd->total;
149}
150
151
152
154{
155 assert(pd);
156 return pd->current;
157}
158
159
160
162{
163 assert(pd);
164 pd->current=i;
165}
166
167
168
170{
171 assert(pd);
172 pd->total=i;
173}
174
175
176
178{
179 assert(pd);
180 return pd->logBuf;
181}
182
183
184
186{
187 assert(pd);
188 return GWEN_Buffer_GetStart(pd->logBuf);
189}
190
191
192
194{
195 assert(pd);
196 GWEN_Buffer_Reset(pd->logBuf);
197}
198
199
200
203 const char *s)
204{
205 assert(pd);
206 GWEN_Buffer_AppendString(pd->logBuf, s);
207}
208
209
210
212{
213 assert(pd);
214 return pd->aborted;
215}
216
217
218
220{
221 assert(pd);
222 pd->aborted=i;
223}
224
225
226
228{
229 assert(pd);
230 return pd->shown;
231}
232
233
234
236{
237 assert(pd);
238 pd->shown=i;
239}
240
241
242
244{
245 assert(pd);
246 return pd->startTime;
247}
248
249
250
252{
253 assert(pd);
254 pd->startTime=t;
255}
256
257
258
260{
261 assert(pd);
262 return pd->checkTime;
263}
264
265
266
268{
269 assert(pd);
270 pd->checkTime=t;
271}
272
273
274
276{
277 assert(pd);
278 return pd->dialog;
279}
280
281
282
284{
285 assert(pd);
286 pd->dialog=dlg;
287}
288
289
290
291GWEN_PROGRESS_DATA *GWEN_ProgressData_Tree_FindProgressById(GWEN_PROGRESS_DATA_TREE *pt, uint32_t id)
292{
294
295 pd=GWEN_ProgressData_Tree_GetFirst(pt);
296 while (pd) {
297 if (GWEN_ProgressData_GetId(pd)==id)
298 break;
299 pd=GWEN_ProgressData_Tree_GetBelow(pd);
300 }
301
302 return pd;
303}
304
305
306
307
308
309
310
311
312
313
314
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
Definition buffer.c:42
void GWEN_Buffer_Reset(GWEN_BUFFER *bf)
Definition buffer.c:653
void GWEN_Buffer_free(GWEN_BUFFER *bf)
Definition buffer.c:89
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)
Definition buffer.c:992
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
Definition buffer.c:235
struct GWEN_DIALOG GWEN_DIALOG
Definition dialog.h:54
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
Definition buffer.h:38
struct GWEN_GUI GWEN_GUI
Definition gui.h:176
#define GWEN_UNUSED
GWEN_LOGGER_LEVEL
Definition logger.h:61
#define GWEN_FREE_OBJECT(varname)
Definition memory.h:61
#define GWEN_NEW_OBJECT(typ, varname)
Definition memory.h:55
void GWEN_ProgressData_SubFlags(GWEN_PROGRESS_DATA *pd, uint32_t fl)
uint64_t GWEN_ProgressData_GetCurrent(const GWEN_PROGRESS_DATA *pd)
void GWEN_ProgressData_free(GWEN_PROGRESS_DATA *pd)
void GWEN_ProgressData_SetPreviousId(GWEN_PROGRESS_DATA *pd, uint32_t i)
void GWEN_ProgressData_SetCurrent(GWEN_PROGRESS_DATA *pd, uint64_t i)
GWEN_DIALOG * GWEN_ProgressData_GetDialog(const GWEN_PROGRESS_DATA *pd)
void GWEN_ProgressData_SetAborted(GWEN_PROGRESS_DATA *pd, int i)
GWEN_GUI * GWEN_ProgressData_GetGui(const GWEN_PROGRESS_DATA *pd)
void GWEN_ProgressData_ClearLogText(GWEN_PROGRESS_DATA *pd)
GWEN_PROGRESS_DATA * GWEN_ProgressData_new(GWEN_GUI *gui, uint32_t id, uint32_t progressFlags, const char *title, const char *text, uint64_t total)
void GWEN_ProgressData_SetCheckTime(GWEN_PROGRESS_DATA *pd, time_t t)
void GWEN_ProgressData_SetStartTime(GWEN_PROGRESS_DATA *pd, time_t t)
int GWEN_ProgressData_GetAborted(const GWEN_PROGRESS_DATA *pd)
uint32_t GWEN_ProgressData_GetPreviousId(const GWEN_PROGRESS_DATA *pd)
uint64_t GWEN_ProgressData_GetTotal(const GWEN_PROGRESS_DATA *pd)
void GWEN_ProgressData_SetDialog(GWEN_PROGRESS_DATA *pd, GWEN_DIALOG *dlg)
int GWEN_ProgressData_GetShown(const GWEN_PROGRESS_DATA *pd)
GWEN_BUFFER * GWEN_ProgressData_GetLogBuf(const GWEN_PROGRESS_DATA *pd)
void GWEN_ProgressData_AddLogText(GWEN_PROGRESS_DATA *pd, GWEN_UNUSED GWEN_LOGGER_LEVEL level, const char *s)
time_t GWEN_ProgressData_GetCheckTime(const GWEN_PROGRESS_DATA *pd)
const char * GWEN_ProgressData_GetText(const GWEN_PROGRESS_DATA *pd)
uint32_t GWEN_ProgressData_GetFlags(const GWEN_PROGRESS_DATA *pd)
void GWEN_ProgressData_AddFlags(GWEN_PROGRESS_DATA *pd, uint32_t fl)
const char * GWEN_ProgressData_GetLogText(const GWEN_PROGRESS_DATA *pd)
GWEN_PROGRESS_DATA * GWEN_ProgressData_Tree_FindProgressById(GWEN_PROGRESS_DATA_TREE *pt, uint32_t id)
void GWEN_ProgressData_SetTotal(GWEN_PROGRESS_DATA *pd, uint64_t i)
time_t GWEN_ProgressData_GetStartTime(const GWEN_PROGRESS_DATA *pd)
void GWEN_ProgressData_SetShown(GWEN_PROGRESS_DATA *pd, int i)
const char * GWEN_ProgressData_GetTitle(const GWEN_PROGRESS_DATA *pd)
uint32_t GWEN_ProgressData_GetId(const GWEN_PROGRESS_DATA *pd)
struct GWEN_PROGRESS_DATA GWEN_PROGRESS_DATA
#define GWEN_TREE_FINI(t, element)
Definition tree.h:571
#define GWEN_TREE_FUNCTIONS(t, pr)
Definition tree.h:402
#define GWEN_TREE_INIT(t, element)
Definition tree.h:562