gwenhywfar 5.14.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 */
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
382{
383 assert(p_struct);
384 p_struct->flags=p_src;
385}
386
388{
389 assert(p_struct);
390 p_struct->flags|=p_src;
391}
392
394{
395 assert(p_struct);
396 p_struct->flags&=~p_src;
397}
398
399void 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
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
495{
496 assert(p_struct);
497 p_struct->hashPos=p_src;
498}
499
500/* list1 functions */
502{
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
#define NULL
Definition binreloc.c:300
uint64_t GWEN_SarFileHeader_GetHeaderStartPos(const GWEN_SAR_FILEHEADER *p_struct)
void GWEN_SarFileHeader_SubPermissions(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src)
const GWEN_TIME * GWEN_SarFileHeader_GetCtime(const GWEN_SAR_FILEHEADER *p_struct)
uint32_t GWEN_SarFileHeader_GetFlags(const GWEN_SAR_FILEHEADER *p_struct)
void GWEN_SarFileHeader_free(GWEN_SAR_FILEHEADER *p_struct)
void GWEN_SarFileHeader_SetStatus(GWEN_SAR_FILEHEADER *p_struct, int p_src)
void GWEN_SarFileHeader_SetHeaderSize(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src)
void GWEN_SarFileHeader_SetDataSize(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src)
void GWEN_SarFileHeader_SetPermissions(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src)
const GWEN_TIME * GWEN_SarFileHeader_GetMtime(const GWEN_SAR_FILEHEADER *p_struct)
int GWEN_SarFileHeader_GetStatus(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_AddStatus(GWEN_SAR_FILEHEADER *p_struct, int p_src)
void GWEN_SarFileHeader_SubFlags(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src)
int GWEN_SarFileHeader_GetFileType(const GWEN_SAR_FILEHEADER *p_struct)
GWEN_SAR_FILEHEADER_LIST * GWEN_SarFileHeader_List_dup(const GWEN_SAR_FILEHEADER_LIST *p_src)
GWEN_SAR_FILEHEADER_FTYPE GWEN_SarFileHeader_FType_fromString(const char *p_s)
GWEN_SAR_FILEHEADER * GWEN_SarFileHeader_dup(const GWEN_SAR_FILEHEADER *p_src)
void GWEN_SarFileHeader_Attach(GWEN_SAR_FILEHEADER *p_struct)
void GWEN_SarFileHeader_SetFileType(GWEN_SAR_FILEHEADER *p_struct, int p_src)
void GWEN_SarFileHeader_SetHeaderStartPos(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src)
uint32_t GWEN_SarFileHeader_GetPermissions(const GWEN_SAR_FILEHEADER *p_struct)
const GWEN_TIME * GWEN_SarFileHeader_GetAtime(const GWEN_SAR_FILEHEADER *p_struct)
void GWEN_SarFileHeader_SetDataPos(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src)
void GWEN_SarFileHeader_SubStatus(GWEN_SAR_FILEHEADER *p_struct, int p_src)
GWEN_SAR_FILEHEADER * GWEN_SarFileHeader_new(void)
void GWEN_SarFileHeader_AddPermissions(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src)
const char * GWEN_SarFileHeader_GetPath(const GWEN_SAR_FILEHEADER *p_struct)
void GWEN_SarFileHeader_SetCtime(GWEN_SAR_FILEHEADER *p_struct, GWEN_TIME *p_src)
void GWEN_SarFileHeader_AddFlags(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src)
GWEN_SAR_FILEHEADER_STATUS GWEN_SarFileHeader_Status_fromString(const char *p_s)
void GWEN_SarFileHeader_SetPath(GWEN_SAR_FILEHEADER *p_struct, const char *p_src)
void GWEN_SarFileHeader_SetHashPos(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src)
void GWEN_SarFileHeader_SetMtime(GWEN_SAR_FILEHEADER *p_struct, GWEN_TIME *p_src)
uint64_t GWEN_SarFileHeader_GetDataPos(const GWEN_SAR_FILEHEADER *p_struct)
uint64_t GWEN_SarFileHeader_GetHashPos(const GWEN_SAR_FILEHEADER *p_struct)
uint64_t GWEN_SarFileHeader_GetFileSize(const GWEN_SAR_FILEHEADER *p_struct)
uint64_t GWEN_SarFileHeader_GetHeaderSize(const GWEN_SAR_FILEHEADER *p_struct)
void GWEN_SarFileHeader_SetFlags(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src)
uint64_t GWEN_SarFileHeader_GetDataSize(const GWEN_SAR_FILEHEADER *p_struct)
void GWEN_SarFileHeader_SetFileSize(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src)
const char * GWEN_SarFileHeader_Status_toString(GWEN_SAR_FILEHEADER_STATUS p_i)
const char * GWEN_SarFileHeader_FType_toString(GWEN_SAR_FILEHEADER_FTYPE p_i)
void GWEN_SarFileHeader_SetAtime(GWEN_SAR_FILEHEADER *p_struct, GWEN_TIME *p_src)
GWEN_SAR_FILEHEADER_FTYPE
@ GWEN_SarFileHeader_FType_Unknown
@ GWEN_SarFileHeader_FType_None
@ GWEN_SarFileHeader_FType_Dir
@ GWEN_SarFileHeader_FType_File
@ GWEN_SarFileHeader_FType_SymLink
struct GWEN_SAR_FILEHEADER GWEN_SAR_FILEHEADER
GWEN_SAR_FILEHEADER_STATUS
@ GWEN_SarFileHeader_Status_Active
@ GWEN_SarFileHeader_Status_Deleted
@ GWEN_SarFileHeader_Status_Unknown
struct GWEN_TIME GWEN_TIME
Definition gwentime.h:43
GWENHYWFAR_API void GWEN_Time_free(GWEN_TIME *t)
GWENHYWFAR_API GWEN_TIME * GWEN_Time_dup(const GWEN_TIME *t)
#define GWEN_LIST_FINI(t, element)
Definition list1.h:475
#define GWEN_LIST_FUNCTIONS(t, pr)
Definition list1.h:367
#define GWEN_LIST_INIT(t, element)
Definition list1.h:466
#define GWEN_LIST2_FUNCTIONS(t, pr)
Definition list2.h:99
GWEN_SAR_FILEHEADER * GWEN_SarFileHeader_List_First(const GWEN_SAR_FILEHEADER_LIST *l)
GWEN_SAR_FILEHEADER * GWEN_SarFileHeader_List_Next(const GWEN_SAR_FILEHEADER *element)
void GWEN_SarFileHeader_List_Add(GWEN_SAR_FILEHEADER *element, GWEN_SAR_FILEHEADER_LIST *list)
GWEN_SAR_FILEHEADER_LIST * GWEN_SarFileHeader_List_new()
#define GWEN_FREE_OBJECT(varname)
Definition memory.h:61
#define GWEN_NEW_OBJECT(typ, varname)
Definition memory.h:55