gwenhywfar  4.99.8beta
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  if (p_s && *p_s) {
26  if (strcasecmp(p_s, "none")==0)
28  else if (strcasecmp(p_s, "file")==0)
30  else if (strcasecmp(p_s, "dir")==0)
32  else if (strcasecmp(p_s, "symLink")==0)
34  }
36 }
37 
39  if (p_s && *p_s) {
40  if (strcasecmp(p_s, "active")==0)
42  else if (strcasecmp(p_s, "deleted")==0)
44  }
46 }
47 
49  switch(p_i) {
50  case GWEN_SarFileHeader_FType_None: return "none";
51  case GWEN_SarFileHeader_FType_File: return "file";
52  case GWEN_SarFileHeader_FType_Dir: return "dir";
53  case GWEN_SarFileHeader_FType_SymLink: return "symLink";
54  default: return "unknown";
55  }
56 }
57 
59  switch(p_i) {
60  case GWEN_SarFileHeader_Status_Active: return "active";
61  case GWEN_SarFileHeader_Status_Deleted: return "deleted";
62  default: return "unknown";
63  }
64 }
65 
67  GWEN_SAR_FILEHEADER *p_struct;
68 
70  p_struct->_refCount=1;
72  /* members */
73  p_struct->status=0;
74  p_struct->flags=0;
75  p_struct->path=NULL;
76  p_struct->fileType=0;
77  p_struct->permissions=0;
78  p_struct->atime=NULL;
79  p_struct->mtime=NULL;
80  p_struct->ctime=NULL;
81  p_struct->fileSize=0;
82  p_struct->headerStartPos=0;
83  p_struct->headerSize=0;
84  p_struct->dataPos=0;
85  p_struct->dataSize=0;
86  p_struct->hashPos=0;
87  /* virtual functions */
88 
89  return p_struct;
90 }
91 
93  if (p_struct) {
94  assert(p_struct->_refCount);
95  if (p_struct->_refCount==1) {
97  /* members */
98  free(p_struct->path);
99  GWEN_Time_free(p_struct->atime);
100  GWEN_Time_free(p_struct->mtime);
101  GWEN_Time_free(p_struct->ctime);
102  p_struct->_refCount=0;
103  GWEN_FREE_OBJECT(p_struct);
104  }
105  else
106  p_struct->_refCount--;
107  }
108 }
109 
111  assert(p_struct);
112  assert(p_struct->_refCount);
113  p_struct->_refCount++;
114 }
115 
117  GWEN_SAR_FILEHEADER *p_struct;
118 
119  assert(p_src);
120  p_struct=GWEN_SarFileHeader_new();
121  /* member "status" */
122  p_struct->status=p_src->status;
123 
124  /* member "flags" */
125  p_struct->flags=p_src->flags;
126 
127  /* member "path" */
128  if (p_struct->path) {
129  free(p_struct->path);
130  p_struct->path=NULL;
131  }
132  if (p_src->path) {
133  p_struct->path=strdup(p_src->path);
134  }
135 
136  /* member "fileType" */
137  p_struct->fileType=p_src->fileType;
138 
139  /* member "permissions" */
140  p_struct->permissions=p_src->permissions;
141 
142  /* member "atime" */
143  if (p_struct->atime) {
144  GWEN_Time_free(p_struct->atime);
145  p_struct->atime=NULL;
146  }
147  if (p_src->atime) {
148  p_struct->atime=GWEN_Time_dup(p_src->atime);
149  }
150 
151  /* member "mtime" */
152  if (p_struct->mtime) {
153  GWEN_Time_free(p_struct->mtime);
154  p_struct->mtime=NULL;
155  }
156  if (p_src->mtime) {
157  p_struct->mtime=GWEN_Time_dup(p_src->mtime);
158  }
159 
160  /* member "ctime" */
161  if (p_struct->ctime) {
162  GWEN_Time_free(p_struct->ctime);
163  p_struct->ctime=NULL;
164  }
165  if (p_src->ctime) {
166  p_struct->ctime=GWEN_Time_dup(p_src->ctime);
167  }
168 
169  /* member "fileSize" */
170  p_struct->fileSize=p_src->fileSize;
171 
172  /* member "headerStartPos" */
173  p_struct->headerStartPos=p_src->headerStartPos;
174 
175  /* member "headerSize" */
176  p_struct->headerSize=p_src->headerSize;
177 
178  /* member "dataPos" */
179  p_struct->dataPos=p_src->dataPos;
180 
181  /* member "dataSize" */
182  p_struct->dataSize=p_src->dataSize;
183 
184  /* member "hashPos" */
185  p_struct->hashPos=p_src->hashPos;
186 
187  return p_struct;
188 }
189 
191  assert(p_struct);
192  assert(p_src);
193  /* member "status" */
194  p_struct->status=p_src->status;
195 
196  /* member "flags" */
197  p_struct->flags=p_src->flags;
198 
199  /* member "path" */
200  if (p_struct->path) {
201  free(p_struct->path);
202  p_struct->path=NULL;
203  }
204  if (p_src->path) {
205  p_struct->path=strdup(p_src->path);
206  }
207 
208  /* member "fileType" */
209  p_struct->fileType=p_src->fileType;
210 
211  /* member "permissions" */
212  p_struct->permissions=p_src->permissions;
213 
214  /* member "atime" */
215  if (p_struct->atime) {
216  GWEN_Time_free(p_struct->atime);
217  p_struct->atime=NULL;
218  }
219  if (p_src->atime) {
220  p_struct->atime=GWEN_Time_dup(p_src->atime);
221  }
222 
223  /* member "mtime" */
224  if (p_struct->mtime) {
225  GWEN_Time_free(p_struct->mtime);
226  p_struct->mtime=NULL;
227  }
228  if (p_src->mtime) {
229  p_struct->mtime=GWEN_Time_dup(p_src->mtime);
230  }
231 
232  /* member "ctime" */
233  if (p_struct->ctime) {
234  GWEN_Time_free(p_struct->ctime);
235  p_struct->ctime=NULL;
236  }
237  if (p_src->ctime) {
238  p_struct->ctime=GWEN_Time_dup(p_src->ctime);
239  }
240 
241  /* member "fileSize" */
242  p_struct->fileSize=p_src->fileSize;
243 
244  /* member "headerStartPos" */
245  p_struct->headerStartPos=p_src->headerStartPos;
246 
247  /* member "headerSize" */
248  p_struct->headerSize=p_src->headerSize;
249 
250  /* member "dataPos" */
251  p_struct->dataPos=p_src->dataPos;
252 
253  /* member "dataSize" */
254  p_struct->dataSize=p_src->dataSize;
255 
256  /* member "hashPos" */
257  p_struct->hashPos=p_src->hashPos;
258 
259  return p_struct;
260 }
261 
263  assert(p_struct);
264  return p_struct->status;
265 }
266 
268  assert(p_struct);
269  return p_struct->flags;
270 }
271 
272 const char *GWEN_SarFileHeader_GetPath(const GWEN_SAR_FILEHEADER *p_struct) {
273  assert(p_struct);
274  return p_struct->path;
275 }
276 
278  assert(p_struct);
279  return p_struct->fileType;
280 }
281 
283  assert(p_struct);
284  return p_struct->permissions;
285 }
286 
288  assert(p_struct);
289  return p_struct->atime;
290 }
291 
293  assert(p_struct);
294  return p_struct->mtime;
295 }
296 
298  assert(p_struct);
299  return p_struct->ctime;
300 }
301 
303  assert(p_struct);
304  return p_struct->fileSize;
305 }
306 
308  assert(p_struct);
309  return p_struct->headerStartPos;
310 }
311 
313  assert(p_struct);
314  return p_struct->headerSize;
315 }
316 
318  assert(p_struct);
319  return p_struct->dataPos;
320 }
321 
323  assert(p_struct);
324  return p_struct->dataSize;
325 }
326 
328  assert(p_struct);
329  return p_struct->hashPos;
330 }
331 
333  assert(p_struct);
334  p_struct->status=p_src;
335 }
336 
338  assert(p_struct);
339  p_struct->status|=p_src;
340 }
341 
343  assert(p_struct);
344  p_struct->status&=~p_src;
345 }
346 
347 void GWEN_SarFileHeader_SetFlags(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src) {
348  assert(p_struct);
349  p_struct->flags=p_src;
350 }
351 
352 void GWEN_SarFileHeader_AddFlags(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src) {
353  assert(p_struct);
354  p_struct->flags|=p_src;
355 }
356 
357 void GWEN_SarFileHeader_SubFlags(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src) {
358  assert(p_struct);
359  p_struct->flags&=~p_src;
360 }
361 
362 void GWEN_SarFileHeader_SetPath(GWEN_SAR_FILEHEADER *p_struct, const char *p_src) {
363  assert(p_struct);
364  if (p_struct->path) {
365  free(p_struct->path);
366  }
367  if (p_src) {
368  p_struct->path=strdup(p_src);
369  }
370  else {
371  p_struct->path=NULL;
372  }
373 }
374 
376  assert(p_struct);
377  p_struct->fileType=p_src;
378 }
379 
381  assert(p_struct);
382  p_struct->permissions=p_src;
383 }
384 
386  assert(p_struct);
387  p_struct->permissions|=p_src;
388 }
389 
391  assert(p_struct);
392  p_struct->permissions&=~p_src;
393 }
394 
396  assert(p_struct);
397  if (p_struct->atime) {
398  GWEN_Time_free(p_struct->atime);
399  }
400  p_struct->atime=p_src;
401 }
402 
404  assert(p_struct);
405  if (p_struct->mtime) {
406  GWEN_Time_free(p_struct->mtime);
407  }
408  p_struct->mtime=p_src;
409 }
410 
412  assert(p_struct);
413  if (p_struct->ctime) {
414  GWEN_Time_free(p_struct->ctime);
415  }
416  p_struct->ctime=p_src;
417 }
418 
419 void GWEN_SarFileHeader_SetFileSize(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src) {
420  assert(p_struct);
421  p_struct->fileSize=p_src;
422 }
423 
425  assert(p_struct);
426  p_struct->headerStartPos=p_src;
427 }
428 
429 void GWEN_SarFileHeader_SetHeaderSize(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src) {
430  assert(p_struct);
431  p_struct->headerSize=p_src;
432 }
433 
434 void GWEN_SarFileHeader_SetDataPos(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src) {
435  assert(p_struct);
436  p_struct->dataPos=p_src;
437 }
438 
439 void GWEN_SarFileHeader_SetDataSize(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src) {
440  assert(p_struct);
441  p_struct->dataSize=p_src;
442 }
443 
444 void GWEN_SarFileHeader_SetHashPos(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src) {
445  assert(p_struct);
446  p_struct->hashPos=p_src;
447 }
448 
449 /* list1 functions */
451  GWEN_SAR_FILEHEADER_LIST *p_dest;
452  GWEN_SAR_FILEHEADER *p_elem;
453 
454  assert(p_src);
456  p_elem=GWEN_SarFileHeader_List_First(p_src);
457  while(p_elem) {
458  GWEN_SAR_FILEHEADER *p_cpy;
459 
460  p_cpy=GWEN_SarFileHeader_dup(p_elem);
461  GWEN_SarFileHeader_List_Add(p_cpy, p_dest);
462  p_elem=GWEN_SarFileHeader_List_Next(p_elem);
463  }
464 
465  return p_dest;
466 }
467 
468 
469 /* code headers */
470 
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)
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:425
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:92
#define NULL
Definition: binreloc.c:290
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:86
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:437
GWEN_LIST2_FUNCTIONS(TYPEMAKER2_TYPE, Typemaker2_Type)
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)