1 /**********************************************************
2  * This file has been automatically created by "typemaker2"
3  * from the file "tm_define.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 "tm_define_p.h"
13 
14 #include <gwenhywfar/misc.h>
15 #include <gwenhywfar/debug.h>
16 
17 /* code headers */
18 
19 /* macro functions */
GWEN_LIST_FUNCTIONS(TYPEMAKER2_DEFINE,Typemaker2_Define)20 GWEN_LIST_FUNCTIONS(TYPEMAKER2_DEFINE, Typemaker2_Define)
21 
22 
23 int Typemaker2_Define_Mode_fromString(const char *p_s)
24 {
25   if (p_s && *p_s) {
26     if (strcasecmp(p_s, "sequence")==0)
27       return Typemaker2_Define_Mode_Sequence;
28     else if (strcasecmp(p_s, "bitField")==0)
29       return Typemaker2_Define_Mode_BitField;
30   }
31   return Typemaker2_Define_Mode_Unknown;
32 }
33 
Typemaker2_Define_Mode_toString(int p_i)34 const char *Typemaker2_Define_Mode_toString(int p_i)
35 {
36   switch (p_i) {
37   case Typemaker2_Define_Mode_Sequence:
38     return "sequence";
39   case Typemaker2_Define_Mode_BitField:
40     return "bitField";
41   default:
42     return "unknown";
43   }
44 }
45 
Typemaker2_Define_new(void)46 TYPEMAKER2_DEFINE *Typemaker2_Define_new(void)
47 {
48   TYPEMAKER2_DEFINE *p_struct;
49 
50   GWEN_NEW_OBJECT(TYPEMAKER2_DEFINE, p_struct)
51   GWEN_LIST_INIT(TYPEMAKER2_DEFINE, p_struct)
52   /* members */
53   p_struct->id=NULL;
54   p_struct->prefix=NULL;
55   p_struct->type=NULL;
56   p_struct->items=Typemaker2_Item_List_new();
57   p_struct->mode=Typemaker2_Define_Mode_Unknown;
58   p_struct->startValue=0;
59   p_struct->lastValue=0;
60   /* virtual functions */
61 
62   return p_struct;
63 }
64 
Typemaker2_Define_free(TYPEMAKER2_DEFINE * p_struct)65 void Typemaker2_Define_free(TYPEMAKER2_DEFINE *p_struct)
66 {
67   if (p_struct) {
68     GWEN_LIST_FINI(TYPEMAKER2_DEFINE, p_struct)
69     /* members */
70     free(p_struct->id);
71     free(p_struct->prefix);
72     free(p_struct->type);
73     Typemaker2_Item_List_free(p_struct->items);
74     GWEN_FREE_OBJECT(p_struct);
75   }
76 }
77 
Typemaker2_Define_dup(const TYPEMAKER2_DEFINE * p_src)78 TYPEMAKER2_DEFINE *Typemaker2_Define_dup(const TYPEMAKER2_DEFINE *p_src)
79 {
80   TYPEMAKER2_DEFINE *p_struct;
81 
82   assert(p_src);
83   p_struct=Typemaker2_Define_new();
84   /* member "id" */
85   if (p_struct->id) {
86     free(p_struct->id);
87     p_struct->id=NULL;
88   }
89   if (p_src->id) {
90     p_struct->id=strdup(p_src->id);
91   }
92 
93   /* member "prefix" */
94   if (p_struct->prefix) {
95     free(p_struct->prefix);
96     p_struct->prefix=NULL;
97   }
98   if (p_src->prefix) {
99     p_struct->prefix=strdup(p_src->prefix);
100   }
101 
102   /* member "type" */
103   if (p_struct->type) {
104     free(p_struct->type);
105     p_struct->type=NULL;
106   }
107   if (p_src->type) {
108     p_struct->type=strdup(p_src->type);
109   }
110 
111   /* member "items" */
112   if (p_struct->items) {
113     Typemaker2_Item_List_free(p_struct->items);
114     p_struct->items=NULL;
115   }
116   if (p_src->items) {
117     p_struct->items=Typemaker2_Item_List_dup(p_src->items);
118   }
119 
120   /* member "mode" */
121   p_struct->mode=p_src->mode;
122 
123   /* member "startValue" */
124   p_struct->startValue=p_src->startValue;
125 
126   /* member "lastValue" */
127   p_struct->lastValue=p_src->lastValue;
128 
129   return p_struct;
130 }
131 
Typemaker2_Define_copy(TYPEMAKER2_DEFINE * p_struct,const TYPEMAKER2_DEFINE * p_src)132 TYPEMAKER2_DEFINE *Typemaker2_Define_copy(TYPEMAKER2_DEFINE *p_struct, const TYPEMAKER2_DEFINE *p_src)
133 {
134   assert(p_struct);
135   assert(p_src);
136   /* member "id" */
137   if (p_struct->id) {
138     free(p_struct->id);
139     p_struct->id=NULL;
140   }
141   if (p_src->id) {
142     p_struct->id=strdup(p_src->id);
143   }
144 
145   /* member "prefix" */
146   if (p_struct->prefix) {
147     free(p_struct->prefix);
148     p_struct->prefix=NULL;
149   }
150   if (p_src->prefix) {
151     p_struct->prefix=strdup(p_src->prefix);
152   }
153 
154   /* member "type" */
155   if (p_struct->type) {
156     free(p_struct->type);
157     p_struct->type=NULL;
158   }
159   if (p_src->type) {
160     p_struct->type=strdup(p_src->type);
161   }
162 
163   /* member "items" */
164   if (p_struct->items) {
165     Typemaker2_Item_List_free(p_struct->items);
166     p_struct->items=NULL;
167   }
168   if (p_src->items) {
169     p_struct->items=Typemaker2_Item_List_dup(p_src->items);
170   }
171 
172   /* member "mode" */
173   p_struct->mode=p_src->mode;
174 
175   /* member "startValue" */
176   p_struct->startValue=p_src->startValue;
177 
178   /* member "lastValue" */
179   p_struct->lastValue=p_src->lastValue;
180 
181   return p_struct;
182 }
183 
Typemaker2_Define_GetId(const TYPEMAKER2_DEFINE * p_struct)184 const char *Typemaker2_Define_GetId(const TYPEMAKER2_DEFINE *p_struct)
185 {
186   assert(p_struct);
187   return p_struct->id;
188 }
189 
Typemaker2_Define_GetPrefix(const TYPEMAKER2_DEFINE * p_struct)190 const char *Typemaker2_Define_GetPrefix(const TYPEMAKER2_DEFINE *p_struct)
191 {
192   assert(p_struct);
193   return p_struct->prefix;
194 }
195 
Typemaker2_Define_GetType(const TYPEMAKER2_DEFINE * p_struct)196 const char *Typemaker2_Define_GetType(const TYPEMAKER2_DEFINE *p_struct)
197 {
198   assert(p_struct);
199   return p_struct->type;
200 }
201 
Typemaker2_Define_GetItems(const TYPEMAKER2_DEFINE * p_struct)202 TYPEMAKER2_ITEM_LIST *Typemaker2_Define_GetItems(const TYPEMAKER2_DEFINE *p_struct)
203 {
204   assert(p_struct);
205   return p_struct->items;
206 }
207 
Typemaker2_Define_GetMode(const TYPEMAKER2_DEFINE * p_struct)208 int Typemaker2_Define_GetMode(const TYPEMAKER2_DEFINE *p_struct)
209 {
210   assert(p_struct);
211   return p_struct->mode;
212 }
213 
Typemaker2_Define_GetStartValue(const TYPEMAKER2_DEFINE * p_struct)214 int Typemaker2_Define_GetStartValue(const TYPEMAKER2_DEFINE *p_struct)
215 {
216   assert(p_struct);
217   return p_struct->startValue;
218 }
219 
Typemaker2_Define_GetLastValue(const TYPEMAKER2_DEFINE * p_struct)220 int Typemaker2_Define_GetLastValue(const TYPEMAKER2_DEFINE *p_struct)
221 {
222   assert(p_struct);
223   return p_struct->lastValue;
224 }
225 
Typemaker2_Define_SetId(TYPEMAKER2_DEFINE * p_struct,const char * p_src)226 void Typemaker2_Define_SetId(TYPEMAKER2_DEFINE *p_struct, const char *p_src)
227 {
228   assert(p_struct);
229   if (p_struct->id) {
230     free(p_struct->id);
231   }
232   if (p_src) {
233     p_struct->id=strdup(p_src);
234   }
235   else {
236     p_struct->id=NULL;
237   }
238 }
239 
Typemaker2_Define_SetPrefix(TYPEMAKER2_DEFINE * p_struct,const char * p_src)240 void Typemaker2_Define_SetPrefix(TYPEMAKER2_DEFINE *p_struct, const char *p_src)
241 {
242   assert(p_struct);
243   if (p_struct->prefix) {
244     free(p_struct->prefix);
245   }
246   if (p_src) {
247     p_struct->prefix=strdup(p_src);
248   }
249   else {
250     p_struct->prefix=NULL;
251   }
252 }
253 
Typemaker2_Define_SetType(TYPEMAKER2_DEFINE * p_struct,const char * p_src)254 void Typemaker2_Define_SetType(TYPEMAKER2_DEFINE *p_struct, const char *p_src)
255 {
256   assert(p_struct);
257   if (p_struct->type) {
258     free(p_struct->type);
259   }
260   if (p_src) {
261     p_struct->type=strdup(p_src);
262   }
263   else {
264     p_struct->type=NULL;
265   }
266 }
267 
Typemaker2_Define_SetItems(TYPEMAKER2_DEFINE * p_struct,const TYPEMAKER2_ITEM_LIST * p_src)268 void Typemaker2_Define_SetItems(TYPEMAKER2_DEFINE *p_struct, const TYPEMAKER2_ITEM_LIST *p_src)
269 {
270   assert(p_struct);
271   if (p_struct->items) {
272     Typemaker2_Item_List_free(p_struct->items);
273   }
274   if (p_src) {
275     p_struct->items=Typemaker2_Item_List_dup(p_src);
276   }
277   else {
278     p_struct->items=Typemaker2_Item_List_new();
279   }
280 }
281 
Typemaker2_Define_SetMode(TYPEMAKER2_DEFINE * p_struct,int p_src)282 void Typemaker2_Define_SetMode(TYPEMAKER2_DEFINE *p_struct, int p_src)
283 {
284   assert(p_struct);
285   p_struct->mode=p_src;
286 }
287 
Typemaker2_Define_SetStartValue(TYPEMAKER2_DEFINE * p_struct,int p_src)288 void Typemaker2_Define_SetStartValue(TYPEMAKER2_DEFINE *p_struct, int p_src)
289 {
290   assert(p_struct);
291   p_struct->startValue=p_src;
292 }
293 
Typemaker2_Define_SetLastValue(TYPEMAKER2_DEFINE * p_struct,int p_src)294 void Typemaker2_Define_SetLastValue(TYPEMAKER2_DEFINE *p_struct, int p_src)
295 {
296   assert(p_struct);
297   p_struct->lastValue=p_src;
298 }
299 
Typemaker2_Define_List_dup(const TYPEMAKER2_DEFINE_LIST * p_src)300 TYPEMAKER2_DEFINE_LIST *Typemaker2_Define_List_dup(const TYPEMAKER2_DEFINE_LIST *p_src)
301 {
302   TYPEMAKER2_DEFINE_LIST *p_dest;
303   TYPEMAKER2_DEFINE *p_elem;
304 
305   assert(p_src);
306   p_dest=Typemaker2_Define_List_new();
307   p_elem=Typemaker2_Define_List_First(p_src);
308   while (p_elem) {
309     TYPEMAKER2_DEFINE *p_cpy;
310 
311     p_cpy=Typemaker2_Define_dup(p_elem);
312     Typemaker2_Define_List_Add(p_cpy, p_dest);
313     p_elem=Typemaker2_Define_List_Next(p_elem);
314   }
315 
316   return p_dest;
317 }
318 
Typemaker2_Define_ReadXml(TYPEMAKER2_DEFINE * p_struct,GWEN_XMLNODE * p_db)319 void Typemaker2_Define_ReadXml(TYPEMAKER2_DEFINE *p_struct, GWEN_XMLNODE *p_db)
320 {
321   assert(p_struct);
322   /* member "id" */
323   if (p_struct->id) {
324     free(p_struct->id);
325   }
326   {
327     const char *s;
328     s=GWEN_XMLNode_GetProperty(p_db, "id", NULL);
329     if (s)
330       p_struct->id=strdup(s);
331   }
332   if (p_struct->id==NULL) {  /* member "id" is volatile, just presetting */
333     p_struct->id=NULL;
334   }
335 
336   /* member "prefix" */
337   if (p_struct->prefix) {
338     free(p_struct->prefix);
339   }
340   {
341     const char *s;
342     s=GWEN_XMLNode_GetProperty(p_db, "prefix", NULL);
343     if (s)
344       p_struct->prefix=strdup(s);
345   }
346   if (p_struct->prefix==NULL) {  /* member "prefix" is volatile, just presetting */
347     p_struct->prefix=NULL;
348   }
349 
350   /* member "type" */
351   if (p_struct->type) {
352     free(p_struct->type);
353   }
354   {
355     const char *s;
356     s=GWEN_XMLNode_GetProperty(p_db, "type", NULL);
357     if (s)
358       p_struct->type=strdup(s);
359   }
360   if (p_struct->type==NULL) {  /* member "type" is volatile, just presetting */
361     p_struct->type=NULL;
362   }
363 
364   /* member "items" */
365   if (p_struct->items) {
366     Typemaker2_Item_List_free(p_struct->items);
367   }
368   /* member "items" is volatile, just presetting */
369   p_struct->items=Typemaker2_Item_List_new();
370 
371   /* member "mode" */
372   {
373     const char *s;
374     s=GWEN_XMLNode_GetProperty(p_db, "mode", NULL);
375     if (s)
376       p_struct->mode=Typemaker2_Define_Mode_fromString(s);
377     else
378       p_struct->mode=Typemaker2_Define_Mode_Unknown;
379   }
380 
381   /* member "startValue" */
382   p_struct->startValue=GWEN_XMLNode_GetIntValue(p_db, "startValue", 0);
383 
384   /* member "lastValue" */
385   /* member "lastValue" is volatile, just presetting */
386   p_struct->lastValue=0;
387 
388 }
389 
Typemaker2_Define_WriteXml(const TYPEMAKER2_DEFINE * p_struct,GWEN_XMLNODE * p_db)390 void Typemaker2_Define_WriteXml(const TYPEMAKER2_DEFINE *p_struct, GWEN_XMLNODE *p_db)
391 {
392   assert(p_struct);
393   /* member "id" */
394   GWEN_XMLNode_SetProperty(p_db, "id", p_struct->id);
395 
396   /* member "prefix" */
397   GWEN_XMLNode_SetProperty(p_db, "prefix", p_struct->prefix);
398 
399   /* member "type" */
400   GWEN_XMLNode_SetProperty(p_db, "type", p_struct->type);
401 
402   /* member "items" is volatile, not writing to xml */
403 
404   /* member "mode" */
405   GWEN_XMLNode_SetProperty(p_db, "mode", Typemaker2_Define_Mode_toString(p_struct->mode));
406 
407   /* member "startValue" */
408   GWEN_XMLNode_SetIntValue(p_db, "startValue", p_struct->startValue);
409 
410   /* member "lastValue" is volatile, not writing to xml */
411 
412 }
413 
Typemaker2_Define_toXml(const TYPEMAKER2_DEFINE * p_struct,GWEN_XMLNODE * p_db)414 void Typemaker2_Define_toXml(const TYPEMAKER2_DEFINE *p_struct, GWEN_XMLNODE *p_db)
415 {
416   Typemaker2_Define_WriteXml(p_struct, p_db);
417 }
418 
Typemaker2_Define_fromXml(GWEN_XMLNODE * p_db)419 TYPEMAKER2_DEFINE *Typemaker2_Define_fromXml(GWEN_XMLNODE *p_db)
420 {
421   TYPEMAKER2_DEFINE *p_struct;
422   p_struct=Typemaker2_Define_new();
423   Typemaker2_Define_ReadXml(p_struct, p_db);
424   return p_struct;
425 }
426 
427 
428 /* code headers */
429 
430