gwenhywfar  4.99.8beta
tm_type.h
Go to the documentation of this file.
1 /***************************************************************************
2  begin : Wed Jul 01 2009
3  copyright : (C) 2018 by Martin Preuss
4  email : martin@libchipcard.de
5 
6  ***************************************************************************
7  * Please see toplevel file COPYING for license details *
8  ***************************************************************************/
9 
10 
11 #ifndef TYPEMAKER2_TYPE_H
12 #define TYPEMAKER2_TYPE_H
13 
14 #include <gwenhywfar/stringlist.h>
15 #include <gwenhywfar/list1.h>
16 #include <gwenhywfar/list2.h>
17 
18 #include <stdio.h>
19 
20 
22 
25 
26 
27 /* don't forget to add new flags to tm_util.c ! */
28 
30 #define TYPEMAKER2_FLAGS_NONE 0x00000001
31 #define TYPEMAKER2_FLAGS_OWN 0x00000002
32 #define TYPEMAKER2_FLAGS_VOLATILE 0x00000004
33 #define TYPEMAKER2_FLAGS_CONST 0x00000008
34 #define TYPEMAKER2_FLAGS_STATIC 0x00000010
35 #define TYPEMAKER2_FLAGS_DUP 0x00000020
36 #define TYPEMAKER2_FLAGS_NODUP 0x00000040
37 #define TYPEMAKER2_FLAGS_ATTRIBUTE 0x00000080
38 #define TYPEMAKER2_FLAGS_ENUM 0x00000100
39 #define TYPEMAKER2_FLAGS_DEFINE 0x00000200
40 #define TYPEMAKER2_FLAGS_ASSIGN 0x00000400
41 #define TYPEMAKER2_FLAGS_OMIT 0x00000800
42 #define TYPEMAKER2_FLAGS_COPY 0x00001000
43 #define TYPEMAKER2_FLAGS_NOCOPY 0x00002000
44 #define TYPEMAKER2_FLAGS_SORTBYMEMBER 0x00004000
45 #define TYPEMAKER2_FLAGS_NOCONSTOBJECT 0x00008000
46 #define TYPEMAKER2_FLAGS_WITH_GETBYMEMBER 0x00010000
47 #define TYPEMAKER2_FLAGS_WITH_HASH 0x00020000
48 #define TYPEMAKER2_FLAGS_WITH_HASHNUM 0x00040000
49 #define TYPEMAKER2_FLAGS_WITH_FLAGS 0x00080000
50 
51 
52 #define TYPEMAKER2_TYPEFLAGS_WITH_DB 0x00000001
53 #define TYPEMAKER2_TYPEFLAGS_WITH_XML 0x00000002
54 #define TYPEMAKER2_TYPEFLAGS_WITH_OBJECT 0x00000004
55 #define TYPEMAKER2_TYPEFLAGS_WITH_LIST1 0x00000008
56 #define TYPEMAKER2_TYPEFLAGS_WITH_LIST2 0x00000010
57 #define TYPEMAKER2_TYPEFLAGS_WITH_INHERIT 0x00000020
58 #define TYPEMAKER2_TYPEFLAGS_WITH_IDMAP 0x00000040
59 #define TYPEMAKER2_TYPEFLAGS_WITH_TREE 0x00000080
60 #define TYPEMAKER2_TYPEFLAGS_WITH_REFCOUNT 0x00000100
61 #define TYPEMAKER2_TYPEFLAGS_WITH_SIGNALS 0x00000800
62 #define TYPEMAKER2_TYPEFLAGS_WITH_SLOTS 0x00001000
63 #define TYPEMAKER2_TYPEFLAGS_WITH_CACHEFNS 0x00002000
64 #define TYPEMAKER2_TYPEFLAGS_DUP 0x00004000
65 #define TYPEMAKER2_TYPEFLAGS_NODUP 0x00008000
66 #define TYPEMAKER2_TYPEFLAGS_COPY 0x00010000
67 #define TYPEMAKER2_TYPEFLAGS_NOCOPY 0x00020000
68 #define TYPEMAKER2_TYPEFLAGS_WITH_HASH 0x00040000
69 #define TYPEMAKER2_TYPEFLAGS_WITH_CONSTLIST2 0x00080000
70 
71 
72 
73 enum {
78 };
79 
80 
81 
82 enum {
88 };
89 
90 
91 #include "tm_member.h"
92 #include "tm_header.h"
93 #include "tm_enum.h"
94 #include "tm_define.h"
95 #include "tm_code.h"
96 #include "tm_inline.h"
97 #include "tm_virtualfn.h"
98 #include "tm_signal.h"
99 #include "tm_slot.h"
100 #include "tm_group.h"
101 
102 
103 
104 
105 TYPEMAKER2_TYPE *Typemaker2_Type_new();
106 void Typemaker2_Type_free(TYPEMAKER2_TYPE *ty);
107 void Typemaker2_Type_Attach(TYPEMAKER2_TYPE *ty);
108 
109 
110 const char *Typemaker2_Type_GetName(const TYPEMAKER2_TYPE *ty);
111 void Typemaker2_Type_SetName(TYPEMAKER2_TYPE *ty, const char *s);
112 
113 const char *Typemaker2_Type_GetExtends(const TYPEMAKER2_TYPE *ty);
114 void Typemaker2_Type_SetExtends(TYPEMAKER2_TYPE *ty, const char *s);
115 
116 const char *Typemaker2_Type_GetBaseType(const TYPEMAKER2_TYPE *ty);
117 void Typemaker2_Type_SetBaseType(TYPEMAKER2_TYPE *ty, const char *s);
118 
119 int Typemaker2_Type_GetType(const TYPEMAKER2_TYPE *ty);
120 void Typemaker2_Type_SetType(TYPEMAKER2_TYPE *ty, int i);
121 
122 const char *Typemaker2_Type_GetAqDbType(const TYPEMAKER2_TYPE *ty);
123 void Typemaker2_Type_SetAqDbType(TYPEMAKER2_TYPE *ty, const char *s);
124 
125 const char *Typemaker2_Type_GetBaseFileName(const TYPEMAKER2_TYPE *ty);
126 void Typemaker2_Type_SetBaseFileName(TYPEMAKER2_TYPE *ty, const char *s);
127 
128 const char *Typemaker2_Type_GetFreeHook(const TYPEMAKER2_TYPE *ty);
129 void Typemaker2_Type_SetFreeHook(TYPEMAKER2_TYPE *ty, const char *s);
130 
131 uint32_t Typemaker2_Type_GetFlags(const TYPEMAKER2_TYPE *ty);
132 void Typemaker2_Type_SetFlags(TYPEMAKER2_TYPE *ty, uint32_t i);
133 
134 uint32_t Typemaker2_Type_GetSetFlags(const TYPEMAKER2_TYPE *ty);
135 void Typemaker2_Type_SetSetFlags(TYPEMAKER2_TYPE *ty, uint32_t i);
136 
137 uint32_t Typemaker2_Type_GetGetFlags(const TYPEMAKER2_TYPE *ty);
138 void Typemaker2_Type_SetGetFlags(TYPEMAKER2_TYPE *ty, uint32_t i);
139 
140 uint32_t Typemaker2_Type_GetDupFlags(const TYPEMAKER2_TYPE *ty);
141 void Typemaker2_Type_SetDupFlags(TYPEMAKER2_TYPE *ty, uint32_t i);
142 
143 uint32_t Typemaker2_Type_GetCopyFlags(const TYPEMAKER2_TYPE *ty);
144 void Typemaker2_Type_SetCopyFlags(TYPEMAKER2_TYPE *ty, uint32_t i);
145 
146 int Typemaker2_Type_GetAccess(const TYPEMAKER2_TYPE *ty);
147 void Typemaker2_Type_SetAccess(TYPEMAKER2_TYPE *ty, int i);
148 
149 int Typemaker2_Type_GetUsePrivateConstructor(const TYPEMAKER2_TYPE *ty);
150 void Typemaker2_Type_SetUsePrivateConstructor(TYPEMAKER2_TYPE *ty, int i);
151 
152 const char *Typemaker2_Type_GetDescription(const TYPEMAKER2_TYPE *ty);
153 void Typemaker2_Type_SetDescription(TYPEMAKER2_TYPE *ty, const char *s);
154 
155 const char *Typemaker2_Type_GetDefaultValue(const TYPEMAKER2_TYPE *ty);
156 void Typemaker2_Type_SetDefaultValue(TYPEMAKER2_TYPE *ty, const char *s);
157 
158 const char *Typemaker2_Type_GetPresetValue(const TYPEMAKER2_TYPE *ty);
159 void Typemaker2_Type_SetPresetValue(TYPEMAKER2_TYPE *ty, const char *s);
160 
161 const char *Typemaker2_Type_GetIdentifier(const TYPEMAKER2_TYPE *ty);
162 void Typemaker2_Type_SetIdentifier(TYPEMAKER2_TYPE *ty, const char *s);
163 
164 const char *Typemaker2_Type_GetPrefix(const TYPEMAKER2_TYPE *ty);
165 void Typemaker2_Type_SetPrefix(TYPEMAKER2_TYPE *ty, const char *s);
166 
167 const char *Typemaker2_Type_GetInherits(const TYPEMAKER2_TYPE *ty);
168 void Typemaker2_Type_SetInherits(TYPEMAKER2_TYPE *ty, const char *s);
169 
170 const char *Typemaker2_Type_GetBaseType(const TYPEMAKER2_TYPE *ty);
171 void Typemaker2_Type_SetBaseType(TYPEMAKER2_TYPE *ty, const char *s);
172 
173 const char *Typemaker2_Type_GetExtends(const TYPEMAKER2_TYPE *ty);
174 void Typemaker2_Type_SetExtends(TYPEMAKER2_TYPE *ty, const char *s);
175 
176 
177 TYPEMAKER2_MEMBER_LIST *Typemaker2_Type_GetMembers(const TYPEMAKER2_TYPE *ty);
178 TYPEMAKER2_HEADER_LIST *Typemaker2_Type_GetHeaders(const TYPEMAKER2_TYPE *ty);
179 TYPEMAKER2_ENUM_LIST *Typemaker2_Type_GetEnums(const TYPEMAKER2_TYPE *ty);
180 TYPEMAKER2_DEFINE_LIST *Typemaker2_Type_GetDefines(const TYPEMAKER2_TYPE *ty);
181 TYPEMAKER2_CODE_LIST *Typemaker2_Type_GetCodeDefs(const TYPEMAKER2_TYPE *ty);
182 TYPEMAKER2_INLINE_LIST *Typemaker2_Type_GetInlines(const TYPEMAKER2_TYPE *ty);
183 TYPEMAKER2_VIRTUALFN_LIST *Typemaker2_Type_GetVirtualFns(const TYPEMAKER2_TYPE *ty);
184 TYPEMAKER2_SIGNAL_LIST *Typemaker2_Type_GetSignals(const TYPEMAKER2_TYPE *ty);
185 TYPEMAKER2_SLOT_LIST *Typemaker2_Type_GetSlots(const TYPEMAKER2_TYPE *ty);
186 TYPEMAKER2_GROUP_TREE *Typemaker2_Type_GetGroupTree(const TYPEMAKER2_TYPE *ty);
187 
188 int Typemaker2_Type_GetNonVolatileMemberCount(const TYPEMAKER2_TYPE *ty);
189 void Typemaker2_Type_SetNonVolatileMemberCount(TYPEMAKER2_TYPE *ty, int i);
190 
191 
192 TYPEMAKER2_TYPE *Typemaker2_Type_GetExtendsPtr(const TYPEMAKER2_TYPE *ty);
193 void Typemaker2_Type_SetExtendsPtr(TYPEMAKER2_TYPE *ty, TYPEMAKER2_TYPE *p);
194 
195 TYPEMAKER2_TYPE *Typemaker2_Type_GetBaseTypePtr(const TYPEMAKER2_TYPE *ty);
196 void Typemaker2_Type_SetBaseTypePtr(TYPEMAKER2_TYPE *ty, TYPEMAKER2_TYPE *p);
197 
198 TYPEMAKER2_TYPE *Typemaker2_Type_GetInheritsPtr(const TYPEMAKER2_TYPE *ty);
199 void Typemaker2_Type_SetInheritsPtr(TYPEMAKER2_TYPE *ty, TYPEMAKER2_TYPE *p);
200 
201 const char *Typemaker2_Type_GetFieldCountId(const TYPEMAKER2_TYPE *ty);
202 void Typemaker2_Type_SetFieldCountId(TYPEMAKER2_TYPE *ty, const char *s);
203 
204 
205 TYPEMAKER2_ENUM *Typemaker2_Type_FindEnum(TYPEMAKER2_TYPE *ty, const char *s);
206 TYPEMAKER2_CODE *Typemaker2_Type_FindCodeForMember(const TYPEMAKER2_TYPE *ty,
207  const TYPEMAKER2_MEMBER *tm,
208  const char *id);
209 
210 
211 int Typemaker2_Type_readXml(TYPEMAKER2_TYPE *ty, GWEN_XMLNODE *node, const char *wantedLang);
212 
213 void Typemaker2_Type_Dump(TYPEMAKER2_TYPE *ty, FILE *f, int indent);
214 
215 
216 
217 #endif
218 
219 
220 
const char * Typemaker2_Type_GetAqDbType(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:182
void Typemaker2_Type_SetAqDbType(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:194
uint32_t Typemaker2_Type_GetSetFlags(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:324
void Typemaker2_Type_free(TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:64
TYPEMAKER2_CODE_LIST * Typemaker2_Type_GetCodeDefs(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:600
uint32_t Typemaker2_Type_GetFlags(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:304
void Typemaker2_Type_SetFreeHook(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:232
uint32_t Typemaker2_Type_GetCopyFlags(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:384
void Typemaker2_Type_SetExtendsPtr(TYPEMAKER2_TYPE *ty, TYPEMAKER2_TYPE *p)
Definition: tm_type.c:528
void Typemaker2_Type_SetPresetValue(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:474
TYPEMAKER2_GROUP_TREE * Typemaker2_Type_GetGroupTree(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:640
TYPEMAKER2_TYPE * Typemaker2_Type_GetBaseTypePtr(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:552
void Typemaker2_Type_SetDescription(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:150
void Typemaker2_Type_SetAccess(TYPEMAKER2_TYPE *ty, int i)
Definition: tm_type.c:416
TYPEMAKER2_CODE * Typemaker2_Type_FindCodeForMember(const TYPEMAKER2_TYPE *ty, const TYPEMAKER2_MEMBER *tm, const char *id)
Definition: tm_type.c:1241
const char * Typemaker2_Type_GetDescription(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:142
TYPEMAKER2_INLINE_LIST * Typemaker2_Type_GetInlines(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:608
const char * Typemaker2_Type_GetName(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:124
int Typemaker2_Type_readXml(TYPEMAKER2_TYPE *ty, GWEN_XMLNODE *node, const char *wantedLang)
Definition: tm_type.c:743
int Typemaker2_Type_GetType(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:160
#define GWEN_LIST2_FUNCTION_DEFS(t, pr)
Definition: list2.h:92
int Typemaker2_Type_GetAccess(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:404
TYPEMAKER2_VIRTUALFN_LIST * Typemaker2_Type_GetVirtualFns(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:616
TYPEMAKER2_TYPE * Typemaker2_Type_new()
Definition: tm_type.c:32
void Typemaker2_Type_SetDupFlags(TYPEMAKER2_TYPE *ty, uint32_t i)
Definition: tm_type.c:376
const char * Typemaker2_Type_GetFreeHook(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:223
struct TYPEMAKER2_ENUM TYPEMAKER2_ENUM
Definition: tm_enum.h:24
#define GWEN_LIST_FUNCTION_DEFS(t, pr)
Definition: list1.h:357
TYPEMAKER2_SLOT_LIST * Typemaker2_Type_GetSlots(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:632
TYPEMAKER2_ENUM * Typemaker2_Type_FindEnum(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:1222
void Typemaker2_Type_SetUsePrivateConstructor(TYPEMAKER2_TYPE *ty, int i)
Definition: tm_type.c:432
TYPEMAKER2_TYPE * Typemaker2_Type_GetExtendsPtr(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:520
void Typemaker2_Type_SetPrefix(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:510
const char * Typemaker2_Type_GetInherits(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:282
int Typemaker2_Type_GetNonVolatileMemberCount(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:648
const char * Typemaker2_Type_GetExtends(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:242
void Typemaker2_Type_SetGetFlags(TYPEMAKER2_TYPE *ty, uint32_t i)
Definition: tm_type.c:356
void Typemaker2_Type_SetBaseFileName(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:213
void Typemaker2_Type_SetInherits(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:294
uint32_t Typemaker2_Type_GetDupFlags(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:364
const char * Typemaker2_Type_GetBaseFileName(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:204
void Typemaker2_Type_SetFieldCountId(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:672
void Typemaker2_Type_SetSetFlags(TYPEMAKER2_TYPE *ty, uint32_t i)
Definition: tm_type.c:336
const char * Typemaker2_Type_GetIdentifier(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:484
struct TYPEMAKER2_TYPE TYPEMAKER2_TYPE
Definition: tm_type.h:21
void Typemaker2_Type_SetName(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:132
void Typemaker2_Type_SetDefaultValue(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:452
TYPEMAKER2_ENUM_LIST * Typemaker2_Type_GetEnums(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:584
void Typemaker2_Type_SetBaseType(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:272
TYPEMAKER2_HEADER_LIST * Typemaker2_Type_GetHeaders(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:576
TYPEMAKER2_DEFINE_LIST * Typemaker2_Type_GetDefines(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:592
TYPEMAKER2_MEMBER_LIST * Typemaker2_Type_GetMembers(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:568
void Typemaker2_Type_SetBaseTypePtr(TYPEMAKER2_TYPE *ty, TYPEMAKER2_TYPE *p)
Definition: tm_type.c:560
const char * Typemaker2_Type_GetPresetValue(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:462
void Typemaker2_Type_SetFlags(TYPEMAKER2_TYPE *ty, uint32_t i)
Definition: tm_type.c:316
const char * Typemaker2_Type_GetDefaultValue(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:440
void Typemaker2_Type_SetExtends(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:250
void Typemaker2_Type_Attach(TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:116
void Typemaker2_Type_SetIdentifier(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:492
const char * Typemaker2_Type_GetBaseType(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:260
const char * Typemaker2_Type_GetFieldCountId(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:664
const char * Typemaker2_Type_GetPrefix(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:502
uint32_t Typemaker2_Type_GetGetFlags(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:344
struct TYPEMAKER2_MEMBER TYPEMAKER2_MEMBER
Definition: tm_member.h:21
TYPEMAKER2_TYPE * Typemaker2_Type_GetInheritsPtr(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:536
struct TYPEMAKER2_CODE TYPEMAKER2_CODE
Definition: tm_code.h:24
int Typemaker2_Type_GetUsePrivateConstructor(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:424
TYPEMAKER2_SIGNAL_LIST * Typemaker2_Type_GetSignals(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:624
void Typemaker2_Type_SetCopyFlags(TYPEMAKER2_TYPE *ty, uint32_t i)
Definition: tm_type.c:396
void Typemaker2_Type_SetNonVolatileMemberCount(TYPEMAKER2_TYPE *ty, int i)
Definition: tm_type.c:656
struct GWEN__XMLNODE GWEN_XMLNODE
Definition: xml.h:148
void Typemaker2_Type_SetInheritsPtr(TYPEMAKER2_TYPE *ty, TYPEMAKER2_TYPE *p)
Definition: tm_type.c:544
void Typemaker2_Type_SetType(TYPEMAKER2_TYPE *ty, int i)
Definition: tm_type.c:174
void Typemaker2_Type_Dump(TYPEMAKER2_TYPE *ty, FILE *f, int indent)
Definition: tm_type.c:1138