gwenhywfar  5.10.1
gwen_sar_fileheader.c
Go to the documentation of this file.
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 */
20 GWEN_LIST_FUNCTIONS(GWEN_SAR_FILEHEADER, GWEN_SarFileHeader)
21 GWEN_LIST2_FUNCTIONS(GWEN_SAR_FILEHEADER, GWEN_SarFileHeader)
22 
23 
25 {
26  if (p_s && *p_s) {
27  if (strcasecmp(p_s, "none")==0)
29  else if (strcasecmp(p_s, "file")==0)
31  else if (strcasecmp(p_s, "dir")==0)
33  else if (strcasecmp(p_s, "symLink")==0)
35  }
37 }
38 
40 {
41  if (p_s && *p_s) {
42  if (strcasecmp(p_s, "active")==0)
44  else if (strcasecmp(p_s, "deleted")==0)
46  }
48 }
49 
51 {
52  switch (p_i) {
54  return "none";
56  return "file";
58  return "dir";
60  return "symLink";
61  default:
62  return "unknown";
63  }
64 }
65 
67 {
68  switch (p_i) {
70  return "active";
72  return "deleted";
73  default:
74  return "unknown";
75  }
76 }
77 
79 {
80  GWEN_SAR_FILEHEADER *p_struct;
81 
83  p_struct->_refCount=1;
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 
106 {
107  if (p_struct) {
108  assert(p_struct->_refCount);
109  if (p_struct->_refCount==1) {
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 
125 {
126  assert(p_struct);
127  assert(p_struct->_refCount);
128  p_struct->_refCount++;
129 }
130 
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 
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 
280 {
281  assert(p_struct);
282  return p_struct->status;
283 }
284 
286 {
287  assert(p_struct);
288  return p_struct->flags;
289 }
290 
292 {
293  assert(p_struct);
294  return p_struct->path;
295 }
296 
298 {
299  assert(p_struct);
300  return p_struct->fileType;
301 }
302 
304 {
305  assert(p_struct);
306  return p_struct->permissions;
307 }
308 
310 {
311  assert(p_struct);
312  return p_struct->atime;
313 }
314 
316 {
317  assert(p_struct);
318  return p_struct->mtime;
319 }
320 
322 {
323  assert(p_struct);
324  return p_struct->ctime;
325 }
326 
328 {
329  assert(p_struct);
330  return p_struct->fileSize;
331 }
332 
334 {
335  assert(p_struct);
336  return p_struct->headerStartPos;
337 }
338 
340 {
341  assert(p_struct);
342  return p_struct->headerSize;
343 }
344 
346 {
347  assert(p_struct);
348  return p_struct->dataPos;
349 }
350 
352 {
353  assert(p_struct);
354  return p_struct->dataSize;
355 }
356 
358 {
359  assert(p_struct);
360  return p_struct->hashPos;
361 }
362 
364 {
365  assert(p_struct);
366  p_struct->status=p_src;
367 }
368 
370 {
371  assert(p_struct);
372  p_struct->status|=p_src;
373 }
374 
376 {
377  assert(p_struct);
378  p_struct->status&=~p_src;
379 }
380 
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 
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 
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 
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 
414 {
415  assert(p_struct);
416  p_struct->fileType=p_src;
417 }
418 
420 {
421  assert(p_struct);
422  p_struct->permissions=p_src;
423 }
424 
426 {
427  assert(p_struct);
428  p_struct->permissions|=p_src;
429 }
430 
432 {
433  assert(p_struct);
434  p_struct->permissions&=~p_src;
435 }
436 
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 
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 
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 
465 {
466  assert(p_struct);
467  p_struct->fileSize=p_src;
468 }
469 
471 {
472  assert(p_struct);
473  p_struct->headerStartPos=p_src;
474 }
475 
477 {
478  assert(p_struct);
479  p_struct->headerSize=p_src;
480 }
481 
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 
489 {
490  assert(p_struct);
491  p_struct->dataSize=p_src;
492 }
493 
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 */
502 {
503  GWEN_SAR_FILEHEADER_LIST *p_dest;
504  GWEN_SAR_FILEHEADER *p_elem;
505 
506  assert(p_src);
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 
const GWEN_TIME * GWEN_SarFileHeader_GetAtime(const GWEN_SAR_FILEHEADER *p_struct)
int GWEN_SarFileHeader_GetFileType(const GWEN_SAR_FILEHEADER *p_struct)
struct GWEN_TIME GWEN_TIME
Definition: gwentime.h:43
GWEN_SAR_FILEHEADER_LIST * GWEN_SarFileHeader_List_dup(const GWEN_SAR_FILEHEADER_LIST *p_src)
#define GWEN_LIST2_FUNCTIONS(t, pr)
Definition: list2.h:99
GWEN_SAR_FILEHEADER * GWEN_SarFileHeader_dup(const GWEN_SAR_FILEHEADER *p_src)
void GWEN_SarFileHeader_SetHeaderSize(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src)
void GWEN_SarFileHeader_free(GWEN_SAR_FILEHEADER *p_struct)
GWENHYWFAR_API GWEN_TIME * GWEN_Time_dup(const GWEN_TIME *t)
Definition: gwentime_all.c:449
void GWEN_SarFileHeader_SetMtime(GWEN_SAR_FILEHEADER *p_struct, GWEN_TIME *p_src)
void GWEN_SarFileHeader_SetAtime(GWEN_SAR_FILEHEADER *p_struct, GWEN_TIME *p_src)
#define GWEN_FREE_OBJECT(varname)
Definition: memory.h:61
#define NULL
Definition: binreloc.c:300
void GWEN_SarFileHeader_SetStatus(GWEN_SAR_FILEHEADER *p_struct, int p_src)
void GWEN_SarFileHeader_AddStatus(GWEN_SAR_FILEHEADER *p_struct, int p_src)
GWEN_SAR_FILEHEADER * GWEN_SarFileHeader_List_Next(const GWEN_SAR_FILEHEADER *element)
GWEN_SAR_FILEHEADER_FTYPE GWEN_SarFileHeader_FType_fromString(const char *p_s)
uint64_t GWEN_SarFileHeader_GetHeaderStartPos(const GWEN_SAR_FILEHEADER *p_struct)
int GWEN_SarFileHeader_GetStatus(const GWEN_SAR_FILEHEADER *p_struct)
void GWEN_SarFileHeader_SubFlags(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src)
uint64_t GWEN_SarFileHeader_GetFileSize(const GWEN_SAR_FILEHEADER *p_struct)
const GWEN_TIME * GWEN_SarFileHeader_GetCtime(const GWEN_SAR_FILEHEADER *p_struct)
GWEN_SAR_FILEHEADER * GWEN_SarFileHeader_copy(GWEN_SAR_FILEHEADER *p_struct, const GWEN_SAR_FILEHEADER *p_src)
void GWEN_SarFileHeader_SetCtime(GWEN_SAR_FILEHEADER *p_struct, GWEN_TIME *p_src)
const GWEN_TIME * GWEN_SarFileHeader_GetMtime(const GWEN_SAR_FILEHEADER *p_struct)
uint32_t GWEN_SarFileHeader_GetPermissions(const GWEN_SAR_FILEHEADER *p_struct)
#define GWEN_NEW_OBJECT(typ, varname)
Definition: memory.h:55
void GWEN_SarFileHeader_SetDataPos(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src)
void GWEN_SarFileHeader_List_Add(GWEN_SAR_FILEHEADER *element, GWEN_SAR_FILEHEADER_LIST *list)
void GWEN_SarFileHeader_SetFileType(GWEN_SAR_FILEHEADER *p_struct, int p_src)
GWEN_SAR_FILEHEADER * GWEN_SarFileHeader_List_First(const GWEN_SAR_FILEHEADER_LIST *l)
void GWEN_SarFileHeader_SetHashPos(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src)
uint64_t GWEN_SarFileHeader_GetDataSize(const GWEN_SAR_FILEHEADER *p_struct)
void GWEN_SarFileHeader_SubStatus(GWEN_SAR_FILEHEADER *p_struct, int p_src)
void GWEN_SarFileHeader_SetPermissions(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src)
GWEN_SAR_FILEHEADER_STATUS
struct GWEN_SAR_FILEHEADER GWEN_SAR_FILEHEADER
void GWEN_SarFileHeader_SetHeaderStartPos(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src)
GWENHYWFAR_API void GWEN_Time_free(GWEN_TIME *t)
Definition: gwentime_all.c:462
GWEN_SAR_FILEHEADER * GWEN_SarFileHeader_new(void)
uint64_t GWEN_SarFileHeader_GetDataPos(const GWEN_SAR_FILEHEADER *p_struct)
const char * GWEN_SarFileHeader_Status_toString(GWEN_SAR_FILEHEADER_STATUS p_i)
void GWEN_SarFileHeader_SetFileSize(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src)
void GWEN_SarFileHeader_Attach(GWEN_SAR_FILEHEADER *p_struct)
GWEN_SAR_FILEHEADER_STATUS GWEN_SarFileHeader_Status_fromString(const char *p_s)
void GWEN_SarFileHeader_AddPermissions(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src)
const char * GWEN_SarFileHeader_GetPath(const GWEN_SAR_FILEHEADER *p_struct)
GWEN_SAR_FILEHEADER_LIST * GWEN_SarFileHeader_List_new()
const char * GWEN_SarFileHeader_FType_toString(GWEN_SAR_FILEHEADER_FTYPE p_i)
uint32_t GWEN_SarFileHeader_GetFlags(const GWEN_SAR_FILEHEADER *p_struct)
GWEN_SAR_FILEHEADER_FTYPE
#define GWEN_LIST_INIT(t, element)
Definition: list1.h:465
uint64_t GWEN_SarFileHeader_GetHeaderSize(const GWEN_SAR_FILEHEADER *p_struct)
void GWEN_SarFileHeader_SetDataSize(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src)
#define GWEN_LIST_FUNCTIONS(t, pr)
Definition: list1.h:366
uint64_t GWEN_SarFileHeader_GetHashPos(const GWEN_SAR_FILEHEADER *p_struct)
void GWEN_SarFileHeader_SetPath(GWEN_SAR_FILEHEADER *p_struct, const char *p_src)
#define GWEN_LIST_FINI(t, element)
Definition: list1.h:474
void GWEN_SarFileHeader_SubPermissions(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src)
void GWEN_SarFileHeader_SetFlags(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src)
void GWEN_SarFileHeader_AddFlags(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src)