gwenhywfar  4.99.8beta
tm_item.c
Go to the documentation of this file.
1 /**********************************************************
2  * This file has been automatically created by "typemaker2"
3  * from the file "tm_item.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_item_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(TYPEMAKER2_ITEM, Typemaker2_Item)
21 GWEN_LIST2_FUNCTIONS(TYPEMAKER2_ITEM, Typemaker2_Item)
22 
23 
24 TYPEMAKER2_ITEM *Typemaker2_Item_new(void) {
25  TYPEMAKER2_ITEM *p_struct;
26 
27  GWEN_NEW_OBJECT(TYPEMAKER2_ITEM, p_struct)
28  GWEN_LIST_INIT(TYPEMAKER2_ITEM, p_struct)
29  /* members */
30  p_struct->name=NULL;
31  p_struct->value=NULL;
32  /* virtual functions */
33 
34  return p_struct;
35 }
36 
38  if (p_struct) {
40  /* members */
41  free(p_struct->name);
42  free(p_struct->value);
43  GWEN_FREE_OBJECT(p_struct);
44  }
45 }
46 
48  TYPEMAKER2_ITEM *p_struct;
49 
50  assert(p_src);
51  p_struct=Typemaker2_Item_new();
52  /* member "name" */
53  if (p_struct->name) {
54  free(p_struct->name);
55  p_struct->name=NULL;
56  }
57  if (p_src->name) {
58  p_struct->name=strdup(p_src->name);
59  }
60 
61  /* member "value" */
62  if (p_struct->value) {
63  free(p_struct->value);
64  p_struct->value=NULL;
65  }
66  if (p_src->value) {
67  p_struct->value=strdup(p_src->value);
68  }
69 
70  return p_struct;
71 }
72 
74  assert(p_struct);
75  assert(p_src);
76  /* member "name" */
77  if (p_struct->name) {
78  free(p_struct->name);
79  p_struct->name=NULL;
80  }
81  if (p_src->name) {
82  p_struct->name=strdup(p_src->name);
83  }
84 
85  /* member "value" */
86  if (p_struct->value) {
87  free(p_struct->value);
88  p_struct->value=NULL;
89  }
90  if (p_src->value) {
91  p_struct->value=strdup(p_src->value);
92  }
93 
94  return p_struct;
95 }
96 
97 const char *Typemaker2_Item_GetName(const TYPEMAKER2_ITEM *p_struct) {
98  assert(p_struct);
99  return p_struct->name;
100 }
101 
102 const char *Typemaker2_Item_GetValue(const TYPEMAKER2_ITEM *p_struct) {
103  assert(p_struct);
104  return p_struct->value;
105 }
106 
107 void Typemaker2_Item_SetName(TYPEMAKER2_ITEM *p_struct, const char *p_src) {
108  assert(p_struct);
109  if (p_struct->name) {
110  free(p_struct->name);
111  }
112  if (p_src) {
113  p_struct->name=strdup(p_src);
114  }
115  else {
116  p_struct->name=NULL;
117  }
118 }
119 
120 void Typemaker2_Item_SetValue(TYPEMAKER2_ITEM *p_struct, const char *p_src) {
121  assert(p_struct);
122  if (p_struct->value) {
123  free(p_struct->value);
124  }
125  if (p_src) {
126  p_struct->value=strdup(p_src);
127  }
128  else {
129  p_struct->value=NULL;
130  }
131 }
132 
133 TYPEMAKER2_ITEM_LIST *Typemaker2_Item_List_dup(const TYPEMAKER2_ITEM_LIST *p_src) {
134  TYPEMAKER2_ITEM_LIST *p_dest;
135  TYPEMAKER2_ITEM *p_elem;
136 
137  assert(p_src);
138  p_dest=Typemaker2_Item_List_new();
139  p_elem=Typemaker2_Item_List_First(p_src);
140  while(p_elem) {
141  TYPEMAKER2_ITEM *p_cpy;
142 
143  p_cpy=Typemaker2_Item_dup(p_elem);
144  Typemaker2_Item_List_Add(p_cpy, p_dest);
145  p_elem=Typemaker2_Item_List_Next(p_elem);
146  }
147 
148  return p_dest;
149 }
150 
152  assert(p_struct);
153  /* member "name" */
154  if (p_struct->name) {
155  free(p_struct->name);
156  }
157  { const char *s; s=GWEN_XMLNode_GetProperty(p_db, "name", NULL); if (s) p_struct->name=strdup(s); }
158  if (p_struct->name==NULL) { /* member "name" is volatile, just presetting */
159  p_struct->name=NULL;
160  }
161 
162  /* member "value" */
163  if (p_struct->value) {
164  free(p_struct->value);
165  }
166  { const char *s; s=GWEN_XMLNode_GetProperty(p_db, "value", NULL); if (s) p_struct->value=strdup(s); }
167  if (p_struct->value==NULL) { /* member "value" is volatile, just presetting */
168  p_struct->value=NULL;
169  }
170 
171 }
172 
174  assert(p_struct);
175  /* member "name" */
176  GWEN_XMLNode_SetProperty(p_db, "name", p_struct->name);
177 
178  /* member "value" */
179  GWEN_XMLNode_SetProperty(p_db, "value", p_struct->value);
180 
181 }
182 
183 void Typemaker2_Item_toXml(const TYPEMAKER2_ITEM *p_struct, GWEN_XMLNODE *p_db) {
184  Typemaker2_Item_WriteXml(p_struct, p_db);
185 }
186 
188  TYPEMAKER2_ITEM *p_struct;
189  p_struct=Typemaker2_Item_new();
190  Typemaker2_Item_ReadXml(p_struct, p_db);
191  return p_struct;
192 }
193 
194 
195 /* code headers */
196 
const char * Typemaker2_Item_GetName(const TYPEMAKER2_ITEM *p_struct)
Definition: tm_item.c:97
void Typemaker2_Item_ReadXml(TYPEMAKER2_ITEM *p_struct, GWEN_XMLNODE *p_db)
Definition: tm_item.c:151
const char * GWEN_XMLNode_GetProperty(const GWEN_XMLNODE *n, const char *name, const char *defaultValue)
Definition: xml.c:228
#define GWEN_FREE_OBJECT(varname)
Definition: memory.h:92
#define NULL
Definition: binreloc.c:290
void GWEN_XMLNode_SetProperty(GWEN_XMLNODE *n, const char *name, const char *value)
Definition: xml.c:308
void Typemaker2_Item_toXml(const TYPEMAKER2_ITEM *p_struct, GWEN_XMLNODE *p_db)
Definition: tm_item.c:183
struct TYPEMAKER2_ITEM TYPEMAKER2_ITEM
Definition: tm_item.h:22
const char * Typemaker2_Item_GetValue(const TYPEMAKER2_ITEM *p_struct)
Definition: tm_item.c:102
#define GWEN_NEW_OBJECT(typ, varname)
Definition: memory.h:86
TYPEMAKER2_ITEM * Typemaker2_Item_fromXml(GWEN_XMLNODE *p_db)
Definition: tm_item.c:187
TYPEMAKER2_ITEM_LIST * Typemaker2_Item_List_dup(const TYPEMAKER2_ITEM_LIST *p_src)
Definition: tm_item.c:133
TYPEMAKER2_ITEM * Typemaker2_Item_copy(TYPEMAKER2_ITEM *p_struct, const TYPEMAKER2_ITEM *p_src)
Definition: tm_item.c:73
void Typemaker2_Item_SetValue(TYPEMAKER2_ITEM *p_struct, const char *p_src)
Definition: tm_item.c:120
void Typemaker2_Item_WriteXml(const TYPEMAKER2_ITEM *p_struct, GWEN_XMLNODE *p_db)
Definition: tm_item.c:173
GWEN_LIST2_FUNCTIONS(TYPEMAKER2_TYPE, Typemaker2_Type)
TYPEMAKER2_ITEM * Typemaker2_Item_dup(const TYPEMAKER2_ITEM *p_src)
Definition: tm_item.c:47
void Typemaker2_Item_SetName(TYPEMAKER2_ITEM *p_struct, const char *p_src)
Definition: tm_item.c:107
#define GWEN_LIST_INIT(t, element)
Definition: list1.h:465
#define GWEN_LIST_FUNCTIONS(t, pr)
Definition: list1.h:366
TYPEMAKER2_ITEM * Typemaker2_Item_new(void)
Definition: tm_item.c:24
void Typemaker2_Item_free(TYPEMAKER2_ITEM *p_struct)
Definition: tm_item.c:37
#define GWEN_LIST_FINI(t, element)
Definition: list1.h:474
struct GWEN__XMLNODE GWEN_XMLNODE
Definition: xml.h:148