14 #include <gwenhywfar/debug.h> 30 TYPEMAKER2_MEMBER_LIST *tml;
39 tm=Typemaker2_Member_List_First(tml);
47 snprintf(numbuf,
sizeof(numbuf)-1,
"%d",
53 tm=Typemaker2_Member_List_Next(tm);
62 snprintf(numbuf,
sizeof(numbuf)-1,
"%d",
82 TYPEMAKER2_HEADER_LIST *hl;
117 h=Typemaker2_Header_List_First(hl);
136 h=Typemaker2_Header_List_Next(h);
334 TYPEMAKER2_HEADER_LIST *hl;
344 h=Typemaker2_Header_List_First(hl);
363 h=Typemaker2_Header_List_Next(h);
381 TYPEMAKER2_HEADER_LIST *hl;
391 h=Typemaker2_Header_List_First(hl);
410 h=Typemaker2_Header_List_Next(h);
428 TYPEMAKER2_MEMBER_LIST *tml;
430 TYPEMAKER2_VIRTUALFN_LIST *fns;
482 tm=Typemaker2_Member_List_First(tml);
508 if (!typeIsWritten) {
518 DBG_ERROR(0,
"Member [%s] has no identifier", xx?xx:
"(unnamed)");
534 snprintf(numbuf,
sizeof(numbuf)-1,
"[%d]",
544 tm=Typemaker2_Member_List_Next(tm);
551 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
555 vf=Typemaker2_VirtualFn_List_First(fns);
563 DBG_ERROR(0,
"Virtual function has no name");
573 DBG_ERROR(0,
"Virtual function has no name");
581 vf=Typemaker2_VirtualFn_List_Next(vf);
688 TYPEMAKER2_MEMBER_LIST *tml;
691 TYPEMAKER2_VIRTUALFN_LIST *tvfl;
788 TYPEMAKER2_SIGNAL_LIST *slist;
795 sig=Typemaker2_Signal_List_First(slist);
820 sig=Typemaker2_Signal_List_Next(sig);
827 TYPEMAKER2_SLOT_LIST *slist;
834 slot=Typemaker2_Slot_List_First(slist);
871 slot=Typemaker2_Slot_List_Next(slot);
884 tm=Typemaker2_Member_List_First(tml);
913 tm=Typemaker2_Member_List_Next(tm);
922 tvf=Typemaker2_VirtualFn_List_First(tvfl);
929 if (fname && *fname && fpreset && *fpreset) {
938 tvf=Typemaker2_VirtualFn_List_Next(tvf);
958 TYPEMAKER2_MEMBER_LIST *tml;
1062 tm=Typemaker2_Member_List_First(tml);
1091 tm=Typemaker2_Member_List_Next(tm);
1120 TYPEMAKER2_MEMBER_LIST *tml;
1172 tm=Typemaker2_Member_List_First(tml);
1183 " * Use this function to get the member \"");
1314 tm=Typemaker2_Member_List_Next(tm);
1327 TYPEMAKER2_MEMBER_LIST *tml;
1339 tm=Typemaker2_Member_List_First(tml);
1343 int typeIsWritten=0;
1351 " * Use this function to set the member \"");
1395 if (!typeIsWritten) {
1437 " * Use this function to add flags to the member \"");
1474 if (!typeIsWritten) {
1514 " * Use this function to sub flags from the member \"");
1551 if (!typeIsWritten) {
1620 if (!typeIsWritten) {
1812 if (!typeIsWritten) {
1858 if (!typeIsWritten) {
1877 tm=Typemaker2_Member_List_Next(tm);
1890 TYPEMAKER2_MEMBER_LIST *tml;
1930 tm=Typemaker2_Member_List_First(tml);
2069 tm=Typemaker2_Member_List_Next(tm);
2087 TYPEMAKER2_MEMBER_LIST *tml;
2131 tm=Typemaker2_Member_List_First(tml);
2183 tm=Typemaker2_Member_List_Next(tm);
2317 TYPEMAKER2_MEMBER_LIST *tml;
2357 tm=Typemaker2_Member_List_First(tml);
2501 tm=Typemaker2_Member_List_Next(tm);
2519 TYPEMAKER2_MEMBER_LIST *tml;
2559 tm=Typemaker2_Member_List_First(tml);
2606 tm=Typemaker2_Member_List_Next(tm);
2739 TYPEMAKER2_MEMBER_LIST *tml;
2783 tm=Typemaker2_Member_List_First(tml);
2893 tm=Typemaker2_Member_List_Next(tm);
2912 TYPEMAKER2_MEMBER_LIST *tml;
2956 tm=Typemaker2_Member_List_First(tml);
3008 tm=Typemaker2_Member_List_Next(tm);
3156 TYPEMAKER2_MEMBER_LIST *tml;
3199 tm=Typemaker2_Member_List_First(tml);
3238 snprintf(numbuf,
sizeof(numbuf)-1,
"%d", l);
3239 numbuf[
sizeof(numbuf)-1]=0;
3252 tm=Typemaker2_Member_List_Next(tm);
3272 TYPEMAKER2_MEMBER_LIST *tml;
3329 tm=Typemaker2_Member_List_First(tml);
3510 tm=Typemaker2_Member_List_Next(tm);
3530 TYPEMAKER2_MEMBER_LIST *tml;
3581 tm=Typemaker2_Member_List_First(tml);
3800 tm=Typemaker2_Member_List_Next(tm);
3995 GWEN_Buffer_AppendString(tbuf,
"_CreateObject(AQDB_DB *p_db, AQDB_ID p_tableId, AQDB_ID p_id, AQDB_OBJECT **pp_o);\n");
4003 GWEN_Buffer_AppendString(tbuf,
"_CreateObject(AQDB_DB *p_db, AQDB_ID p_tableId, AQDB_ID p_id, AQDB_OBJECT **pp_o) {\n");
4028 TYPEMAKER2_ENUM_LIST *enums;
4037 if (Typemaker2_Enum_List_GetCount(enums)) {
4044 te=Typemaker2_Enum_List_First(enums);
4052 if (prefix==
NULL || *prefix==0) {
4059 if (etype && *etype)
4087 ti=Typemaker2_Item_List_Next(ti);
4094 if (etype && *etype) {
4122 te=Typemaker2_Enum_List_Next(te);
4133 TYPEMAKER2_VIRTUALFN_LIST *fns;
4142 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
4157 vf=Typemaker2_VirtualFn_List_First(fns);
4162 if (s && loc && strcasecmp(s, loc)==0) {
4164 TYPEMAKER2_VIRTUALFN_PARAM_LIST *plist;
4209 prm=Typemaker2_VirtualFn_Param_List_First(plist);
4211 const char *paramName;
4212 const char *paramType;
4227 snprintf(numbuf,
sizeof(numbuf)-1,
"param%d", i);
4228 numbuf[
sizeof(numbuf)-1]=0;
4232 prm=Typemaker2_VirtualFn_Param_List_Next(prm);
4260 vf=Typemaker2_VirtualFn_List_Next(vf);
4271 TYPEMAKER2_VIRTUALFN_LIST *fns;
4280 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
4288 vf=Typemaker2_VirtualFn_List_First(fns);
4291 TYPEMAKER2_VIRTUALFN_PARAM_LIST *plist;
4325 prm=Typemaker2_VirtualFn_Param_List_First(plist);
4327 const char *paramDescr;
4330 if (paramDescr && *paramDescr) {
4331 const char *paramName;
4341 snprintf(numbuf,
sizeof(numbuf)-1,
"param%d", i);
4342 numbuf[
sizeof(numbuf)-1]=0;
4348 len=strlen(paramDescr);
4349 if (paramDescr[len-1]!=
'\n')
4354 prm=Typemaker2_VirtualFn_Param_List_Next(prm);
4401 prm=Typemaker2_VirtualFn_Param_List_First(plist);
4403 const char *paramName;
4404 const char *paramType;
4419 snprintf(numbuf,
sizeof(numbuf)-1,
"param%d", i);
4420 numbuf[
sizeof(numbuf)-1]=0;
4424 prm=Typemaker2_VirtualFn_Param_List_Next(prm);
4451 vf=Typemaker2_VirtualFn_List_Next(vf);
4462 TYPEMAKER2_VIRTUALFN_LIST *fns;
4471 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
4479 vf=Typemaker2_VirtualFn_List_First(fns);
4481 TYPEMAKER2_VIRTUALFN_PARAM_LIST *plist;
4519 prm=Typemaker2_VirtualFn_Param_List_First(plist);
4521 const char *paramName;
4522 const char *paramType;
4537 snprintf(numbuf,
sizeof(numbuf)-1,
"param%d", i);
4538 numbuf[
sizeof(numbuf)-1]=0;
4542 prm=Typemaker2_VirtualFn_Param_List_Next(prm);
4552 DBG_ERROR(0,
"Virtual functions has no name");
4568 prm=Typemaker2_VirtualFn_Param_List_First(plist);
4570 const char *paramName;
4581 snprintf(numbuf,
sizeof(numbuf)-1,
"param%d", i);
4582 numbuf[
sizeof(numbuf)-1]=0;
4586 prm=Typemaker2_VirtualFn_Param_List_Next(prm);
4596 DBG_ERROR(0,
"No default return value");
4607 vf=Typemaker2_VirtualFn_List_Next(vf);
4618 TYPEMAKER2_VIRTUALFN_LIST *fns;
4627 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
4635 vf=Typemaker2_VirtualFn_List_First(fns);
4706 vf=Typemaker2_VirtualFn_List_Next(vf);
4717 TYPEMAKER2_VIRTUALFN_LIST *fns;
4726 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
4734 vf=Typemaker2_VirtualFn_List_First(fns);
4816 vf=Typemaker2_VirtualFn_List_Next(vf);
4827 TYPEMAKER2_ENUM_LIST *enums;
4836 if (Typemaker2_Enum_List_GetCount(enums)) {
4839 te=Typemaker2_Enum_List_First(enums);
4845 if (prefix==
NULL || *prefix==0) {
4851 if (prefix && *prefix) {
4853 if (prefix[strlen(prefix)-1]!=
'_')
4860 if (prefix && *prefix) {
4862 if (prefix[strlen(prefix)-1]!=
'_')
4869 te=Typemaker2_Enum_List_Next(te);
4880 TYPEMAKER2_ENUM_LIST *enums;
4889 if (Typemaker2_Enum_List_GetCount(enums)) {
4896 te=Typemaker2_Enum_List_First(enums);
4905 if (prefix==
NULL || *prefix==0) {
4919 if (etype && *etype) {
4925 if (prefix && *prefix) {
4927 if (prefix[strlen(prefix)-1]!=
'_')
4952 if (etype && *etype) {
4958 if (prefix && *prefix) {
4960 if (prefix[strlen(prefix)-1]!=
'_')
4990 ti=Typemaker2_Item_List_Next(ti);
5001 te=Typemaker2_Enum_List_Next(te);
5013 TYPEMAKER2_ENUM_LIST *enums;
5022 if (Typemaker2_Enum_List_GetCount(enums)) {
5029 te=Typemaker2_Enum_List_First(enums);
5037 if (prefix==
NULL || *prefix==0) {
5052 if (prefix && *prefix) {
5054 if (prefix[strlen(prefix)-1]!=
'_')
5058 if (etype && *etype)
5086 if (prefix && *prefix) {
5088 if (prefix[strlen(prefix)-1]!=
'_')
5092 if (etype && *etype)
5117 ti=Typemaker2_Item_List_Next(ti);
5133 te=Typemaker2_Enum_List_Next(te);
5602 TYPEMAKER2_MEMBER_LIST *tml;
5615 tm=Typemaker2_Member_List_First(tml);
5649 tm=Typemaker2_Member_List_Next(tm);
5859 TYPEMAKER2_MEMBER_LIST *tml;
5871 tm=Typemaker2_Member_List_First(tml);
5888 tm=Typemaker2_Member_List_Next(tm);
5899 TYPEMAKER2_DEFINE_LIST *defines;
5908 if (Typemaker2_Define_List_GetCount(defines)) {
5915 td=Typemaker2_Define_List_First(defines);
5929 if (prefix==
NULL || *prefix==0) {
5961 snprintf(numbuf,
sizeof(numbuf)-1,
"%d", k);
5962 numbuf[
sizeof(numbuf)-1]=0;
5969 ti=Typemaker2_Item_List_Next(ti);
5993 td=Typemaker2_Define_List_Next(td);
6007 TYPEMAKER2_MEMBER_LIST *tml;
6050 tm=Typemaker2_Member_List_First(tml);
6097 tm=Typemaker2_Member_List_Next(tm);
6129 const char *content;
6132 if (content && *content) {
6176 ti=Typemaker2_Inline_List_Next(ti);
6198 TYPEMAKER2_MEMBER_LIST *tml;
6204 tm=Typemaker2_Member_List_First(tml);
6216 const char *content;
6219 if (content && *content) {
6264 ti=Typemaker2_Inline_List_Next(ti);
6268 tm=Typemaker2_Member_List_Next(tm);
6337 TYPEMAKER2_SIGNAL_LIST *sigList;
6350 sig=Typemaker2_Signal_List_First(sigList);
6426 if (s && *s && strcasecmp(s,
"none")) {
6432 if (s && *s && strcasecmp(s,
"none")) {
6446 sig=Typemaker2_Signal_List_Next(sig);
6453 sig=Typemaker2_Signal_List_First(sigList);
6576 if (s && *s && strcasecmp(s,
"none")) {
6582 if (s && *s && strcasecmp(s,
"none")) {
6616 if (s && *s && strcasecmp(s,
"none")) {
6623 if (s && *s && strcasecmp(s,
"none")) {
6647 sig=Typemaker2_Signal_List_Next(sig);
6665 TYPEMAKER2_SLOT_LIST *slotList;
6676 slot=Typemaker2_Slot_List_First(slotList);
6689 slot=Typemaker2_Slot_List_Next(slot);
6697 slot=Typemaker2_Slot_List_First(slotList);
6718 slot=Typemaker2_Slot_List_Next(slot);
6725 slot=Typemaker2_Slot_List_First(slotList);
6758 if (s && *s && strcasecmp(s,
"none")) {
6764 if (s && *s && strcasecmp(s,
"none")) {
6810 slot=Typemaker2_Slot_List_Next(slot);
6909 TYPEMAKER2_MEMBER_LIST *members;
6910 const char *sTypeIdentifier;
6911 const char *sTypePrefix;
6919 snprintf(numbuf,
sizeof(numbuf)-1,
"%d", depth);
6920 numbuf[
sizeof(numbuf)-1]=0;
6956 tm=Typemaker2_Member_List_First(members);
6960 const char *sMemberName;
6974 snprintf(numbuf,
sizeof(numbuf)-1,
"%d", depth+1);
6975 numbuf[
sizeof(numbuf)-1]=0;
7019 tm=Typemaker2_Member_List_Next(tm);
7024 childGrp=Typemaker2_Group_Tree_GetFirstChild(grp);
7033 childGrp=Typemaker2_Group_Tree_GetNext(childGrp);
7044 TYPEMAKER2_GROUP_TREE *groupTree;
7047 const char *sTypeIdentifier;
7069 grp=Typemaker2_Group_Tree_GetFirst(groupTree);
7072 grp=Typemaker2_Group_Tree_GetNext(grp);
7091 TYPEMAKER2_VIRTUALFN_LIST *fnList;
7092 TYPEMAKER2_SLOT_LIST *slotList;
7101 slot=Typemaker2_Slot_List_First(slotList);
7104 TYPEMAKER2_VIRTUALFN_PARAM_LIST *plist;
7118 if (s && *s && strcasecmp(s,
"none")) {
7123 Typemaker2_VirtualFn_Param_List_Add(prm, plist);
7126 if (s && *s && strcasecmp(s,
"none")) {
7131 Typemaker2_VirtualFn_Param_List_Add(prm, plist);
7138 Typemaker2_VirtualFn_Param_List_Add(prm, plist);
7145 Typemaker2_VirtualFn_Param_List_Add(prm, plist);
7155 Typemaker2_VirtualFn_List_Add(fn, fnList);
7157 slot=Typemaker2_Slot_List_Next(slot);
7169 TYPEMAKER2_VIRTUALFN_LIST *fnList;
7175 fn=Typemaker2_VirtualFn_List_First(fnList);
7179 fnNext=Typemaker2_VirtualFn_List_Next(fn);
7181 Typemaker2_VirtualFn_List_Del(fn);
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)
#define TYPEMAKER2_TYPEFLAGS_WITH_TREE2
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
static int _buildTree2GetByMember(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm)
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 _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)
#define TYPEMAKER2_FLAGS_GWEN_CB
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 int _buildCreateObject(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
static int _setEnumStringFns(GWEN_UNUSED 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)
static void _delVirtualFnsFromSlots(GWEN_UNUSED TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
GWEN_DB_NODE * Typemaker2_Builder_CreateDbForCall(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst)
static int _addVirtualFnsFromSlots(GWEN_UNUSED 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)