1 /**********************************************************
2 * This file has been automatically created by "typemaker2"
3 * from the file "gwen_sar_fileheader.xml".
4 * Please do not edit this file, all changes will be lost.
5 * Better edit the mentioned source file instead.
6 **********************************************************/
7
8 #ifdef HAVE_CONFIG_H
9 # include <config.h>
10 #endif
11
12 #include "gwen_sar_fileheader_p.h"
13
14 #include <gwenhywfar/misc.h>
15 #include <gwenhywfar/debug.h>
16
17 /* code headers */
18
19 /* macro functions */
GWEN_LIST_FUNCTIONS(GWEN_SAR_FILEHEADER,GWEN_SarFileHeader)20 GWEN_LIST_FUNCTIONS(GWEN_SAR_FILEHEADER, GWEN_SarFileHeader)
21 GWEN_LIST2_FUNCTIONS(GWEN_SAR_FILEHEADER, GWEN_SarFileHeader)
22
23
24 GWEN_SAR_FILEHEADER_FTYPE GWEN_SarFileHeader_FType_fromString(const char *p_s)
25 {
26 if (p_s && *p_s) {
27 if (strcasecmp(p_s, "none")==0)
28 return GWEN_SarFileHeader_FType_None;
29 else if (strcasecmp(p_s, "file")==0)
30 return GWEN_SarFileHeader_FType_File;
31 else if (strcasecmp(p_s, "dir")==0)
32 return GWEN_SarFileHeader_FType_Dir;
33 else if (strcasecmp(p_s, "symLink")==0)
34 return GWEN_SarFileHeader_FType_SymLink;
35 }
36 return GWEN_SarFileHeader_FType_Unknown;
37 }
38
GWEN_SarFileHeader_Status_fromString(const char * p_s)39 GWEN_SAR_FILEHEADER_STATUS GWEN_SarFileHeader_Status_fromString(const char *p_s)
40 {
41 if (p_s && *p_s) {
42 if (strcasecmp(p_s, "active")==0)
43 return GWEN_SarFileHeader_Status_Active;
44 else if (strcasecmp(p_s, "deleted")==0)
45 return GWEN_SarFileHeader_Status_Deleted;
46 }
47 return GWEN_SarFileHeader_Status_Unknown;
48 }
49
GWEN_SarFileHeader_FType_toString(GWEN_SAR_FILEHEADER_FTYPE p_i)50 const char *GWEN_SarFileHeader_FType_toString(GWEN_SAR_FILEHEADER_FTYPE p_i)
51 {
52 switch (p_i) {
53 case GWEN_SarFileHeader_FType_None:
54 return "none";
55 case GWEN_SarFileHeader_FType_File:
56 return "file";
57 case GWEN_SarFileHeader_FType_Dir:
58 return "dir";
59 case GWEN_SarFileHeader_FType_SymLink:
60 return "symLink";
61 default:
62 return "unknown";
63 }
64 }
65
GWEN_SarFileHeader_Status_toString(GWEN_SAR_FILEHEADER_STATUS p_i)66 const char *GWEN_SarFileHeader_Status_toString(GWEN_SAR_FILEHEADER_STATUS p_i)
67 {
68 switch (p_i) {
69 case GWEN_SarFileHeader_Status_Active:
70 return "active";
71 case GWEN_SarFileHeader_Status_Deleted:
72 return "deleted";
73 default:
74 return "unknown";
75 }
76 }
77
GWEN_SarFileHeader_new(void)78 GWEN_SAR_FILEHEADER *GWEN_SarFileHeader_new(void)
79 {
80 GWEN_SAR_FILEHEADER *p_struct;
81
82 GWEN_NEW_OBJECT(GWEN_SAR_FILEHEADER, p_struct)
83 p_struct->_refCount=1;
84 GWEN_LIST_INIT(GWEN_SAR_FILEHEADER, p_struct)
85 /* members */
86 p_struct->status=0;
87 p_struct->flags=0;
88 p_struct->path=NULL;
89 p_struct->fileType=0;
90 p_struct->permissions=0;
91 p_struct->atime=NULL;
92 p_struct->mtime=NULL;
93 p_struct->ctime=NULL;
94 p_struct->fileSize=0;
95 p_struct->headerStartPos=0;
96 p_struct->headerSize=0;
97 p_struct->dataPos=0;
98 p_struct->dataSize=0;
99 p_struct->hashPos=0;
100 /* virtual functions */
101
102 return p_struct;
103 }
104
GWEN_SarFileHeader_free(GWEN_SAR_FILEHEADER * p_struct)105 void GWEN_SarFileHeader_free(GWEN_SAR_FILEHEADER *p_struct)
106 {
107 if (p_struct) {
108 assert(p_struct->_refCount);
109 if (p_struct->_refCount==1) {
110 GWEN_LIST_FINI(GWEN_SAR_FILEHEADER, p_struct)
111 /* members */
112 free(p_struct->path);
113 GWEN_Time_free(p_struct->atime);
114 GWEN_Time_free(p_struct->mtime);
115 GWEN_Time_free(p_struct->ctime);
116 p_struct->_refCount=0;
117 GWEN_FREE_OBJECT(p_struct);
118 }
119 else
120 p_struct->_refCount--;
121 }
122 }
123
GWEN_SarFileHeader_Attach(GWEN_SAR_FILEHEADER * p_struct)124 void GWEN_SarFileHeader_Attach(GWEN_SAR_FILEHEADER *p_struct)
125 {
126 assert(p_struct);
127 assert(p_struct->_refCount);
128 p_struct->_refCount++;
129 }
130
GWEN_SarFileHeader_dup(const GWEN_SAR_FILEHEADER * p_src)131 GWEN_SAR_FILEHEADER *GWEN_SarFileHeader_dup(const GWEN_SAR_FILEHEADER *p_src)
132 {
133 GWEN_SAR_FILEHEADER *p_struct;
134
135 assert(p_src);
136 p_struct=GWEN_SarFileHeader_new();
137 /* member "status" */
138 p_struct->status=p_src->status;
139
140 /* member "flags" */
141 p_struct->flags=p_src->flags;
142
143 /* member "path" */
144 if (p_struct->path) {
145 free(p_struct->path);
146 p_struct->path=NULL;
147 }
148 if (p_src->path) {
149 p_struct->path=strdup(p_src->path);
150 }
151
152 /* member "fileType" */
153 p_struct->fileType=p_src->fileType;
154
155 /* member "permissions" */
156 p_struct->permissions=p_src->permissions;
157
158 /* member "atime" */
159 if (p_struct->atime) {
160 GWEN_Time_free(p_struct->atime);
161 p_struct->atime=NULL;
162 }
163 if (p_src->atime) {
164 p_struct->atime=GWEN_Time_dup(p_src->atime);
165 }
166
167 /* member "mtime" */
168 if (p_struct->mtime) {
169 GWEN_Time_free(p_struct->mtime);
170 p_struct->mtime=NULL;
171 }
172 if (p_src->mtime) {
173 p_struct->mtime=GWEN_Time_dup(p_src->mtime);
174 }
175
176 /* member "ctime" */
177 if (p_struct->ctime) {
178 GWEN_Time_free(p_struct->ctime);
179 p_struct->ctime=NULL;
180 }
181 if (p_src->ctime) {
182 p_struct->ctime=GWEN_Time_dup(p_src->ctime);
183 }
184
185 /* member "fileSize" */
186 p_struct->fileSize=p_src->fileSize;
187
188 /* member "headerStartPos" */
189 p_struct->headerStartPos=p_src->headerStartPos;
190
191 /* member "headerSize" */
192 p_struct->headerSize=p_src->headerSize;
193
194 /* member "dataPos" */
195 p_struct->dataPos=p_src->dataPos;
196
197 /* member "dataSize" */
198 p_struct->dataSize=p_src->dataSize;
199
200 /* member "hashPos" */
201 p_struct->hashPos=p_src->hashPos;
202
203 return p_struct;
204 }
205
GWEN_SarFileHeader_copy(GWEN_SAR_FILEHEADER * p_struct,const GWEN_SAR_FILEHEADER * p_src)206 GWEN_SAR_FILEHEADER *GWEN_SarFileHeader_copy(GWEN_SAR_FILEHEADER *p_struct, const GWEN_SAR_FILEHEADER *p_src)
207 {
208 assert(p_struct);
209 assert(p_src);
210 /* member "status" */
211 p_struct->status=p_src->status;
212
213 /* member "flags" */
214 p_struct->flags=p_src->flags;
215
216 /* member "path" */
217 if (p_struct->path) {
218 free(p_struct->path);
219 p_struct->path=NULL;
220 }
221 if (p_src->path) {
222 p_struct->path=strdup(p_src->path);
223 }
224
225 /* member "fileType" */
226 p_struct->fileType=p_src->fileType;
227
228 /* member "permissions" */
229 p_struct->permissions=p_src->permissions;
230
231 /* member "atime" */
232 if (p_struct->atime) {
233 GWEN_Time_free(p_struct->atime);
234 p_struct->atime=NULL;
235 }
236 if (p_src->atime) {
237 p_struct->atime=GWEN_Time_dup(p_src->atime);
238 }
239
240 /* member "mtime" */
241 if (p_struct->mtime) {
242 GWEN_Time_free(p_struct->mtime);
243 p_struct->mtime=NULL;
244 }
245 if (p_src->mtime) {
246 p_struct->mtime=GWEN_Time_dup(p_src->mtime);
247 }
248
249 /* member "ctime" */
250 if (p_struct->ctime) {
251 GWEN_Time_free(p_struct->ctime);
252 p_struct->ctime=NULL;
253 }
254 if (p_src->ctime) {
255 p_struct->ctime=GWEN_Time_dup(p_src->ctime);
256 }
257
258 /* member "fileSize" */
259 p_struct->fileSize=p_src->fileSize;
260
261 /* member "headerStartPos" */
262 p_struct->headerStartPos=p_src->headerStartPos;
263
264 /* member "headerSize" */
265 p_struct->headerSize=p_src->headerSize;
266
267 /* member "dataPos" */
268 p_struct->dataPos=p_src->dataPos;
269
270 /* member "dataSize" */
271 p_struct->dataSize=p_src->dataSize;
272
273 /* member "hashPos" */
274 p_struct->hashPos=p_src->hashPos;
275
276 return p_struct;
277 }
278
GWEN_SarFileHeader_GetStatus(const GWEN_SAR_FILEHEADER * p_struct)279 int GWEN_SarFileHeader_GetStatus(const GWEN_SAR_FILEHEADER *p_struct)
280 {
281 assert(p_struct);
282 return p_struct->status;
283 }
284
GWEN_SarFileHeader_GetFlags(const GWEN_SAR_FILEHEADER * p_struct)285 uint32_t GWEN_SarFileHeader_GetFlags(const GWEN_SAR_FILEHEADER *p_struct)
286 {
287 assert(p_struct);
288 return p_struct->flags;
289 }
290
GWEN_SarFileHeader_GetPath(const GWEN_SAR_FILEHEADER * p_struct)291 const char *GWEN_SarFileHeader_GetPath(const GWEN_SAR_FILEHEADER *p_struct)
292 {
293 assert(p_struct);
294 return p_struct->path;
295 }
296
GWEN_SarFileHeader_GetFileType(const GWEN_SAR_FILEHEADER * p_struct)297 int GWEN_SarFileHeader_GetFileType(const GWEN_SAR_FILEHEADER *p_struct)
298 {
299 assert(p_struct);
300 return p_struct->fileType;
301 }
302
GWEN_SarFileHeader_GetPermissions(const GWEN_SAR_FILEHEADER * p_struct)303 uint32_t GWEN_SarFileHeader_GetPermissions(const GWEN_SAR_FILEHEADER *p_struct)
304 {
305 assert(p_struct);
306 return p_struct->permissions;
307 }
308
GWEN_SarFileHeader_GetAtime(const GWEN_SAR_FILEHEADER * p_struct)309 const GWEN_TIME *GWEN_SarFileHeader_GetAtime(const GWEN_SAR_FILEHEADER *p_struct)
310 {
311 assert(p_struct);
312 return p_struct->atime;
313 }
314
GWEN_SarFileHeader_GetMtime(const GWEN_SAR_FILEHEADER * p_struct)315 const GWEN_TIME *GWEN_SarFileHeader_GetMtime(const GWEN_SAR_FILEHEADER *p_struct)
316 {
317 assert(p_struct);
318 return p_struct->mtime;
319 }
320
GWEN_SarFileHeader_GetCtime(const GWEN_SAR_FILEHEADER * p_struct)321 const GWEN_TIME *GWEN_SarFileHeader_GetCtime(const GWEN_SAR_FILEHEADER *p_struct)
322 {
323 assert(p_struct);
324 return p_struct->ctime;
325 }
326
GWEN_SarFileHeader_GetFileSize(const GWEN_SAR_FILEHEADER * p_struct)327 uint64_t GWEN_SarFileHeader_GetFileSize(const GWEN_SAR_FILEHEADER *p_struct)
328 {
329 assert(p_struct);
330 return p_struct->fileSize;
331 }
332
GWEN_SarFileHeader_GetHeaderStartPos(const GWEN_SAR_FILEHEADER * p_struct)333 uint64_t GWEN_SarFileHeader_GetHeaderStartPos(const GWEN_SAR_FILEHEADER *p_struct)
334 {
335 assert(p_struct);
336 return p_struct->headerStartPos;
337 }
338
GWEN_SarFileHeader_GetHeaderSize(const GWEN_SAR_FILEHEADER * p_struct)339 uint64_t GWEN_SarFileHeader_GetHeaderSize(const GWEN_SAR_FILEHEADER *p_struct)
340 {
341 assert(p_struct);
342 return p_struct->headerSize;
343 }
344
GWEN_SarFileHeader_GetDataPos(const GWEN_SAR_FILEHEADER * p_struct)345 uint64_t GWEN_SarFileHeader_GetDataPos(const GWEN_SAR_FILEHEADER *p_struct)
346 {
347 assert(p_struct);
348 return p_struct->dataPos;
349 }
350
GWEN_SarFileHeader_GetDataSize(const GWEN_SAR_FILEHEADER * p_struct)351 uint64_t GWEN_SarFileHeader_GetDataSize(const GWEN_SAR_FILEHEADER *p_struct)
352 {
353 assert(p_struct);
354 return p_struct->dataSize;
355 }
356
GWEN_SarFileHeader_GetHashPos(const GWEN_SAR_FILEHEADER * p_struct)357 uint64_t GWEN_SarFileHeader_GetHashPos(const GWEN_SAR_FILEHEADER *p_struct)
358 {
359 assert(p_struct);
360 return p_struct->hashPos;
361 }
362
GWEN_SarFileHeader_SetStatus(GWEN_SAR_FILEHEADER * p_struct,int p_src)363 void GWEN_SarFileHeader_SetStatus(GWEN_SAR_FILEHEADER *p_struct, int p_src)
364 {
365 assert(p_struct);
366 p_struct->status=p_src;
367 }
368
GWEN_SarFileHeader_AddStatus(GWEN_SAR_FILEHEADER * p_struct,int p_src)369 void GWEN_SarFileHeader_AddStatus(GWEN_SAR_FILEHEADER *p_struct, int p_src)
370 {
371 assert(p_struct);
372 p_struct->status|=p_src;
373 }
374
GWEN_SarFileHeader_SubStatus(GWEN_SAR_FILEHEADER * p_struct,int p_src)375 void GWEN_SarFileHeader_SubStatus(GWEN_SAR_FILEHEADER *p_struct, int p_src)
376 {
377 assert(p_struct);
378 p_struct->status&=~p_src;
379 }
380
GWEN_SarFileHeader_SetFlags(GWEN_SAR_FILEHEADER * p_struct,uint32_t p_src)381 void GWEN_SarFileHeader_SetFlags(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src)
382 {
383 assert(p_struct);
384 p_struct->flags=p_src;
385 }
386
GWEN_SarFileHeader_AddFlags(GWEN_SAR_FILEHEADER * p_struct,uint32_t p_src)387 void GWEN_SarFileHeader_AddFlags(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src)
388 {
389 assert(p_struct);
390 p_struct->flags|=p_src;
391 }
392
GWEN_SarFileHeader_SubFlags(GWEN_SAR_FILEHEADER * p_struct,uint32_t p_src)393 void GWEN_SarFileHeader_SubFlags(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src)
394 {
395 assert(p_struct);
396 p_struct->flags&=~p_src;
397 }
398
GWEN_SarFileHeader_SetPath(GWEN_SAR_FILEHEADER * p_struct,const char * p_src)399 void GWEN_SarFileHeader_SetPath(GWEN_SAR_FILEHEADER *p_struct, const char *p_src)
400 {
401 assert(p_struct);
402 if (p_struct->path) {
403 free(p_struct->path);
404 }
405 if (p_src) {
406 p_struct->path=strdup(p_src);
407 }
408 else {
409 p_struct->path=NULL;
410 }
411 }
412
GWEN_SarFileHeader_SetFileType(GWEN_SAR_FILEHEADER * p_struct,int p_src)413 void GWEN_SarFileHeader_SetFileType(GWEN_SAR_FILEHEADER *p_struct, int p_src)
414 {
415 assert(p_struct);
416 p_struct->fileType=p_src;
417 }
418
GWEN_SarFileHeader_SetPermissions(GWEN_SAR_FILEHEADER * p_struct,uint32_t p_src)419 void GWEN_SarFileHeader_SetPermissions(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src)
420 {
421 assert(p_struct);
422 p_struct->permissions=p_src;
423 }
424
GWEN_SarFileHeader_AddPermissions(GWEN_SAR_FILEHEADER * p_struct,uint32_t p_src)425 void GWEN_SarFileHeader_AddPermissions(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src)
426 {
427 assert(p_struct);
428 p_struct->permissions|=p_src;
429 }
430
GWEN_SarFileHeader_SubPermissions(GWEN_SAR_FILEHEADER * p_struct,uint32_t p_src)431 void GWEN_SarFileHeader_SubPermissions(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src)
432 {
433 assert(p_struct);
434 p_struct->permissions&=~p_src;
435 }
436
GWEN_SarFileHeader_SetAtime(GWEN_SAR_FILEHEADER * p_struct,GWEN_TIME * p_src)437 void GWEN_SarFileHeader_SetAtime(GWEN_SAR_FILEHEADER *p_struct, GWEN_TIME *p_src)
438 {
439 assert(p_struct);
440 if (p_struct->atime) {
441 GWEN_Time_free(p_struct->atime);
442 }
443 p_struct->atime=p_src;
444 }
445
GWEN_SarFileHeader_SetMtime(GWEN_SAR_FILEHEADER * p_struct,GWEN_TIME * p_src)446 void GWEN_SarFileHeader_SetMtime(GWEN_SAR_FILEHEADER *p_struct, GWEN_TIME *p_src)
447 {
448 assert(p_struct);
449 if (p_struct->mtime) {
450 GWEN_Time_free(p_struct->mtime);
451 }
452 p_struct->mtime=p_src;
453 }
454
GWEN_SarFileHeader_SetCtime(GWEN_SAR_FILEHEADER * p_struct,GWEN_TIME * p_src)455 void GWEN_SarFileHeader_SetCtime(GWEN_SAR_FILEHEADER *p_struct, GWEN_TIME *p_src)
456 {
457 assert(p_struct);
458 if (p_struct->ctime) {
459 GWEN_Time_free(p_struct->ctime);
460 }
461 p_struct->ctime=p_src;
462 }
463
GWEN_SarFileHeader_SetFileSize(GWEN_SAR_FILEHEADER * p_struct,uint64_t p_src)464 void GWEN_SarFileHeader_SetFileSize(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src)
465 {
466 assert(p_struct);
467 p_struct->fileSize=p_src;
468 }
469
GWEN_SarFileHeader_SetHeaderStartPos(GWEN_SAR_FILEHEADER * p_struct,uint64_t p_src)470 void GWEN_SarFileHeader_SetHeaderStartPos(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src)
471 {
472 assert(p_struct);
473 p_struct->headerStartPos=p_src;
474 }
475
GWEN_SarFileHeader_SetHeaderSize(GWEN_SAR_FILEHEADER * p_struct,uint64_t p_src)476 void GWEN_SarFileHeader_SetHeaderSize(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src)
477 {
478 assert(p_struct);
479 p_struct->headerSize=p_src;
480 }
481
GWEN_SarFileHeader_SetDataPos(GWEN_SAR_FILEHEADER * p_struct,uint64_t p_src)482 void GWEN_SarFileHeader_SetDataPos(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src)
483 {
484 assert(p_struct);
485 p_struct->dataPos=p_src;
486 }
487
GWEN_SarFileHeader_SetDataSize(GWEN_SAR_FILEHEADER * p_struct,uint64_t p_src)488 void GWEN_SarFileHeader_SetDataSize(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src)
489 {
490 assert(p_struct);
491 p_struct->dataSize=p_src;
492 }
493
GWEN_SarFileHeader_SetHashPos(GWEN_SAR_FILEHEADER * p_struct,uint64_t p_src)494 void GWEN_SarFileHeader_SetHashPos(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src)
495 {
496 assert(p_struct);
497 p_struct->hashPos=p_src;
498 }
499
500 /* list1 functions */
GWEN_SarFileHeader_List_dup(const GWEN_SAR_FILEHEADER_LIST * p_src)501 GWEN_SAR_FILEHEADER_LIST *GWEN_SarFileHeader_List_dup(const GWEN_SAR_FILEHEADER_LIST *p_src)
502 {
503 GWEN_SAR_FILEHEADER_LIST *p_dest;
504 GWEN_SAR_FILEHEADER *p_elem;
505
506 assert(p_src);
507 p_dest=GWEN_SarFileHeader_List_new();
508 p_elem=GWEN_SarFileHeader_List_First(p_src);
509 while (p_elem) {
510 GWEN_SAR_FILEHEADER *p_cpy;
511
512 p_cpy=GWEN_SarFileHeader_dup(p_elem);
513 GWEN_SarFileHeader_List_Add(p_cpy, p_dest);
514 p_elem=GWEN_SarFileHeader_List_Next(p_elem);
515 }
516
517 return p_dest;
518 }
519
520
521 /* code headers */
522
523