12 #include "tm_enum_p.h"
14 #include <gwenhywfar/misc.h>
15 #include <gwenhywfar/debug.h>
30 p_struct->prefix=
NULL;
32 p_struct->items=Typemaker2_Item_List_new();
33 p_struct->toStringFn=
NULL;
34 p_struct->fromStringFn=
NULL;
45 free(p_struct->prefix);
47 Typemaker2_Item_List_free(p_struct->items);
48 free(p_struct->toStringFn);
49 free(p_struct->fromStringFn);
65 p_struct->id=strdup(p_src->id);
69 if (p_struct->prefix) {
70 free(p_struct->prefix);
71 p_struct->prefix=
NULL;
74 p_struct->prefix=strdup(p_src->prefix);
83 p_struct->type=strdup(p_src->type);
87 if (p_struct->items) {
88 Typemaker2_Item_List_free(p_struct->items);
96 if (p_struct->toStringFn) {
97 free(p_struct->toStringFn);
98 p_struct->toStringFn=
NULL;
100 if (p_src->toStringFn) {
101 p_struct->toStringFn=strdup(p_src->toStringFn);
105 if (p_struct->fromStringFn) {
106 free(p_struct->fromStringFn);
107 p_struct->fromStringFn=
NULL;
109 if (p_src->fromStringFn) {
110 p_struct->fromStringFn=strdup(p_src->fromStringFn);
125 p_struct->id=strdup(p_src->id);
129 if (p_struct->prefix) {
130 free(p_struct->prefix);
131 p_struct->prefix=
NULL;
134 p_struct->prefix=strdup(p_src->prefix);
138 if (p_struct->type) {
139 free(p_struct->type);
143 p_struct->type=strdup(p_src->type);
147 if (p_struct->items) {
148 Typemaker2_Item_List_free(p_struct->items);
149 p_struct->items=
NULL;
156 if (p_struct->toStringFn) {
157 free(p_struct->toStringFn);
158 p_struct->toStringFn=
NULL;
160 if (p_src->toStringFn) {
161 p_struct->toStringFn=strdup(p_src->toStringFn);
165 if (p_struct->fromStringFn) {
166 free(p_struct->fromStringFn);
167 p_struct->fromStringFn=
NULL;
169 if (p_src->fromStringFn) {
170 p_struct->fromStringFn=strdup(p_src->fromStringFn);
183 return p_struct->prefix;
188 return p_struct->type;
193 return p_struct->items;
198 return p_struct->toStringFn;
203 return p_struct->fromStringFn;
212 p_struct->id=strdup(p_src);
221 if (p_struct->prefix) {
222 free(p_struct->prefix);
225 p_struct->prefix=strdup(p_src);
228 p_struct->prefix=
NULL;
234 if (p_struct->type) {
235 free(p_struct->type);
238 p_struct->type=strdup(p_src);
247 if (p_struct->items) {
248 Typemaker2_Item_List_free(p_struct->items);
254 p_struct->items=Typemaker2_Item_List_new();
260 if (p_struct->toStringFn) {
261 free(p_struct->toStringFn);
264 p_struct->toStringFn=strdup(p_src);
267 p_struct->toStringFn=
NULL;
273 if (p_struct->fromStringFn) {
274 free(p_struct->fromStringFn);
277 p_struct->fromStringFn=strdup(p_src);
280 p_struct->fromStringFn=
NULL;
285 TYPEMAKER2_ENUM_LIST *p_dest;
289 p_dest=Typemaker2_Enum_List_new();
290 p_elem=Typemaker2_Enum_List_First(p_src);
295 Typemaker2_Enum_List_Add(p_cpy, p_dest);
296 p_elem=Typemaker2_Enum_List_Next(p_elem);
309 if (p_struct->id==
NULL) {
314 if (p_struct->prefix) {
315 free(p_struct->prefix);
318 if (p_struct->prefix==
NULL) {
319 p_struct->prefix=
NULL;
323 if (p_struct->type) {
324 free(p_struct->type);
327 if (p_struct->type==
NULL) {
332 if (p_struct->items) {
333 Typemaker2_Item_List_free(p_struct->items);
336 p_struct->items=Typemaker2_Item_List_new();
339 if (p_struct->toStringFn) {
340 free(p_struct->toStringFn);
343 p_struct->toStringFn=
NULL;
346 if (p_struct->fromStringFn) {
347 free(p_struct->fromStringFn);
350 p_struct->fromStringFn=
NULL;
void Typemaker2_Enum_WriteXml(const TYPEMAKER2_ENUM *p_struct, GWEN_XMLNODE *p_db)
const char * Typemaker2_Enum_GetFromStringFn(const TYPEMAKER2_ENUM *p_struct)
TYPEMAKER2_ITEM_LIST * Typemaker2_Enum_GetItems(const TYPEMAKER2_ENUM *p_struct)
TYPEMAKER2_ENUM * Typemaker2_Enum_fromXml(GWEN_XMLNODE *p_db)
const char * GWEN_XMLNode_GetProperty(const GWEN_XMLNODE *n, const char *name, const char *defaultValue)
TYPEMAKER2_ENUM_LIST * Typemaker2_Enum_List_dup(const TYPEMAKER2_ENUM_LIST *p_src)
TYPEMAKER2_ENUM * Typemaker2_Enum_dup(const TYPEMAKER2_ENUM *p_src)
#define GWEN_FREE_OBJECT(varname)
void Typemaker2_Enum_ReadXml(TYPEMAKER2_ENUM *p_struct, GWEN_XMLNODE *p_db)
void GWEN_XMLNode_SetProperty(GWEN_XMLNODE *n, const char *name, const char *value)
TYPEMAKER2_ENUM * Typemaker2_Enum_copy(TYPEMAKER2_ENUM *p_struct, const TYPEMAKER2_ENUM *p_src)
struct TYPEMAKER2_ENUM TYPEMAKER2_ENUM
void Typemaker2_Enum_SetFromStringFn(TYPEMAKER2_ENUM *p_struct, const char *p_src)
void Typemaker2_Enum_toXml(const TYPEMAKER2_ENUM *p_struct, GWEN_XMLNODE *p_db)
void Typemaker2_Enum_SetItems(TYPEMAKER2_ENUM *p_struct, const TYPEMAKER2_ITEM_LIST *p_src)
TYPEMAKER2_ENUM * Typemaker2_Enum_new(void)
const char * Typemaker2_Enum_GetId(const TYPEMAKER2_ENUM *p_struct)
#define GWEN_NEW_OBJECT(typ, varname)
void Typemaker2_Enum_SetType(TYPEMAKER2_ENUM *p_struct, const char *p_src)
void Typemaker2_Enum_free(TYPEMAKER2_ENUM *p_struct)
TYPEMAKER2_ITEM_LIST * Typemaker2_Item_List_dup(const TYPEMAKER2_ITEM_LIST *p_src)
const char * Typemaker2_Enum_GetPrefix(const TYPEMAKER2_ENUM *p_struct)
void Typemaker2_Enum_SetPrefix(TYPEMAKER2_ENUM *p_struct, const char *p_src)
void Typemaker2_Enum_SetId(TYPEMAKER2_ENUM *p_struct, const char *p_src)
void Typemaker2_Enum_SetToStringFn(TYPEMAKER2_ENUM *p_struct, const char *p_src)
#define GWEN_LIST_INIT(t, element)
#define GWEN_LIST_FUNCTIONS(t, pr)
const char * Typemaker2_Enum_GetToStringFn(const TYPEMAKER2_ENUM *p_struct)
const char * Typemaker2_Enum_GetType(const TYPEMAKER2_ENUM *p_struct)
#define GWEN_LIST_FINI(t, element)
struct GWEN__XMLNODE GWEN_XMLNODE