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