14 #include <gwenhywfar/debug.h>
29 TYPEMAKER2_MEMBER_LIST *tml;
38 tm=Typemaker2_Member_List_First(tml);
46 snprintf(numbuf,
sizeof(numbuf)-1,
"%d",
52 tm=Typemaker2_Member_List_Next(tm);
61 snprintf(numbuf,
sizeof(numbuf)-1,
"%d",
80 TYPEMAKER2_HEADER_LIST *hl;
113 h=Typemaker2_Header_List_First(hl);
132 h=Typemaker2_Header_List_Next(h);
149 if (flags & TYPEMAKER2_TYPEFLAGS_WITH_LIST1) {
173 if (flags & TYPEMAKER2_TYPEFLAGS_WITH_LIST2) {
221 if (flags & TYPEMAKER2_TYPEFLAGS_WITH_TREE) {
245 if (flags & TYPEMAKER2_TYPEFLAGS_WITH_INHERIT) {
263 if (flags & TYPEMAKER2_TYPEFLAGS_WITH_IDMAP) {
289 if (flags & TYPEMAKER2_TYPEFLAGS_WITH_OBJECT) {
305 TYPEMAKER2_HEADER_LIST *hl;
315 h=Typemaker2_Header_List_First(hl);
334 h=Typemaker2_Header_List_Next(h);
351 TYPEMAKER2_HEADER_LIST *hl;
361 h=Typemaker2_Header_List_First(hl);
380 h=Typemaker2_Header_List_Next(h);
397 TYPEMAKER2_MEMBER_LIST *tml;
399 TYPEMAKER2_VIRTUALFN_LIST *fns;
444 tm=Typemaker2_Member_List_First(tml);
467 if (!typeIsWritten) {
477 DBG_ERROR(0,
"Member [%s] has no identifier", xx?xx:
"(unnamed)");
493 snprintf(numbuf,
sizeof(numbuf)-1,
"[%d]",
503 tm=Typemaker2_Member_List_Next(tm);
510 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
514 vf=Typemaker2_VirtualFn_List_First(fns);
522 DBG_ERROR(0,
"Virtual function has no name");
532 DBG_ERROR(0,
"Virtual function has no name");
540 vf=Typemaker2_VirtualFn_List_Next(vf);
635 TYPEMAKER2_MEMBER_LIST *tml;
638 TYPEMAKER2_VIRTUALFN_LIST *tvfl;
724 if (flags & TYPEMAKER2_TYPEFLAGS_WITH_SIGNALS) {
725 TYPEMAKER2_SIGNAL_LIST *slist;
732 sig=Typemaker2_Signal_List_First(slist);
757 sig=Typemaker2_Signal_List_Next(sig);
763 if (flags & TYPEMAKER2_TYPEFLAGS_WITH_SLOTS) {
764 TYPEMAKER2_SLOT_LIST *slist;
771 slot=Typemaker2_Slot_List_First(slist);
808 slot=Typemaker2_Slot_List_Next(slot);
821 tm=Typemaker2_Member_List_First(tml);
850 tm=Typemaker2_Member_List_Next(tm);
859 tvf=Typemaker2_VirtualFn_List_First(tvfl);
866 if (fname && *fname && fpreset && *fpreset) {
875 tvf=Typemaker2_VirtualFn_List_Next(tvf);
894 TYPEMAKER2_MEMBER_LIST *tml;
988 tm=Typemaker2_Member_List_First(tml);
1017 tm=Typemaker2_Member_List_Next(tm);
1021 if (flags & TYPEMAKER2_TYPEFLAGS_WITH_REFCOUNT) {
1026 if (flags & TYPEMAKER2_TYPEFLAGS_WITH_REFCOUNT) {
1045 TYPEMAKER2_MEMBER_LIST *tml;
1097 tm=Typemaker2_Member_List_First(tml);
1108 " * Use this function to get the member \"");
1239 tm=Typemaker2_Member_List_Next(tm);
1251 TYPEMAKER2_MEMBER_LIST *tml;
1263 tm=Typemaker2_Member_List_First(tml);
1267 int typeIsWritten=0;
1275 " * Use this function to set the member \"");
1319 if (!typeIsWritten) {
1361 " * Use this function to add flags to the member \"");
1398 if (!typeIsWritten) {
1438 " * Use this function to sub flags from the member \"");
1475 if (!typeIsWritten) {
1544 if (!typeIsWritten) {
1736 if (!typeIsWritten) {
1782 if (!typeIsWritten) {
1801 tm=Typemaker2_Member_List_Next(tm);
1813 TYPEMAKER2_MEMBER_LIST *tml;
1853 tm=Typemaker2_Member_List_First(tml);
1992 tm=Typemaker2_Member_List_Next(tm);
2009 TYPEMAKER2_MEMBER_LIST *tml;
2053 tm=Typemaker2_Member_List_First(tml);
2105 tm=Typemaker2_Member_List_Next(tm);
2236 TYPEMAKER2_MEMBER_LIST *tml;
2276 tm=Typemaker2_Member_List_First(tml);
2420 tm=Typemaker2_Member_List_Next(tm);
2437 TYPEMAKER2_MEMBER_LIST *tml;
2477 tm=Typemaker2_Member_List_First(tml);
2524 tm=Typemaker2_Member_List_Next(tm);
2654 TYPEMAKER2_MEMBER_LIST *tml;
2698 tm=Typemaker2_Member_List_First(tml);
2808 tm=Typemaker2_Member_List_Next(tm);
2826 TYPEMAKER2_MEMBER_LIST *tml;
2870 tm=Typemaker2_Member_List_First(tml);
2922 tm=Typemaker2_Member_List_Next(tm);
3067 TYPEMAKER2_MEMBER_LIST *tml;
3110 tm=Typemaker2_Member_List_First(tml);
3149 snprintf(numbuf,
sizeof(numbuf)-1,
"%d", l);
3150 numbuf[
sizeof(numbuf)-1]=0;
3163 tm=Typemaker2_Member_List_Next(tm);
3182 TYPEMAKER2_MEMBER_LIST *tml;
3239 tm=Typemaker2_Member_List_First(tml);
3420 tm=Typemaker2_Member_List_Next(tm);
3439 TYPEMAKER2_MEMBER_LIST *tml;
3490 tm=Typemaker2_Member_List_First(tml);
3709 tm=Typemaker2_Member_List_Next(tm);
3901 GWEN_Buffer_AppendString(tbuf,
"_CreateObject(AQDB_DB *p_db, AQDB_ID p_tableId, AQDB_ID p_id, AQDB_OBJECT **pp_o);\n");
3909 GWEN_Buffer_AppendString(tbuf,
"_CreateObject(AQDB_DB *p_db, AQDB_ID p_tableId, AQDB_ID p_id, AQDB_OBJECT **pp_o) {\n");
3933 TYPEMAKER2_ENUM_LIST *enums;
3942 if (Typemaker2_Enum_List_GetCount(enums)) {
3949 te=Typemaker2_Enum_List_First(enums);
3957 if (prefix==
NULL || *prefix==0) {
3964 if (etype && *etype)
3992 ti=Typemaker2_Item_List_Next(ti);
3999 if (etype && *etype) {
4027 te=Typemaker2_Enum_List_Next(te);
4037 TYPEMAKER2_VIRTUALFN_LIST *fns;
4046 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
4061 vf=Typemaker2_VirtualFn_List_First(fns);
4066 if (s && loc && strcasecmp(s, loc)==0) {
4068 TYPEMAKER2_VIRTUALFN_PARAM_LIST *plist;
4108 prm=Typemaker2_VirtualFn_Param_List_First(plist);
4110 const char *paramName;
4111 const char *paramType;
4126 snprintf(numbuf,
sizeof(numbuf)-1,
"param%d", i);
4127 numbuf[
sizeof(numbuf)-1]=0;
4131 prm=Typemaker2_VirtualFn_Param_List_Next(prm);
4159 vf=Typemaker2_VirtualFn_List_Next(vf);
4169 TYPEMAKER2_VIRTUALFN_LIST *fns;
4178 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
4186 vf=Typemaker2_VirtualFn_List_First(fns);
4189 TYPEMAKER2_VIRTUALFN_PARAM_LIST *plist;
4223 prm=Typemaker2_VirtualFn_Param_List_First(plist);
4225 const char *paramDescr;
4228 if (paramDescr && *paramDescr) {
4229 const char *paramName;
4239 snprintf(numbuf,
sizeof(numbuf)-1,
"param%d", i);
4240 numbuf[
sizeof(numbuf)-1]=0;
4246 len=strlen(paramDescr);
4247 if (paramDescr[len-1]!=
'\n')
4252 prm=Typemaker2_VirtualFn_Param_List_Next(prm);
4299 prm=Typemaker2_VirtualFn_Param_List_First(plist);
4301 const char *paramName;
4302 const char *paramType;
4317 snprintf(numbuf,
sizeof(numbuf)-1,
"param%d", i);
4318 numbuf[
sizeof(numbuf)-1]=0;
4322 prm=Typemaker2_VirtualFn_Param_List_Next(prm);
4349 vf=Typemaker2_VirtualFn_List_Next(vf);
4359 TYPEMAKER2_VIRTUALFN_LIST *fns;
4368 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
4376 vf=Typemaker2_VirtualFn_List_First(fns);
4378 TYPEMAKER2_VIRTUALFN_PARAM_LIST *plist;
4416 prm=Typemaker2_VirtualFn_Param_List_First(plist);
4418 const char *paramName;
4419 const char *paramType;
4434 snprintf(numbuf,
sizeof(numbuf)-1,
"param%d", i);
4435 numbuf[
sizeof(numbuf)-1]=0;
4439 prm=Typemaker2_VirtualFn_Param_List_Next(prm);
4449 DBG_ERROR(0,
"Virtual functions has no name");
4465 prm=Typemaker2_VirtualFn_Param_List_First(plist);
4467 const char *paramName;
4478 snprintf(numbuf,
sizeof(numbuf)-1,
"param%d", i);
4479 numbuf[
sizeof(numbuf)-1]=0;
4483 prm=Typemaker2_VirtualFn_Param_List_Next(prm);
4493 DBG_ERROR(0,
"No default return value");
4504 vf=Typemaker2_VirtualFn_List_Next(vf);
4514 TYPEMAKER2_VIRTUALFN_LIST *fns;
4523 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
4531 vf=Typemaker2_VirtualFn_List_First(fns);
4602 vf=Typemaker2_VirtualFn_List_Next(vf);
4612 TYPEMAKER2_VIRTUALFN_LIST *fns;
4621 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
4629 vf=Typemaker2_VirtualFn_List_First(fns);
4711 vf=Typemaker2_VirtualFn_List_Next(vf);
4721 TYPEMAKER2_ENUM_LIST *enums;
4730 if (Typemaker2_Enum_List_GetCount(enums)) {
4733 te=Typemaker2_Enum_List_First(enums);
4739 if (prefix==
NULL || *prefix==0) {
4745 if (prefix && *prefix) {
4747 if (prefix[strlen(prefix)-1]!=
'_')
4754 if (prefix && *prefix) {
4756 if (prefix[strlen(prefix)-1]!=
'_')
4763 te=Typemaker2_Enum_List_Next(te);
4773 TYPEMAKER2_ENUM_LIST *enums;
4782 if (Typemaker2_Enum_List_GetCount(enums)) {
4789 te=Typemaker2_Enum_List_First(enums);
4798 if (prefix==
NULL || *prefix==0) {
4812 if (etype && *etype) {
4818 if (prefix && *prefix) {
4820 if (prefix[strlen(prefix)-1]!=
'_')
4845 if (etype && *etype) {
4851 if (prefix && *prefix) {
4853 if (prefix[strlen(prefix)-1]!=
'_')
4883 ti=Typemaker2_Item_List_Next(ti);
4894 te=Typemaker2_Enum_List_Next(te);
4905 TYPEMAKER2_ENUM_LIST *enums;
4914 if (Typemaker2_Enum_List_GetCount(enums)) {
4921 te=Typemaker2_Enum_List_First(enums);
4929 if (prefix==
NULL || *prefix==0) {
4944 if (prefix && *prefix) {
4946 if (prefix[strlen(prefix)-1]!=
'_')
4950 if (etype && *etype)
4978 if (prefix && *prefix) {
4980 if (prefix[strlen(prefix)-1]!=
'_')
4984 if (etype && *etype)
5009 ti=Typemaker2_Item_List_Next(ti);
5017 te=Typemaker2_Enum_List_Next(te);
5331 TYPEMAKER2_MEMBER_LIST *tml;
5344 tm=Typemaker2_Member_List_First(tml);
5370 tm=Typemaker2_Member_List_Next(tm);
5578 TYPEMAKER2_MEMBER_LIST *tml;
5590 tm=Typemaker2_Member_List_First(tml);
5607 tm=Typemaker2_Member_List_Next(tm);
5617 TYPEMAKER2_DEFINE_LIST *defines;
5626 if (Typemaker2_Define_List_GetCount(defines)) {
5633 td=Typemaker2_Define_List_First(defines);
5647 if (prefix==
NULL || *prefix==0) {
5679 snprintf(numbuf,
sizeof(numbuf)-1,
"%d", k);
5680 numbuf[
sizeof(numbuf)-1]=0;
5687 ti=Typemaker2_Item_List_Next(ti);
5711 td=Typemaker2_Define_List_Next(td);
5724 TYPEMAKER2_MEMBER_LIST *tml;
5767 tm=Typemaker2_Member_List_First(tml);
5814 tm=Typemaker2_Member_List_Next(tm);
5845 const char *content;
5848 if (content && *content) {
5892 ti=Typemaker2_Inline_List_Next(ti);
5913 TYPEMAKER2_MEMBER_LIST *tml;
5919 tm=Typemaker2_Member_List_First(tml);
5931 const char *content;
5934 if (content && *content) {
5979 ti=Typemaker2_Inline_List_Next(ti);
5983 tm=Typemaker2_Member_List_Next(tm);
6050 TYPEMAKER2_SIGNAL_LIST *sigList;
6063 sig=Typemaker2_Signal_List_First(sigList);
6139 if (s && *s && strcasecmp(s,
"none")) {
6145 if (s && *s && strcasecmp(s,
"none")) {
6159 sig=Typemaker2_Signal_List_Next(sig);
6166 sig=Typemaker2_Signal_List_First(sigList);
6289 if (s && *s && strcasecmp(s,
"none")) {
6295 if (s && *s && strcasecmp(s,
"none")) {
6329 if (s && *s && strcasecmp(s,
"none")) {
6336 if (s && *s && strcasecmp(s,
"none")) {
6360 sig=Typemaker2_Signal_List_Next(sig);
6377 TYPEMAKER2_SLOT_LIST *slotList;
6388 slot=Typemaker2_Slot_List_First(slotList);
6401 slot=Typemaker2_Slot_List_Next(slot);
6409 slot=Typemaker2_Slot_List_First(slotList);
6430 slot=Typemaker2_Slot_List_Next(slot);
6437 slot=Typemaker2_Slot_List_First(slotList);
6470 if (s && *s && strcasecmp(s,
"none")) {
6476 if (s && *s && strcasecmp(s,
"none")) {
6522 slot=Typemaker2_Slot_List_Next(slot);
6619 TYPEMAKER2_MEMBER_LIST *members;
6620 const char *sTypeIdentifier;
6621 const char *sTypePrefix;
6629 snprintf(numbuf,
sizeof(numbuf)-1,
"%d", depth);
6630 numbuf[
sizeof(numbuf)-1]=0;
6666 tm=Typemaker2_Member_List_First(members);
6670 const char *sMemberName;
6684 snprintf(numbuf,
sizeof(numbuf)-1,
"%d", depth+1);
6685 numbuf[
sizeof(numbuf)-1]=0;
6729 tm=Typemaker2_Member_List_Next(tm);
6734 childGrp=Typemaker2_Group_Tree_GetFirstChild(grp);
6743 childGrp=Typemaker2_Group_Tree_GetNext(childGrp);
6753 TYPEMAKER2_GROUP_TREE *groupTree;
6756 const char *sTypeIdentifier;
6778 grp=Typemaker2_Group_Tree_GetFirst(groupTree);
6781 grp=Typemaker2_Group_Tree_GetNext(grp);
6799 TYPEMAKER2_VIRTUALFN_LIST *fnList;
6800 TYPEMAKER2_SLOT_LIST *slotList;
6809 slot=Typemaker2_Slot_List_First(slotList);
6812 TYPEMAKER2_VIRTUALFN_PARAM_LIST *plist;
6826 if (s && *s && strcasecmp(s,
"none")) {
6831 Typemaker2_VirtualFn_Param_List_Add(prm, plist);
6834 if (s && *s && strcasecmp(s,
"none")) {
6839 Typemaker2_VirtualFn_Param_List_Add(prm, plist);
6846 Typemaker2_VirtualFn_Param_List_Add(prm, plist);
6853 Typemaker2_VirtualFn_Param_List_Add(prm, plist);
6863 Typemaker2_VirtualFn_List_Add(fn, fnList);
6865 slot=Typemaker2_Slot_List_Next(slot);
6876 TYPEMAKER2_VIRTUALFN_LIST *fnList;
6882 fn=Typemaker2_VirtualFn_List_First(fnList);
6886 fnNext=Typemaker2_VirtualFn_List_Next(fn);
6888 Typemaker2_VirtualFn_List_Del(fn);
7068 if (!(flags & TYPEMAKER2_TYPEFLAGS_NODUP)) {
7130 if (flags & TYPEMAKER2_TYPEFLAGS_WITH_OBJECT) {
7210 if (flags & TYPEMAKER2_TYPEFLAGS_WITH_SLOTS) {
const char * Typemaker2_Item_GetName(const TYPEMAKER2_ITEM *p_struct)
int Typemaker2_Builder_Invoke_CompareFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst, GWEN_BUFFER *dbuf)
#define TYPEMAKER2_TYPEFLAGS_WITH_CONSTLIST2
const char * Typemaker2_VirtualFn_GetReturnTypeDescr(const TYPEMAKER2_VIRTUALFN *vf)
TYPEMAKER2_TYPEMANAGER * Typemaker2_Builder_GetTypeManager(const TYPEMAKER2_BUILDER *tb)
#define TYPEMAKER2_FLAGS_WITH_FLAGS
void Typemaker2_Builder_SetBuildFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_BUILDER_BUILD_FN fn)
TYPEMAKER2_VIRTUALFN_LIST * Typemaker2_Type_GetVirtualFns(const TYPEMAKER2_TYPE *ty)
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)
struct TYPEMAKER2_SIGNAL TYPEMAKER2_SIGNAL
TYPEMAKER2_ITEM_LIST * Typemaker2_Enum_GetItems(const TYPEMAKER2_ENUM *p_struct)
#define TYPEMAKER2_TYPEFLAGS_WITH_HASH
int Typemaker2_Builder_Invoke_DupFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst, GWEN_BUFFER *dbuf)
#define TYPEMAKER2_TYPEFLAGS_NODUP
void Typemaker2_VirtualFn_Param_SetType(TYPEMAKER2_VIRTUALFN_PARAM *prm, const char *s)
struct GWEN_DB_NODE GWEN_DB_NODE
int Typemaker2_Inline_GetTypeFlagsValue(const TYPEMAKER2_INLINE *th)
static int _buildList1Dup(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
static int _buildCopy(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
void GWEN_DB_Group_free(GWEN_DB_NODE *n)
const char * Typemaker2_VirtualFn_GetPreset(const TYPEMAKER2_VIRTUALFN *vf)
static int _buildSlotFunctions(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
TYPEMAKER2_SLOT_LIST * Typemaker2_Type_GetSlots(const TYPEMAKER2_TYPE *ty)
TYPEMAKER2_VIRTUALFN_PARAM_LIST * Typemaker2_VirtualFn_GetParamTypeList(const TYPEMAKER2_VIRTUALFN *vf)
const char * Typemaker2_Inline_GetContent(const TYPEMAKER2_INLINE *th)
TYPEMAKER2_HEADER_LIST * Typemaker2_Type_GetHeaders(const TYPEMAKER2_TYPE *ty)
const char * Typemaker2_Member_GetFieldId(const TYPEMAKER2_MEMBER *tm)
const char * Typemaker2_Type_GetAqDbType(const TYPEMAKER2_TYPE *ty)
TYPEMAKER2_TYPE * Typemaker2_Type_GetExtendsPtr(const TYPEMAKER2_TYPE *ty)
#define TYPEMAKER2_TYPEFLAGS_NOCOPY
struct TYPEMAKER2_VIRTUALFN_PARAM TYPEMAKER2_VIRTUALFN_PARAM
static int _buildCacheFunctions(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
static int _buildDup(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
static int _buildDestructor(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
TYPEMAKER2_ENUM * Typemaker2_Member_GetEnumPtr(const TYPEMAKER2_MEMBER *tm)
int _buildCodeVirtualFns(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
#define TYPEMAKER2_VIRTUALFN_FLAGS_FROMSLOT
static int _buildGetter(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
static int _addVirtualFnsFromSlots(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
static int _buildFromXml(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
const char * Typemaker2_Member_GetDescription(const TYPEMAKER2_MEMBER *tm)
struct TYPEMAKER2_SLOT TYPEMAKER2_SLOT
const char * Typemaker2_Group_GetTitle(TYPEMAKER2_GROUP *gr)
static int _buildList1GetByMember(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm)
#define TYPEMAKER2_TYPEFLAGS_WITH_XML
static int _buildToHashString(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
#define TYPEMAKER2_SLOT_FLAGS_USE_PARAM3
#define TYPEMAKER2_SIGNAL_FLAGS_USE_PARAM4
static int _buildCreateColumnList(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
const char * Typemaker2_VirtualFn_Param_GetDescr(const TYPEMAKER2_VIRTUALFN_PARAM *prm)
int Typemaker2_Builder_Invoke_ToObjectFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst, GWEN_BUFFER *dbuf)
struct TYPEMAKER2_GROUP TYPEMAKER2_GROUP
static int _buildToObject(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
#define TYPEMAKER2_FLAGS_DUP
uint32_t Typemaker2_Signal_GetFlags(const TYPEMAKER2_SIGNAL *p_struct)
#define TYPEMAKER2_FLAGS_WITH_GETBYMEMBER
static int _buildFieldIds(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
#define TYPEMAKER2_TYPEFLAGS_WITH_SLOTS
uint32_t Typemaker2_Member_GetGetFlags(const TYPEMAKER2_MEMBER *tm)
struct TYPEMAKER2_DEFINE TYPEMAKER2_DEFINE
static int _buildEnumToString(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
struct TYPEMAKER2_ENUM TYPEMAKER2_ENUM
void Typemaker2_Enum_SetFromStringFn(TYPEMAKER2_ENUM *p_struct, const char *p_src)
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
void Typemaker2_VirtualFn_SetAccess(TYPEMAKER2_VIRTUALFN *vf, int i)
TYPEMAKER2_SIGNAL_LIST * Typemaker2_Type_GetSignals(const TYPEMAKER2_TYPE *ty)
int Typemaker2_Builder_Invoke_DestructFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst, GWEN_BUFFER *dbuf)
#define TYPEMAKER2_FLAGS_SORTBYMEMBER
struct TYPEMAKER2_ITEM TYPEMAKER2_ITEM
int Typemaker2_Member_GetMaxLen(const TYPEMAKER2_MEMBER *tm)
#define TYPEMAKER2_FLAGS_OMIT
const char * Typemaker2_Define_GetPrefix(const TYPEMAKER2_DEFINE *p_struct)
void GWEN_Buffer_Reset(GWEN_BUFFER *bf)
#define TYPEMAKER2_FLAGS_ASSIGN
void Typemaker2_Builder_AddPrivateDeclaration(TYPEMAKER2_BUILDER *tb, const char *s)
int Typemaker2_Builder_ReplaceVars(const char *s, GWEN_DB_NODE *db, GWEN_BUFFER *dbuf)
static int _buildReadDb(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
const char * Typemaker2_Item_GetValue(const TYPEMAKER2_ITEM *p_struct)
static int _buildMemberInlines(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
struct TYPEMAKER2_INLINE TYPEMAKER2_INLINE
const char * Typemaker2_Member_GetPresetValue(const TYPEMAKER2_MEMBER *tm)
struct TYPEMAKER2_VIRTUALFN TYPEMAKER2_VIRTUALFN
#define GWEN_ERROR_BAD_DATA
const char * Typemaker2_VirtualFn_Param_GetType(const TYPEMAKER2_VIRTUALFN_PARAM *prm)
static int _buildGroupApiDoc(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_GROUP *grp, int depth, GWEN_BUFFER *buf)
static int _buildWriteObject(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
TYPEMAKER2_VIRTUALFN_PARAM * Typemaker2_VirtualFn_Param_new()
int Typemaker2_Builder_Invoke_FromXmlFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst, GWEN_BUFFER *dbuf)
int Typemaker2_Member_GetAccess(const TYPEMAKER2_MEMBER *tm)
const char * Typemaker2_Define_GetId(const TYPEMAKER2_DEFINE *p_struct)
TYPEMAKER2_INLINE_LIST * Typemaker2_Type_GetInlines(const TYPEMAKER2_TYPE *ty)
int _buildProtoVirtualFns(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
void Typemaker2_VirtualFn_free(TYPEMAKER2_VIRTUALFN *vf)
static int _buildPostHeaders(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
static int _buildTypedef(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
void Typemaker2_VirtualFn_AddFlags(TYPEMAKER2_VIRTUALFN *vf, uint32_t fl)
const char * Typemaker2_Group_GetDescription(TYPEMAKER2_GROUP *gr)
int Typemaker2_Member_GetMemberPosition(const TYPEMAKER2_MEMBER *tm)
const char * Typemaker2_VirtualFn_GetReturnType(const TYPEMAKER2_VIRTUALFN *vf)
#define TYPEMAKER2_FLAGS_NOCOPY
int Typemaker2_Define_GetStartValue(const TYPEMAKER2_DEFINE *p_struct)
int Typemaker2_Inline_GetTypeFlagsMask(const TYPEMAKER2_INLINE *th)
static int _buildList1SortByMember(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm)
const char * Typemaker2_Signal_GetParamType1(const TYPEMAKER2_SIGNAL *p_struct)
const char * Typemaker2_VirtualFn_GetDescr(const TYPEMAKER2_VIRTUALFN *vf)
static int _buildSortByMember(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
#define TYPEMAKER2_TYPEFLAGS_WITH_SIGNALS
uint32_t Typemaker2_Slot_GetFlags(const TYPEMAKER2_SLOT *p_struct)
#define TYPEMAKER2_FLAGS_NOCONSTOBJECT
#define TYPEMAKER2_FLAGS_WITH_HASH
const char * Typemaker2_Type_GetIdentifier(const TYPEMAKER2_TYPE *ty)
void Typemaker2_Builder_AddProtectedDeclaration(TYPEMAKER2_BUILDER *tb, const char *s)
static int _buildDefineEnums(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
#define TYPEMAKER2_TYPEFLAGS_WITH_CACHEFNS
#define TYPEMAKER2_TYPEFLAGS_WITH_TREE
const char * Typemaker2_Type_GetFreeHook(const TYPEMAKER2_TYPE *ty)
const char * Typemaker2_VirtualFn_GetLocation(const TYPEMAKER2_VIRTUALFN *vf)
static int Typemaker2_Builder_C_Build(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
const char * Typemaker2_Enum_GetPrefix(const TYPEMAKER2_ENUM *p_struct)
static int _buildWriteXml(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
static int _buildReadXml(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
int GWEN_Buffer_AppendByte(GWEN_BUFFER *bf, char c)
const char * Typemaker2_VirtualFn_GetDefaultReturnValue(const TYPEMAKER2_VIRTUALFN *vf)
const char * Typemaker2_Slot_GetName(const TYPEMAKER2_SLOT *p_struct)
static int _buildApiDoc(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
#define TYPEMAKER2_FLAGS_CONST
void Typemaker2_VirtualFn_SetDefaultReturnValue(TYPEMAKER2_VIRTUALFN *vf, const char *s)
TYPEMAKER2_ITEM_LIST * Typemaker2_Define_GetItems(const TYPEMAKER2_DEFINE *p_struct)
uint32_t Typemaker2_Member_GetDupFlags(const TYPEMAKER2_MEMBER *tm)
int Typemaker2_Type_GetNonVolatileMemberCount(const TYPEMAKER2_TYPE *ty)
static int _buildDefineDefines(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
struct TYPEMAKER2_BUILDER TYPEMAKER2_BUILDER
#define TYPEMAKER2_FLAGS_OWN
static int _buildConstructor(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
#define TYPEMAKER2_FLAGS_ENUM
TYPEMAKER2_MEMBER_LIST * Typemaker2_Type_GetMembers(const TYPEMAKER2_TYPE *ty)
void GWEN_Buffer_free(GWEN_BUFFER *bf)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
const char * Typemaker2_VirtualFn_Param_GetName(const TYPEMAKER2_VIRTUALFN_PARAM *prm)
void Typemaker2_Builder_AddCode(TYPEMAKER2_BUILDER *tb, const char *s)
static int _buildAttach(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
int Typemaker2_Builder_Invoke_FromDbFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst, GWEN_BUFFER *dbuf)
const char * Typemaker2_Signal_GetName(const TYPEMAKER2_SIGNAL *p_struct)
static int _buildSignalFunctions(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
#define DBG_ERROR(dbg_logger, format, args...)
struct TYPEMAKER2_TYPE TYPEMAKER2_TYPE
#define TYPEMAKER2_SLOT_FLAGS_USE_PARAM4
static int _buildReadObject(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
void Typemaker2_Builder_AddPublicDeclaration(TYPEMAKER2_BUILDER *tb, const char *s)
static int _buildFromDb(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
uint32_t Typemaker2_Member_GetCopyFlags(const TYPEMAKER2_MEMBER *tm)
#define TYPEMAKER2_TYPEFLAGS_WITH_IDMAP
void Typemaker2_Enum_SetToStringFn(TYPEMAKER2_ENUM *p_struct, const char *p_src)
#define TYPEMAKER2_SIGNAL_FLAGS_USE_PARAM3
void Typemaker2_VirtualFn_SetReturnType(TYPEMAKER2_VIRTUALFN *vf, const char *s)
static int _buildTreeGetByMember(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm)
struct TYPEMAKER2_TYPEMANAGER TYPEMAKER2_TYPEMANAGER
TYPEMAKER2_BUILDER * Typemaker2_Builder_C_new()
static int _buildSetter(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
int _buildSetterVirtualFns(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
static int _buildInlines(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
TYPEMAKER2_VIRTUALFN * Typemaker2_VirtualFn_new()
int Typemaker2_Inline_GetLocation(const TYPEMAKER2_INLINE *th)
TYPEMAKER2_ENUM_LIST * Typemaker2_Type_GetEnums(const TYPEMAKER2_TYPE *ty)
void Typemaker2_VirtualFn_SetName(TYPEMAKER2_VIRTUALFN *vf, const char *s)
const char * Typemaker2_Slot_GetParamType2(const TYPEMAKER2_SLOT *p_struct)
#define DBG_INFO(dbg_logger, format, args...)
void Typemaker2_Builder_AddLibraryDeclaration(TYPEMAKER2_BUILDER *tb, const char *s)
static int _buildGetByMember(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
#define TYPEMAKER2_TYPEFLAGS_WITH_REFCOUNT
const char * Typemaker2_Type_GetPrefix(const TYPEMAKER2_TYPE *ty)
int Typemaker2_Inline_GetAccess(const TYPEMAKER2_INLINE *th)
static int _buildToDb(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
void Typemaker2_VirtualFn_SetLocation(TYPEMAKER2_VIRTUALFN *vf, const char *s)
TYPEMAKER2_GROUP * Typemaker2_Member_GetGroupPtr(const TYPEMAKER2_MEMBER *tm)
static int _buildStruct(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
int Typemaker2_Type_GetType(const TYPEMAKER2_TYPE *ty)
const char * Typemaker2_Slot_GetParamType1(const TYPEMAKER2_SLOT *p_struct)
#define TYPEMAKER2_FLAGS_NODUP
TYPEMAKER2_BUILDER * Typemaker2_Builder_new()
const char * Typemaker2_TypeManager_GetApiDeclaration(const TYPEMAKER2_TYPEMANAGER *tym)
int Typemaker2_Type_GetUsePrivateConstructor(const TYPEMAKER2_TYPE *ty)
struct TYPEMAKER2_MEMBER TYPEMAKER2_MEMBER
int _buildProtoSetterVirtualFns(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
static int _buildToXml(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
uint32_t Typemaker2_Member_GetSetFlags(const TYPEMAKER2_MEMBER *tm)
int Typemaker2_Builder_Invoke_FromObjectFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst, GWEN_BUFFER *dbuf)
static int _buildWriteDb(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
static int _buildEnumFromString(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
int Typemaker2_Builder_Invoke_AssignFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst, GWEN_BUFFER *dbuf)
#define TYPEMAKER2_TYPEFLAGS_WITH_INHERIT
TYPEMAKER2_GROUP_TREE * Typemaker2_Type_GetGroupTree(const TYPEMAKER2_TYPE *ty)
int Typemaker2_Builder_Invoke_ToXmlFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst, GWEN_BUFFER *dbuf)
static void _delVirtualFnsFromSlots(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
static int _buildCreateObject(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
int _buildDefineVirtualFns(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, const char *loc)
static int _buildFromObject(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
uint32_t Typemaker2_Type_GetFlags(const TYPEMAKER2_TYPE *ty)
#define TYPEMAKER2_TYPEFLAGS_WITH_LIST2
const char * Typemaker2_Member_GetName(const TYPEMAKER2_MEMBER *tm)
const char * Typemaker2_Enum_GetType(const TYPEMAKER2_ENUM *p_struct)
uint32_t Typemaker2_VirtualFn_GetFlags(const TYPEMAKER2_VIRTUALFN *vf)
static int _buildEndHeaders(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
#define TYPEMAKER2_FLAGS_VOLATILE
#define TYPEMAKER2_TYPEFLAGS_WITH_OBJECT
const char * Typemaker2_Signal_GetParamType2(const TYPEMAKER2_SIGNAL *p_struct)
static int _buildCreateTable(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
TYPEMAKER2_DEFINE_LIST * Typemaker2_Type_GetDefines(const TYPEMAKER2_TYPE *ty)
const char * Typemaker2_Type_GetFieldCountId(const TYPEMAKER2_TYPE *ty)
const char * Typemaker2_VirtualFn_GetName(const TYPEMAKER2_VIRTUALFN *vf)
static int _buildMacroFunctions(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)
int Typemaker2_Builder_Invoke_ConstructFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst, GWEN_BUFFER *dbuf)
int Typemaker2_Builder_Invoke_ToHashStringFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst, GWEN_BUFFER *dbuf)
#define TYPEMAKER2_TYPEFLAGS_WITH_DB
int Typemaker2_Define_GetMode(const TYPEMAKER2_DEFINE *p_struct)
GWEN_DB_NODE * Typemaker2_Builder_CreateDbForCall(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst)
static int _setEnumStringFns(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
int Typemaker2_Builder_Invoke_ToDbFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst, GWEN_BUFFER *dbuf)
#define TYPEMAKER2_TYPEFLAGS_WITH_LIST1
int Typemaker2_VirtualFn_GetAccess(const TYPEMAKER2_VIRTUALFN *vf)