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);
505 if (!typeIsWritten) {
515 DBG_ERROR(0,
"Member [%s] has no identifier", xx?xx:
"(unnamed)");
531 snprintf(numbuf,
sizeof(numbuf)-1,
"[%d]",
541 tm=Typemaker2_Member_List_Next(tm);
548 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
552 vf=Typemaker2_VirtualFn_List_First(fns);
560 DBG_ERROR(0,
"Virtual function has no name");
570 DBG_ERROR(0,
"Virtual function has no name");
578 vf=Typemaker2_VirtualFn_List_Next(vf);
685 TYPEMAKER2_MEMBER_LIST *tml;
688 TYPEMAKER2_VIRTUALFN_LIST *tvfl;
785 TYPEMAKER2_SIGNAL_LIST *slist;
792 sig=Typemaker2_Signal_List_First(slist);
817 sig=Typemaker2_Signal_List_Next(sig);
824 TYPEMAKER2_SLOT_LIST *slist;
831 slot=Typemaker2_Slot_List_First(slist);
868 slot=Typemaker2_Slot_List_Next(slot);
881 tm=Typemaker2_Member_List_First(tml);
910 tm=Typemaker2_Member_List_Next(tm);
919 tvf=Typemaker2_VirtualFn_List_First(tvfl);
926 if (fname && *fname && fpreset && *fpreset) {
935 tvf=Typemaker2_VirtualFn_List_Next(tvf);
955 TYPEMAKER2_MEMBER_LIST *tml;
1059 tm=Typemaker2_Member_List_First(tml);
1088 tm=Typemaker2_Member_List_Next(tm);
1117 TYPEMAKER2_MEMBER_LIST *tml;
1169 tm=Typemaker2_Member_List_First(tml);
1180 " * Use this function to get the member \"");
1311 tm=Typemaker2_Member_List_Next(tm);
1324 TYPEMAKER2_MEMBER_LIST *tml;
1336 tm=Typemaker2_Member_List_First(tml);
1340 int typeIsWritten=0;
1348 " * Use this function to set the member \"");
1392 if (!typeIsWritten) {
1434 " * Use this function to add flags to the member \"");
1471 if (!typeIsWritten) {
1511 " * Use this function to sub flags from the member \"");
1548 if (!typeIsWritten) {
1617 if (!typeIsWritten) {
1809 if (!typeIsWritten) {
1855 if (!typeIsWritten) {
1874 tm=Typemaker2_Member_List_Next(tm);
1887 TYPEMAKER2_MEMBER_LIST *tml;
1927 tm=Typemaker2_Member_List_First(tml);
2066 tm=Typemaker2_Member_List_Next(tm);
2084 TYPEMAKER2_MEMBER_LIST *tml;
2128 tm=Typemaker2_Member_List_First(tml);
2180 tm=Typemaker2_Member_List_Next(tm);
2314 TYPEMAKER2_MEMBER_LIST *tml;
2354 tm=Typemaker2_Member_List_First(tml);
2498 tm=Typemaker2_Member_List_Next(tm);
2516 TYPEMAKER2_MEMBER_LIST *tml;
2556 tm=Typemaker2_Member_List_First(tml);
2603 tm=Typemaker2_Member_List_Next(tm);
2736 TYPEMAKER2_MEMBER_LIST *tml;
2780 tm=Typemaker2_Member_List_First(tml);
2890 tm=Typemaker2_Member_List_Next(tm);
2909 TYPEMAKER2_MEMBER_LIST *tml;
2953 tm=Typemaker2_Member_List_First(tml);
3005 tm=Typemaker2_Member_List_Next(tm);
3153 TYPEMAKER2_MEMBER_LIST *tml;
3196 tm=Typemaker2_Member_List_First(tml);
3235 snprintf(numbuf,
sizeof(numbuf)-1,
"%d", l);
3236 numbuf[
sizeof(numbuf)-1]=0;
3249 tm=Typemaker2_Member_List_Next(tm);
3269 TYPEMAKER2_MEMBER_LIST *tml;
3326 tm=Typemaker2_Member_List_First(tml);
3507 tm=Typemaker2_Member_List_Next(tm);
3527 TYPEMAKER2_MEMBER_LIST *tml;
3578 tm=Typemaker2_Member_List_First(tml);
3797 tm=Typemaker2_Member_List_Next(tm);
3992 GWEN_Buffer_AppendString(tbuf,
"_CreateObject(AQDB_DB *p_db, AQDB_ID p_tableId, AQDB_ID p_id, AQDB_OBJECT **pp_o);\n");
4000 GWEN_Buffer_AppendString(tbuf,
"_CreateObject(AQDB_DB *p_db, AQDB_ID p_tableId, AQDB_ID p_id, AQDB_OBJECT **pp_o) {\n");
4025 TYPEMAKER2_ENUM_LIST *enums;
4034 if (Typemaker2_Enum_List_GetCount(enums)) {
4041 te=Typemaker2_Enum_List_First(enums);
4049 if (prefix==
NULL || *prefix==0) {
4056 if (etype && *etype)
4084 ti=Typemaker2_Item_List_Next(ti);
4091 if (etype && *etype) {
4119 te=Typemaker2_Enum_List_Next(te);
4130 TYPEMAKER2_VIRTUALFN_LIST *fns;
4139 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
4154 vf=Typemaker2_VirtualFn_List_First(fns);
4159 if (s && loc && strcasecmp(s, loc)==0) {
4161 TYPEMAKER2_VIRTUALFN_PARAM_LIST *plist;
4201 prm=Typemaker2_VirtualFn_Param_List_First(plist);
4203 const char *paramName;
4204 const char *paramType;
4219 snprintf(numbuf,
sizeof(numbuf)-1,
"param%d", i);
4220 numbuf[
sizeof(numbuf)-1]=0;
4224 prm=Typemaker2_VirtualFn_Param_List_Next(prm);
4252 vf=Typemaker2_VirtualFn_List_Next(vf);
4263 TYPEMAKER2_VIRTUALFN_LIST *fns;
4272 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
4280 vf=Typemaker2_VirtualFn_List_First(fns);
4283 TYPEMAKER2_VIRTUALFN_PARAM_LIST *plist;
4317 prm=Typemaker2_VirtualFn_Param_List_First(plist);
4319 const char *paramDescr;
4322 if (paramDescr && *paramDescr) {
4323 const char *paramName;
4333 snprintf(numbuf,
sizeof(numbuf)-1,
"param%d", i);
4334 numbuf[
sizeof(numbuf)-1]=0;
4340 len=strlen(paramDescr);
4341 if (paramDescr[len-1]!=
'\n')
4346 prm=Typemaker2_VirtualFn_Param_List_Next(prm);
4393 prm=Typemaker2_VirtualFn_Param_List_First(plist);
4395 const char *paramName;
4396 const char *paramType;
4411 snprintf(numbuf,
sizeof(numbuf)-1,
"param%d", i);
4412 numbuf[
sizeof(numbuf)-1]=0;
4416 prm=Typemaker2_VirtualFn_Param_List_Next(prm);
4443 vf=Typemaker2_VirtualFn_List_Next(vf);
4454 TYPEMAKER2_VIRTUALFN_LIST *fns;
4463 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
4471 vf=Typemaker2_VirtualFn_List_First(fns);
4473 TYPEMAKER2_VIRTUALFN_PARAM_LIST *plist;
4511 prm=Typemaker2_VirtualFn_Param_List_First(plist);
4513 const char *paramName;
4514 const char *paramType;
4529 snprintf(numbuf,
sizeof(numbuf)-1,
"param%d", i);
4530 numbuf[
sizeof(numbuf)-1]=0;
4534 prm=Typemaker2_VirtualFn_Param_List_Next(prm);
4544 DBG_ERROR(0,
"Virtual functions has no name");
4560 prm=Typemaker2_VirtualFn_Param_List_First(plist);
4562 const char *paramName;
4573 snprintf(numbuf,
sizeof(numbuf)-1,
"param%d", i);
4574 numbuf[
sizeof(numbuf)-1]=0;
4578 prm=Typemaker2_VirtualFn_Param_List_Next(prm);
4588 DBG_ERROR(0,
"No default return value");
4599 vf=Typemaker2_VirtualFn_List_Next(vf);
4610 TYPEMAKER2_VIRTUALFN_LIST *fns;
4619 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
4627 vf=Typemaker2_VirtualFn_List_First(fns);
4698 vf=Typemaker2_VirtualFn_List_Next(vf);
4709 TYPEMAKER2_VIRTUALFN_LIST *fns;
4718 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
4726 vf=Typemaker2_VirtualFn_List_First(fns);
4808 vf=Typemaker2_VirtualFn_List_Next(vf);
4819 TYPEMAKER2_ENUM_LIST *enums;
4828 if (Typemaker2_Enum_List_GetCount(enums)) {
4831 te=Typemaker2_Enum_List_First(enums);
4837 if (prefix==
NULL || *prefix==0) {
4843 if (prefix && *prefix) {
4845 if (prefix[strlen(prefix)-1]!=
'_')
4852 if (prefix && *prefix) {
4854 if (prefix[strlen(prefix)-1]!=
'_')
4861 te=Typemaker2_Enum_List_Next(te);
4872 TYPEMAKER2_ENUM_LIST *enums;
4881 if (Typemaker2_Enum_List_GetCount(enums)) {
4888 te=Typemaker2_Enum_List_First(enums);
4897 if (prefix==
NULL || *prefix==0) {
4911 if (etype && *etype) {
4917 if (prefix && *prefix) {
4919 if (prefix[strlen(prefix)-1]!=
'_')
4944 if (etype && *etype) {
4950 if (prefix && *prefix) {
4952 if (prefix[strlen(prefix)-1]!=
'_')
4982 ti=Typemaker2_Item_List_Next(ti);
4993 te=Typemaker2_Enum_List_Next(te);
5005 TYPEMAKER2_ENUM_LIST *enums;
5014 if (Typemaker2_Enum_List_GetCount(enums)) {
5021 te=Typemaker2_Enum_List_First(enums);
5029 if (prefix==
NULL || *prefix==0) {
5044 if (prefix && *prefix) {
5046 if (prefix[strlen(prefix)-1]!=
'_')
5050 if (etype && *etype)
5078 if (prefix && *prefix) {
5080 if (prefix[strlen(prefix)-1]!=
'_')
5084 if (etype && *etype)
5109 ti=Typemaker2_Item_List_Next(ti);
5125 te=Typemaker2_Enum_List_Next(te);
5594 TYPEMAKER2_MEMBER_LIST *tml;
5607 tm=Typemaker2_Member_List_First(tml);
5641 tm=Typemaker2_Member_List_Next(tm);
5851 TYPEMAKER2_MEMBER_LIST *tml;
5863 tm=Typemaker2_Member_List_First(tml);
5880 tm=Typemaker2_Member_List_Next(tm);
5891 TYPEMAKER2_DEFINE_LIST *defines;
5900 if (Typemaker2_Define_List_GetCount(defines)) {
5907 td=Typemaker2_Define_List_First(defines);
5921 if (prefix==
NULL || *prefix==0) {
5953 snprintf(numbuf,
sizeof(numbuf)-1,
"%d", k);
5954 numbuf[
sizeof(numbuf)-1]=0;
5961 ti=Typemaker2_Item_List_Next(ti);
5985 td=Typemaker2_Define_List_Next(td);
5999 TYPEMAKER2_MEMBER_LIST *tml;
6042 tm=Typemaker2_Member_List_First(tml);
6089 tm=Typemaker2_Member_List_Next(tm);
6121 const char *content;
6124 if (content && *content) {
6168 ti=Typemaker2_Inline_List_Next(ti);
6190 TYPEMAKER2_MEMBER_LIST *tml;
6196 tm=Typemaker2_Member_List_First(tml);
6208 const char *content;
6211 if (content && *content) {
6256 ti=Typemaker2_Inline_List_Next(ti);
6260 tm=Typemaker2_Member_List_Next(tm);
6329 TYPEMAKER2_SIGNAL_LIST *sigList;
6342 sig=Typemaker2_Signal_List_First(sigList);
6418 if (s && *s && strcasecmp(s,
"none")) {
6424 if (s && *s && strcasecmp(s,
"none")) {
6438 sig=Typemaker2_Signal_List_Next(sig);
6445 sig=Typemaker2_Signal_List_First(sigList);
6568 if (s && *s && strcasecmp(s,
"none")) {
6574 if (s && *s && strcasecmp(s,
"none")) {
6608 if (s && *s && strcasecmp(s,
"none")) {
6615 if (s && *s && strcasecmp(s,
"none")) {
6639 sig=Typemaker2_Signal_List_Next(sig);
6657 TYPEMAKER2_SLOT_LIST *slotList;
6668 slot=Typemaker2_Slot_List_First(slotList);
6681 slot=Typemaker2_Slot_List_Next(slot);
6689 slot=Typemaker2_Slot_List_First(slotList);
6710 slot=Typemaker2_Slot_List_Next(slot);
6717 slot=Typemaker2_Slot_List_First(slotList);
6750 if (s && *s && strcasecmp(s,
"none")) {
6756 if (s && *s && strcasecmp(s,
"none")) {
6802 slot=Typemaker2_Slot_List_Next(slot);
6901 TYPEMAKER2_MEMBER_LIST *members;
6902 const char *sTypeIdentifier;
6903 const char *sTypePrefix;
6911 snprintf(numbuf,
sizeof(numbuf)-1,
"%d", depth);
6912 numbuf[
sizeof(numbuf)-1]=0;
6948 tm=Typemaker2_Member_List_First(members);
6952 const char *sMemberName;
6966 snprintf(numbuf,
sizeof(numbuf)-1,
"%d", depth+1);
6967 numbuf[
sizeof(numbuf)-1]=0;
7011 tm=Typemaker2_Member_List_Next(tm);
7016 childGrp=Typemaker2_Group_Tree_GetFirstChild(grp);
7025 childGrp=Typemaker2_Group_Tree_GetNext(childGrp);
7036 TYPEMAKER2_GROUP_TREE *groupTree;
7039 const char *sTypeIdentifier;
7061 grp=Typemaker2_Group_Tree_GetFirst(groupTree);
7064 grp=Typemaker2_Group_Tree_GetNext(grp);
7083 TYPEMAKER2_VIRTUALFN_LIST *fnList;
7084 TYPEMAKER2_SLOT_LIST *slotList;
7093 slot=Typemaker2_Slot_List_First(slotList);
7096 TYPEMAKER2_VIRTUALFN_PARAM_LIST *plist;
7110 if (s && *s && strcasecmp(s,
"none")) {
7115 Typemaker2_VirtualFn_Param_List_Add(prm, plist);
7118 if (s && *s && strcasecmp(s,
"none")) {
7123 Typemaker2_VirtualFn_Param_List_Add(prm, plist);
7130 Typemaker2_VirtualFn_Param_List_Add(prm, plist);
7137 Typemaker2_VirtualFn_Param_List_Add(prm, plist);
7147 Typemaker2_VirtualFn_List_Add(fn, fnList);
7149 slot=Typemaker2_Slot_List_Next(slot);
7161 TYPEMAKER2_VIRTUALFN_LIST *fnList;
7167 fn=Typemaker2_VirtualFn_List_First(fnList);
7171 fnNext=Typemaker2_VirtualFn_List_Next(fn);
7173 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 _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)