gwenhywfar  5.10.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 
26 GWEN_TREE_FUNCTIONS(GWEN_PROGRESS_DATA, GWEN_ProgressData)
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);
67  GWEN_FREE_OBJECT(pd);
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 
291 GWEN_PROGRESS_DATA *GWEN_ProgressData_Tree_FindProgressById(GWEN_PROGRESS_DATA_TREE *pt, uint32_t id)
292 {
293  GWEN_PROGRESS_DATA *pd;
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_DIALOG * GWEN_ProgressData_GetDialog(const GWEN_PROGRESS_DATA *pd)
Definition: progressdata.c:275
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
Definition: buffer.c:235
void GWEN_ProgressData_ClearLogText(GWEN_PROGRESS_DATA *pd)
Definition: progressdata.c:193
int GWEN_ProgressData_GetShown(const GWEN_PROGRESS_DATA *pd)
Definition: progressdata.c:227
GWEN_LOGGER_LEVEL
Definition: logger.h:64
uint32_t GWEN_ProgressData_GetFlags(const GWEN_PROGRESS_DATA *pd)
Definition: progressdata.c:105
#define GWEN_FREE_OBJECT(varname)
Definition: memory.h:61
uint32_t GWEN_ProgressData_GetId(const GWEN_PROGRESS_DATA *pd)
Definition: progressdata.c:81
void GWEN_ProgressData_AddLogText(GWEN_PROGRESS_DATA *pd, GWEN_UNUSED GWEN_LOGGER_LEVEL level, const char *s)
Definition: progressdata.c:201
const char * GWEN_ProgressData_GetText(const GWEN_PROGRESS_DATA *pd)
Definition: progressdata.c:137
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
Definition: buffer.c:42
struct GWEN_DIALOG GWEN_DIALOG
Definition: dialog.h:54
void GWEN_Buffer_Reset(GWEN_BUFFER *bf)
Definition: buffer.c:650
time_t GWEN_ProgressData_GetCheckTime(const GWEN_PROGRESS_DATA *pd)
Definition: progressdata.c:259
#define GWEN_NEW_OBJECT(typ, varname)
Definition: memory.h:55
void GWEN_ProgressData_SetCheckTime(GWEN_PROGRESS_DATA *pd, time_t t)
Definition: progressdata.c:267
int GWEN_ProgressData_GetAborted(const GWEN_PROGRESS_DATA *pd)
Definition: progressdata.c:211
uint64_t GWEN_ProgressData_GetCurrent(const GWEN_PROGRESS_DATA *pd)
Definition: progressdata.c:153
#define GWEN_TREE_FINI(t, element)
Definition: tree.h:571
void GWEN_ProgressData_SetCurrent(GWEN_PROGRESS_DATA *pd, uint64_t i)
Definition: progressdata.c:161
GWEN_PROGRESS_DATA * GWEN_ProgressData_Tree_FindProgressById(GWEN_PROGRESS_DATA_TREE *pt, uint32_t id)
Definition: progressdata.c:291
void GWEN_ProgressData_SubFlags(GWEN_PROGRESS_DATA *pd, uint32_t fl)
Definition: progressdata.c:121
void GWEN_Buffer_free(GWEN_BUFFER *bf)
Definition: buffer.c:89
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
Definition: buffer.h:38
uint64_t GWEN_ProgressData_GetTotal(const GWEN_PROGRESS_DATA *pd)
Definition: progressdata.c:145
void GWEN_ProgressData_SetStartTime(GWEN_PROGRESS_DATA *pd, time_t t)
Definition: progressdata.c:251
void GWEN_ProgressData_SetAborted(GWEN_PROGRESS_DATA *pd, int i)
Definition: progressdata.c:219
struct GWEN_PROGRESS_DATA GWEN_PROGRESS_DATA
const char * GWEN_ProgressData_GetTitle(const GWEN_PROGRESS_DATA *pd)
Definition: progressdata.c:129
void GWEN_ProgressData_SetTotal(GWEN_PROGRESS_DATA *pd, uint64_t i)
Definition: progressdata.c:169
#define GWEN_TREE_INIT(t, element)
Definition: tree.h:562
struct GWEN_GUI GWEN_GUI
Definition: gui.h:176
GWEN_GUI * GWEN_ProgressData_GetGui(const GWEN_PROGRESS_DATA *pd)
Definition: progressdata.c:73
GWEN_PROGRESS_DATA * GWEN_ProgressData_new(GWEN_GUI *gui, uint32_t id, uint32_t progressFlags, const char *title, const char *text, uint64_t total)
Definition: progressdata.c:31
void GWEN_ProgressData_SetPreviousId(GWEN_PROGRESS_DATA *pd, uint32_t i)
Definition: progressdata.c:97
void GWEN_ProgressData_SetShown(GWEN_PROGRESS_DATA *pd, int i)
Definition: progressdata.c:235
uint32_t GWEN_ProgressData_GetPreviousId(const GWEN_PROGRESS_DATA *pd)
Definition: progressdata.c:89
void GWEN_ProgressData_SetDialog(GWEN_PROGRESS_DATA *pd, GWEN_DIALOG *dlg)
Definition: progressdata.c:283
void GWEN_ProgressData_AddFlags(GWEN_PROGRESS_DATA *pd, uint32_t fl)
Definition: progressdata.c:113
time_t GWEN_ProgressData_GetStartTime(const GWEN_PROGRESS_DATA *pd)
Definition: progressdata.c:243
#define GWEN_UNUSED
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)
Definition: buffer.c:989
#define GWEN_TREE_FUNCTIONS(t, pr)
Definition: tree.h:402
GWEN_BUFFER * GWEN_ProgressData_GetLogBuf(const GWEN_PROGRESS_DATA *pd)
Definition: progressdata.c:177
void GWEN_ProgressData_free(GWEN_PROGRESS_DATA *pd)
Definition: progressdata.c:60
const char * GWEN_ProgressData_GetLogText(const GWEN_PROGRESS_DATA *pd)
Definition: progressdata.c:185