15 #include "tm_member_p.h" 19 #include <gwenhywfar/debug.h> 20 #include <gwenhywfar/misc.h> 39 tm->codeDefs=Typemaker2_Code_List_new();
50 if (tm->refCount==1) {
52 Typemaker2_Code_List_free(tm->codeDefs);
55 free(tm->elementName);
58 free(tm->defaultValue);
59 free(tm->presetValue);
108 assert(tm->refCount);
117 assert(tm->refCount);
120 tm->typeName=strdup(s);
130 assert(tm->refCount);
131 return tm->elementName;
139 assert(tm->refCount);
140 free(tm->elementName);
142 tm->elementName=strdup(s);
144 tm->elementName=
NULL;
152 assert(tm->refCount);
161 assert(tm->refCount);
174 assert(tm->refCount);
183 assert(tm->refCount);
186 tm->fieldId=strdup(s);
196 assert(tm->refCount);
205 assert(tm->refCount);
208 tm->enumId=strdup(s);
218 assert(tm->refCount);
227 assert(tm->refCount);
230 tm->defineId=strdup(s);
240 assert(tm->refCount);
242 if (tm->flags==0 && tm->typePtr)
253 assert(tm->refCount);
262 assert(tm->refCount);
264 if (tm->setFlags==0 && tm->typePtr)
275 assert(tm->refCount);
284 assert(tm->refCount);
286 if (tm->getFlags==0 && tm->typePtr)
297 assert(tm->refCount);
306 assert(tm->refCount);
308 if (tm->dupFlags==0 && tm->typePtr)
319 assert(tm->refCount);
328 assert(tm->refCount);
330 if (tm->copyFlags==0 && tm->typePtr)
333 return tm->copyFlags;
341 assert(tm->refCount);
350 assert(tm->refCount);
363 assert(tm->refCount);
372 assert(tm->refCount);
382 assert(tm->refCount);
391 assert(tm->refCount);
393 if (tm->defaultValue==
NULL && tm->typePtr)
395 return tm->defaultValue;
403 assert(tm->refCount);
405 free(tm->defaultValue);
407 tm->defaultValue=strdup(s);
409 tm->defaultValue=
NULL;
417 assert(tm->refCount);
419 if (tm->presetValue==
NULL && tm->typePtr)
421 return tm->presetValue;
429 assert(tm->refCount);
431 free(tm->presetValue);
433 tm->presetValue=strdup(s);
435 tm->presetValue=
NULL;
443 assert(tm->refCount);
445 if (tm->aedb_type==
NULL && tm->typePtr)
448 return tm->aedb_type;
456 assert(tm->refCount);
460 tm->aedb_type=strdup(s);
470 assert(tm->refCount);
479 assert(tm->refCount);
488 assert(tm->refCount);
497 assert(tm->refCount);
506 assert(tm->refCount);
507 return tm->definePtr;
515 assert(tm->refCount);
524 assert(tm->refCount);
533 assert(tm->refCount);
542 assert(tm->refCount);
543 return tm->memberPosition;
551 assert(tm->refCount);
552 tm->memberPosition=i;
560 assert(tm->refCount);
573 assert(tm->refCount);
607 if (1==sscanf(s,
"%i", &i))
705 Typemaker2_Code_List_Add(tc, tm->codeDefs);
722 for (i=0; i<indent; i++)
724 fprintf(f,
"Member\n");
726 for (i=0; i<indent+2; i++)
728 fprintf(f,
"Name : %s\n", (tm->name)?(tm->name):
"<null>");
730 for (i=0; i<indent+2; i++)
732 fprintf(f,
"Typename : %s\n", (tm->typeName)?(tm->typeName):
"<null>");
734 for (i=0; i<indent+2; i++)
736 fprintf(f,
"Elementname : %s\n", (tm->elementName)?(tm->elementName):
"<null>");
738 for (i=0; i<indent+2; i++)
740 fprintf(f,
"Field Id : %s\n", (tm->fieldId)?(tm->fieldId):
"<null>");
742 for (i=0; i<indent+2; i++)
746 for (i=0; i<indent+2; i++)
750 for (i=0; i<indent+2; i++)
754 for (i=0; i<indent+2; i++)
758 for (i=0; i<indent+2; i++)
762 for (i=0; i<indent+2; i++)
766 fprintf(f,
"Default : %s [%s]\n", s1?s1:
"<null>", s2?s2:
"<null>");
768 for (i=0; i<indent+2; i++)
772 fprintf(f,
"Preset : %s [%s]\n", s1?s1:
"<null>", s2?s2:
"<null>");
774 for (i=0; i<indent+2; i++)
776 fprintf(f,
"Position : %d\n", tm->memberPosition);
778 for (i=0; i<indent+2; i++)
780 fprintf(f,
"Description : %s\n", (tm->descr)?(tm->descr):
"<null>");
const char * Typemaker2_Member_GetTypeName(const TYPEMAKER2_MEMBER *tm)
int Typemaker2_Type_GetAccess(const TYPEMAKER2_TYPE *ty)
void Typemaker2_Member_SetDescription(TYPEMAKER2_MEMBER *tm, const char *s)
void Typemaker2_Member_SetTypeName(TYPEMAKER2_MEMBER *tm, const char *s)
void Typemaker2_Member_SetName(TYPEMAKER2_MEMBER *tm, const char *s)
TYPEMAKER2_TYPE * Typemaker2_Member_GetTypePtr(const TYPEMAKER2_MEMBER *tm)
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
uint32_t Typemaker2_Member_GetFlags(const TYPEMAKER2_MEMBER *tm)
void Typemaker2_Code_SetMemberFlagsMaskInt(TYPEMAKER2_CODE *p_struct, uint32_t p_src)
TYPEMAKER2_DEFINE * Typemaker2_Member_GetDefinePtr(const TYPEMAKER2_MEMBER *tm)
GWENHYWFAR_API int GWEN_XMLNode_toBuffer(const GWEN_XMLNODE *n, GWEN_BUFFER *buf, uint32_t flags)
#define GWEN_XML_FLAGS_SIMPLE
const char * GWEN_XMLNode_GetProperty(const GWEN_XMLNODE *n, const char *name, const char *defaultValue)
const char * Typemaker2_Member_GetFieldId(const TYPEMAKER2_MEMBER *tm)
const char * Typemaker2_Type_GetAqDbType(const TYPEMAKER2_TYPE *ty)
void Typemaker2_Member_SetDupFlags(TYPEMAKER2_MEMBER *tm, uint32_t i)
GWEN_XMLNODE * GWEN_XMLNode_FindNextTag(const GWEN_XMLNODE *n, const char *tname, const char *pname, const char *pvalue)
const char * Typemaker2_Code_GetMemberFlagsMask(const TYPEMAKER2_CODE *p_struct)
TYPEMAKER2_MEMBER * Typemaker2_Member_new()
TYPEMAKER2_ENUM * Typemaker2_Member_GetEnumPtr(const TYPEMAKER2_MEMBER *tm)
void Typemaker2_Member_SetSetFlags(TYPEMAKER2_MEMBER *tm, uint32_t i)
void Typemaker2_Member_SetMaxLen(TYPEMAKER2_MEMBER *tm, int i)
const char * Typemaker2_Member_GetDescription(const TYPEMAKER2_MEMBER *tm)
#define GWEN_FREE_OBJECT(varname)
const char * Typemaker2_Member_GetAqDbType(const TYPEMAKER2_MEMBER *tm)
void Typemaker2_Member_free(TYPEMAKER2_MEMBER *tm)
void Typemaker2_Member_SetFieldId(TYPEMAKER2_MEMBER *tm, const char *s)
struct TYPEMAKER2_GROUP TYPEMAKER2_GROUP
uint32_t Typemaker2_Type_GetSetFlags(const TYPEMAKER2_TYPE *ty)
const char * Typemaker2_Code_GetMemberFlagsValue(const TYPEMAKER2_CODE *p_struct)
uint32_t Typemaker2_Member_GetGetFlags(const TYPEMAKER2_MEMBER *tm)
struct TYPEMAKER2_DEFINE TYPEMAKER2_DEFINE
struct TYPEMAKER2_ENUM TYPEMAKER2_ENUM
uint32_t Typemaker2_Type_GetCopyFlags(const TYPEMAKER2_TYPE *ty)
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
int Typemaker2_Member_GetMaxLen(const TYPEMAKER2_MEMBER *tm)
void Typemaker2_Member_Dump(TYPEMAKER2_MEMBER *tm, FILE *f, int indent)
const char * Typemaker2_Type_GetPresetValue(const TYPEMAKER2_TYPE *ty)
const char * Typemaker2_Member_GetDefineId(const TYPEMAKER2_MEMBER *tm)
void Typemaker2_Member_SetDefineId(TYPEMAKER2_MEMBER *tm, const char *s)
const char * Typemaker2_Member_GetPresetValue(const TYPEMAKER2_MEMBER *tm)
#define GWEN_ERROR_BAD_DATA
GWEN_XMLNODE * GWEN_XMLNode_FindFirstTag(const GWEN_XMLNODE *n, const char *tname, const char *pname, const char *pvalue)
int Typemaker2_Member_GetAccess(const TYPEMAKER2_MEMBER *tm)
#define GWEN_NEW_OBJECT(typ, varname)
void Typemaker2_Member_SetGroupPtr(TYPEMAKER2_MEMBER *tm, TYPEMAKER2_GROUP *gr)
const char * GWEN_XMLNode_GetCharValue(const GWEN_XMLNODE *n, const char *name, const char *defValue)
void Typemaker2_Member_SetCopyFlags(TYPEMAKER2_MEMBER *tm, uint32_t i)
void Typemaker2_Member_SetEnumPtr(TYPEMAKER2_MEMBER *tm, TYPEMAKER2_ENUM *te)
int Typemaker2_Member_GetMemberPosition(const TYPEMAKER2_MEMBER *tm)
uint32_t Typemaker2_FlagsFromString(const char *t)
void Typemaker2_Member_SetGetFlags(TYPEMAKER2_MEMBER *tm, uint32_t i)
int Typemaker2_AccessFromString(const char *s)
TYPEMAKER2_CODE_LIST * Typemaker2_Member_GetCodeDefs(const TYPEMAKER2_MEMBER *tm)
void Typemaker2_Member_SetAccess(TYPEMAKER2_MEMBER *tm, int i)
void Typemaker2_Member_SetDefaultValue(TYPEMAKER2_MEMBER *tm, const char *s)
uint32_t Typemaker2_Type_GetDupFlags(const TYPEMAKER2_TYPE *ty)
void Typemaker2_Member_Attach(TYPEMAKER2_MEMBER *tm)
TYPEMAKER2_CODE * Typemaker2_Code_fromXml(GWEN_XMLNODE *p_db)
uint32_t Typemaker2_Member_GetDupFlags(const TYPEMAKER2_MEMBER *tm)
void Typemaker2_Member_SetTypePtr(TYPEMAKER2_MEMBER *tm, TYPEMAKER2_TYPE *ty)
int Typemaker2_Member_readXml(TYPEMAKER2_MEMBER *tm, GWEN_XMLNODE *node, const char *wantedLang)
void GWEN_Buffer_free(GWEN_BUFFER *bf)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
const char * Typemaker2_Member_GetDefaultValue(const TYPEMAKER2_MEMBER *tm)
#define GWEN_XML_FLAGS_HANDLE_COMMENTS
#define DBG_ERROR(dbg_logger, format, args...)
struct TYPEMAKER2_TYPE TYPEMAKER2_TYPE
uint32_t Typemaker2_Member_GetCopyFlags(const TYPEMAKER2_MEMBER *tm)
uint32_t Typemaker2_Type_GetGetFlags(const TYPEMAKER2_TYPE *ty)
void Typemaker2_Member_SetFlags(TYPEMAKER2_MEMBER *tm, uint32_t i)
void Typemaker2_Code_SetMemberFlagsValueInt(TYPEMAKER2_CODE *p_struct, uint32_t p_src)
TYPEMAKER2_GROUP * Typemaker2_Member_GetGroupPtr(const TYPEMAKER2_MEMBER *tm)
#define GWEN_LIST_INIT(t, element)
void Typemaker2_Member_SetDefinePtr(TYPEMAKER2_MEMBER *tm, TYPEMAKER2_DEFINE *td)
const char * Typemaker2_Member_GetEnumId(const TYPEMAKER2_MEMBER *tm)
struct TYPEMAKER2_MEMBER TYPEMAKER2_MEMBER
struct TYPEMAKER2_CODE TYPEMAKER2_CODE
uint32_t Typemaker2_Member_GetSetFlags(const TYPEMAKER2_MEMBER *tm)
#define GWEN_LIST_FUNCTIONS(t, pr)
void Typemaker2_Member_SetMemberPosition(TYPEMAKER2_MEMBER *tm, int i)
const char * Typemaker2_Member_GetElementName(const TYPEMAKER2_MEMBER *tm)
void Typemaker2_Member_SetAqDbType(TYPEMAKER2_MEMBER *tm, const char *s)
void Typemaker2_Member_SetPresetValue(TYPEMAKER2_MEMBER *tm, const char *s)
uint32_t Typemaker2_Type_GetFlags(const TYPEMAKER2_TYPE *ty)
const char * Typemaker2_Type_GetDefaultValue(const TYPEMAKER2_TYPE *ty)
const char * Typemaker2_Member_GetName(const TYPEMAKER2_MEMBER *tm)
#define GWEN_LIST_FINI(t, element)
void Typemaker2_Member_SetEnumId(TYPEMAKER2_MEMBER *tm, const char *s)
void Typemaker2_Member_SetElementName(TYPEMAKER2_MEMBER *tm, const char *s)
struct GWEN__XMLNODE GWEN_XMLNODE