gwenhywfar  4.8.0beta
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) {
51  return "none";
53  return "file";
55  return "dir";
57  return "symLink";
58  default:
59  return "unknown";
60  }
61 }
62 
64  switch(p_i) {
66  return "active";
68  return "deleted";
69  default:
70  return "unknown";
71  }
72 }
73 
75  GWEN_SAR_FILEHEADER *p_struct;
76 
78  p_struct->_refCount = 1;
80  /* members */
81  p_struct->status = 0;
82  p_struct->flags = 0;
83  p_struct->path = NULL;
84  p_struct->fileType = 0;
85  p_struct->permissions = 0;
86  p_struct->atime = NULL;
87  p_struct->mtime = NULL;
88  p_struct->ctime = NULL;
89  p_struct->fileSize = 0;
90  p_struct->headerStartPos = 0;
91  p_struct->headerSize = 0;
92  p_struct->dataPos = 0;
93  p_struct->dataSize = 0;
94  p_struct->hashPos = 0;
95 
96  return p_struct;
97 }
98 
100  if (p_struct) {
101  assert(p_struct->_refCount);
102  if (p_struct->_refCount == 1) {
104  /* members */
105  free(p_struct->path);
106  GWEN_Time_free(p_struct->atime);
107  GWEN_Time_free(p_struct->mtime);
108  GWEN_Time_free(p_struct->ctime);
109  p_struct->_refCount = 0;
110  GWEN_FREE_OBJECT(p_struct);
111  } else
112  p_struct->_refCount--;
113  }
114 }
115 
117  assert(p_struct);
118  assert(p_struct->_refCount);
119  p_struct->_refCount++;
120 }
121 
123  GWEN_SAR_FILEHEADER *p_struct;
124 
125  assert(p_src);
126  p_struct = GWEN_SarFileHeader_new();
127  /* member "status" */
128  p_struct->status = p_src->status;
129 
130  /* member "flags" */
131  p_struct->flags = p_src->flags;
132 
133  /* member "path" */
134  if (p_struct->path) {
135  free(p_struct->path);
136  p_struct->path = NULL;
137  }
138  if (p_src->path) {
139  p_struct->path = strdup(p_src->path);
140  }
141 
142  /* member "fileType" */
143  p_struct->fileType = p_src->fileType;
144 
145  /* member "permissions" */
146  p_struct->permissions = p_src->permissions;
147 
148  /* member "atime" */
149  if (p_struct->atime) {
150  GWEN_Time_free(p_struct->atime);
151  p_struct->atime = NULL;
152  }
153  if (p_src->atime) {
154  p_struct->atime = GWEN_Time_dup(p_src->atime);
155  }
156 
157  /* member "mtime" */
158  if (p_struct->mtime) {
159  GWEN_Time_free(p_struct->mtime);
160  p_struct->mtime = NULL;
161  }
162  if (p_src->mtime) {
163  p_struct->mtime = GWEN_Time_dup(p_src->mtime);
164  }
165 
166  /* member "ctime" */
167  if (p_struct->ctime) {
168  GWEN_Time_free(p_struct->ctime);
169  p_struct->ctime = NULL;
170  }
171  if (p_src->ctime) {
172  p_struct->ctime = GWEN_Time_dup(p_src->ctime);
173  }
174 
175  /* member "fileSize" */
176  p_struct->fileSize = p_src->fileSize;
177 
178  /* member "headerStartPos" */
179  p_struct->headerStartPos = p_src->headerStartPos;
180 
181  /* member "headerSize" */
182  p_struct->headerSize = p_src->headerSize;
183 
184  /* member "dataPos" */
185  p_struct->dataPos = p_src->dataPos;
186 
187  /* member "dataSize" */
188  p_struct->dataSize = p_src->dataSize;
189 
190  /* member "hashPos" */
191  p_struct->hashPos = p_src->hashPos;
192 
193  return p_struct;
194 }
195 
197  assert(p_struct);
198  return p_struct->status;
199 }
200 
202  assert(p_struct);
203  return p_struct->flags;
204 }
205 
206 const char *GWEN_SarFileHeader_GetPath(const GWEN_SAR_FILEHEADER *p_struct) {
207  assert(p_struct);
208  return p_struct->path;
209 }
210 
212  assert(p_struct);
213  return p_struct->fileType;
214 }
215 
217  assert(p_struct);
218  return p_struct->permissions;
219 }
220 
222  assert(p_struct);
223  return p_struct->atime;
224 }
225 
227  assert(p_struct);
228  return p_struct->mtime;
229 }
230 
232  assert(p_struct);
233  return p_struct->ctime;
234 }
235 
237  assert(p_struct);
238  return p_struct->fileSize;
239 }
240 
242  assert(p_struct);
243  return p_struct->headerStartPos;
244 }
245 
247  assert(p_struct);
248  return p_struct->headerSize;
249 }
250 
252  assert(p_struct);
253  return p_struct->dataPos;
254 }
255 
257  assert(p_struct);
258  return p_struct->dataSize;
259 }
260 
262  assert(p_struct);
263  return p_struct->hashPos;
264 }
265 
267  assert(p_struct);
268  p_struct->status = p_src;
269 }
270 
272  assert(p_struct);
273  p_struct->status |= p_src;
274 }
275 
277  assert(p_struct);
278  p_struct->status &= ~p_src;
279 }
280 
281 void GWEN_SarFileHeader_SetFlags(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src) {
282  assert(p_struct);
283  p_struct->flags = p_src;
284 }
285 
286 void GWEN_SarFileHeader_AddFlags(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src) {
287  assert(p_struct);
288  p_struct->flags |= p_src;
289 }
290 
291 void GWEN_SarFileHeader_SubFlags(GWEN_SAR_FILEHEADER *p_struct, uint32_t p_src) {
292  assert(p_struct);
293  p_struct->flags &= ~p_src;
294 }
295 
296 void GWEN_SarFileHeader_SetPath(GWEN_SAR_FILEHEADER *p_struct, const char *p_src) {
297  assert(p_struct);
298  if (p_struct->path) {
299  free(p_struct->path);
300  }
301  if (p_src) {
302  p_struct->path = strdup(p_src);
303  } else {
304  p_struct->path = NULL;
305  }
306 }
307 
309  assert(p_struct);
310  p_struct->fileType = p_src;
311 }
312 
314  assert(p_struct);
315  p_struct->permissions = p_src;
316 }
317 
319  assert(p_struct);
320  p_struct->permissions |= p_src;
321 }
322 
324  assert(p_struct);
325  p_struct->permissions &= ~p_src;
326 }
327 
329  assert(p_struct);
330  if (p_struct->atime) {
331  GWEN_Time_free(p_struct->atime);
332  }
333  p_struct->atime = p_src;
334 }
335 
337  assert(p_struct);
338  if (p_struct->mtime) {
339  GWEN_Time_free(p_struct->mtime);
340  }
341  p_struct->mtime = p_src;
342 }
343 
345  assert(p_struct);
346  if (p_struct->ctime) {
347  GWEN_Time_free(p_struct->ctime);
348  }
349  p_struct->ctime = p_src;
350 }
351 
352 void GWEN_SarFileHeader_SetFileSize(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src) {
353  assert(p_struct);
354  p_struct->fileSize = p_src;
355 }
356 
358  assert(p_struct);
359  p_struct->headerStartPos = p_src;
360 }
361 
362 void GWEN_SarFileHeader_SetHeaderSize(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src) {
363  assert(p_struct);
364  p_struct->headerSize = p_src;
365 }
366 
367 void GWEN_SarFileHeader_SetDataPos(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src) {
368  assert(p_struct);
369  p_struct->dataPos = p_src;
370 }
371 
372 void GWEN_SarFileHeader_SetDataSize(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src) {
373  assert(p_struct);
374  p_struct->dataSize = p_src;
375 }
376 
377 void GWEN_SarFileHeader_SetHashPos(GWEN_SAR_FILEHEADER *p_struct, uint64_t p_src) {
378  assert(p_struct);
379  p_struct->hashPos = p_src;
380 }
381 
382 GWEN_SAR_FILEHEADER_LIST *GWEN_SarFileHeader_List_dup(const GWEN_SAR_FILEHEADER_LIST *p_src) {
383  GWEN_SAR_FILEHEADER_LIST *p_dest;
384  GWEN_SAR_FILEHEADER *p_elem;
385 
386  assert(p_src);
387  p_dest = GWEN_SarFileHeader_List_new();
388  p_elem = GWEN_SarFileHeader_List_First(p_src);
389  while(p_elem) {
390  GWEN_SAR_FILEHEADER *p_cpy;
391 
392  p_cpy = GWEN_SarFileHeader_dup(p_elem);
393  GWEN_SarFileHeader_List_Add(p_cpy, p_dest);
394  p_elem = GWEN_SarFileHeader_List_Next(p_elem);
395  }
396 
397  return p_dest;
398 }
399 
400 
401 /* code headers */
402