gwenhywfar  4.99.15beta
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 
29 
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 #define TYPEMAKER2_TYPEFLAGS_WITH_TREE2 0x00100000
71 
72 
73 
74 enum {
79 };
80 
81 
82 
83 enum {
89 };
90 
91 
92 #include "tm_member.h"
93 #include "tm_header.h"
94 #include "tm_enum.h"
95 #include "tm_define.h"
96 #include "tm_code.h"
97 #include "tm_inline.h"
98 #include "tm_virtualfn.h"
99 #include "tm_signal.h"
100 #include "tm_slot.h"
101 #include "tm_group.h"
102 
103 
104 
105 
109 
110 
111 const char *Typemaker2_Type_GetName(const TYPEMAKER2_TYPE *ty);
112 void Typemaker2_Type_SetName(TYPEMAKER2_TYPE *ty, const char *s);
113 
114 const char *Typemaker2_Type_GetExtends(const TYPEMAKER2_TYPE *ty);
115 void Typemaker2_Type_SetExtends(TYPEMAKER2_TYPE *ty, const char *s);
116 
117 const char *Typemaker2_Type_GetBaseType(const TYPEMAKER2_TYPE *ty);
118 void Typemaker2_Type_SetBaseType(TYPEMAKER2_TYPE *ty, const char *s);
119 
122 
123 const char *Typemaker2_Type_GetAqDbType(const TYPEMAKER2_TYPE *ty);
124 void Typemaker2_Type_SetAqDbType(TYPEMAKER2_TYPE *ty, const char *s);
125 
126 const char *Typemaker2_Type_GetBaseFileName(const TYPEMAKER2_TYPE *ty);
127 void Typemaker2_Type_SetBaseFileName(TYPEMAKER2_TYPE *ty, const char *s);
128 
129 const char *Typemaker2_Type_GetFreeHook(const TYPEMAKER2_TYPE *ty);
130 void Typemaker2_Type_SetFreeHook(TYPEMAKER2_TYPE *ty, const char *s);
131 
132 uint32_t Typemaker2_Type_GetFlags(const TYPEMAKER2_TYPE *ty);
133 void Typemaker2_Type_SetFlags(TYPEMAKER2_TYPE *ty, uint32_t i);
134 
135 uint32_t Typemaker2_Type_GetSetFlags(const TYPEMAKER2_TYPE *ty);
136 void Typemaker2_Type_SetSetFlags(TYPEMAKER2_TYPE *ty, uint32_t i);
137 
138 uint32_t Typemaker2_Type_GetGetFlags(const TYPEMAKER2_TYPE *ty);
139 void Typemaker2_Type_SetGetFlags(TYPEMAKER2_TYPE *ty, uint32_t i);
140 
141 uint32_t Typemaker2_Type_GetDupFlags(const TYPEMAKER2_TYPE *ty);
142 void Typemaker2_Type_SetDupFlags(TYPEMAKER2_TYPE *ty, uint32_t i);
143 
145 void Typemaker2_Type_SetCopyFlags(TYPEMAKER2_TYPE *ty, uint32_t i);
146 
149 
152 
153 const char *Typemaker2_Type_GetDescription(const TYPEMAKER2_TYPE *ty);
154 void Typemaker2_Type_SetDescription(TYPEMAKER2_TYPE *ty, const char *s);
155 
156 const char *Typemaker2_Type_GetDefaultValue(const TYPEMAKER2_TYPE *ty);
157 void Typemaker2_Type_SetDefaultValue(TYPEMAKER2_TYPE *ty, const char *s);
158 
159 const char *Typemaker2_Type_GetPresetValue(const TYPEMAKER2_TYPE *ty);
160 void Typemaker2_Type_SetPresetValue(TYPEMAKER2_TYPE *ty, const char *s);
161 
162 const char *Typemaker2_Type_GetIdentifier(const TYPEMAKER2_TYPE *ty);
163 void Typemaker2_Type_SetIdentifier(TYPEMAKER2_TYPE *ty, const char *s);
164 
165 const char *Typemaker2_Type_GetPrefix(const TYPEMAKER2_TYPE *ty);
166 void Typemaker2_Type_SetPrefix(TYPEMAKER2_TYPE *ty, const char *s);
167 
168 const char *Typemaker2_Type_GetInherits(const TYPEMAKER2_TYPE *ty);
169 void Typemaker2_Type_SetInherits(TYPEMAKER2_TYPE *ty, const char *s);
170 
171 const char *Typemaker2_Type_GetBaseType(const TYPEMAKER2_TYPE *ty);
172 void Typemaker2_Type_SetBaseType(TYPEMAKER2_TYPE *ty, const char *s);
173 
174 const char *Typemaker2_Type_GetExtends(const TYPEMAKER2_TYPE *ty);
175 void Typemaker2_Type_SetExtends(TYPEMAKER2_TYPE *ty, const char *s);
176 
177 
178 TYPEMAKER2_MEMBER_LIST *Typemaker2_Type_GetMembers(const TYPEMAKER2_TYPE *ty);
179 TYPEMAKER2_HEADER_LIST *Typemaker2_Type_GetHeaders(const TYPEMAKER2_TYPE *ty);
180 TYPEMAKER2_ENUM_LIST *Typemaker2_Type_GetEnums(const TYPEMAKER2_TYPE *ty);
181 TYPEMAKER2_DEFINE_LIST *Typemaker2_Type_GetDefines(const TYPEMAKER2_TYPE *ty);
182 TYPEMAKER2_CODE_LIST *Typemaker2_Type_GetCodeDefs(const TYPEMAKER2_TYPE *ty);
183 TYPEMAKER2_INLINE_LIST *Typemaker2_Type_GetInlines(const TYPEMAKER2_TYPE *ty);
184 TYPEMAKER2_VIRTUALFN_LIST *Typemaker2_Type_GetVirtualFns(const TYPEMAKER2_TYPE *ty);
185 TYPEMAKER2_SIGNAL_LIST *Typemaker2_Type_GetSignals(const TYPEMAKER2_TYPE *ty);
186 TYPEMAKER2_SLOT_LIST *Typemaker2_Type_GetSlots(const TYPEMAKER2_TYPE *ty);
187 TYPEMAKER2_GROUP_TREE *Typemaker2_Type_GetGroupTree(const TYPEMAKER2_TYPE *ty);
188 
191 
192 
195 
198 
201 
202 const char *Typemaker2_Type_GetFieldCountId(const TYPEMAKER2_TYPE *ty);
203 void Typemaker2_Type_SetFieldCountId(TYPEMAKER2_TYPE *ty, const char *s);
204 
205 
208  const TYPEMAKER2_MEMBER *tm,
209  const char *id);
210 
211 
212 int Typemaker2_Type_readXml(TYPEMAKER2_TYPE *ty, GWEN_XMLNODE *node, const char *wantedLang);
213 
214 void Typemaker2_Type_Dump(TYPEMAKER2_TYPE *ty, FILE *f, int indent);
215 
216 
217 
218 #endif
219 
220 
221 
const char * Typemaker2_Type_GetAqDbType(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:195
void Typemaker2_Type_SetAqDbType(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:208
uint32_t Typemaker2_Type_GetSetFlags(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:363
void Typemaker2_Type_free(TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:65
TYPEMAKER2_CODE_LIST * Typemaker2_Type_GetCodeDefs(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:677
uint32_t Typemaker2_Type_GetFlags(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:341
void Typemaker2_Type_SetFreeHook(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:254
uint32_t Typemaker2_Type_GetCopyFlags(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:429
void Typemaker2_Type_SetExtendsPtr(TYPEMAKER2_TYPE *ty, TYPEMAKER2_TYPE *p)
Definition: tm_type.c:596
void Typemaker2_Type_SetPresetValue(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:530
TYPEMAKER2_GROUP_TREE * Typemaker2_Type_GetGroupTree(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:722
TYPEMAKER2_TYPE * Typemaker2_Type_GetBaseTypePtr(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:623
void Typemaker2_Type_SetDescription(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:158
void Typemaker2_Type_SetAccess(TYPEMAKER2_TYPE *ty, int i)
Definition: tm_type.c:464
TYPEMAKER2_CODE * Typemaker2_Type_FindCodeForMember(const TYPEMAKER2_TYPE *ty, const TYPEMAKER2_MEMBER *tm, const char *id)
Definition: tm_type.c:1354
const char * Typemaker2_Type_GetDescription(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:149
TYPEMAKER2_INLINE_LIST * Typemaker2_Type_GetInlines(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:686
const char * Typemaker2_Type_GetName(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:127
int Typemaker2_Type_readXml(TYPEMAKER2_TYPE *ty, GWEN_XMLNODE *node, const char *wantedLang)
Definition: tm_type.c:833
int Typemaker2_Type_GetType(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:171
#define GWEN_LIST2_FUNCTION_DEFS(t, pr)
Definition: list2.h:92
int Typemaker2_Type_GetAccess(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:451
TYPEMAKER2_VIRTUALFN_LIST * Typemaker2_Type_GetVirtualFns(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:695
TYPEMAKER2_TYPE * Typemaker2_Type_new()
Definition: tm_type.c:32
void Typemaker2_Type_SetDupFlags(TYPEMAKER2_TYPE *ty, uint32_t i)
Definition: tm_type.c:420
const char * Typemaker2_Type_GetFreeHook(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:244
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:713
TYPEMAKER2_ENUM * Typemaker2_Type_FindEnum(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:1334
void Typemaker2_Type_SetUsePrivateConstructor(TYPEMAKER2_TYPE *ty, int i)
Definition: tm_type.c:482
TYPEMAKER2_TYPE * Typemaker2_Type_GetExtendsPtr(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:587
void Typemaker2_Type_SetPrefix(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:574
const char * Typemaker2_Type_GetInherits(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:315
int Typemaker2_Type_GetNonVolatileMemberCount(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:731
const char * Typemaker2_Type_GetExtends(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:267
void Typemaker2_Type_SetGetFlags(TYPEMAKER2_TYPE *ty, uint32_t i)
Definition: tm_type.c:398
void Typemaker2_Type_SetBaseFileName(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:231
void Typemaker2_Type_SetInherits(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:328
uint32_t Typemaker2_Type_GetDupFlags(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:407
const char * Typemaker2_Type_GetBaseFileName(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:221
void Typemaker2_Type_SetFieldCountId(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:758
void Typemaker2_Type_SetSetFlags(TYPEMAKER2_TYPE *ty, uint32_t i)
Definition: tm_type.c:376
const char * Typemaker2_Type_GetIdentifier(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:543
struct TYPEMAKER2_TYPE TYPEMAKER2_TYPE
Definition: tm_type.h:21
void Typemaker2_Type_SetName(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:136
void Typemaker2_Type_SetDefaultValue(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:504
TYPEMAKER2_ENUM_LIST * Typemaker2_Type_GetEnums(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:659
void Typemaker2_Type_SetBaseType(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:302
TYPEMAKER2_HEADER_LIST * Typemaker2_Type_GetHeaders(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:650
TYPEMAKER2_DEFINE_LIST * Typemaker2_Type_GetDefines(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:668
TYPEMAKER2_MEMBER_LIST * Typemaker2_Type_GetMembers(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:641
void Typemaker2_Type_SetBaseTypePtr(TYPEMAKER2_TYPE *ty, TYPEMAKER2_TYPE *p)
Definition: tm_type.c:632
const char * Typemaker2_Type_GetPresetValue(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:517
void Typemaker2_Type_SetFlags(TYPEMAKER2_TYPE *ty, uint32_t i)
Definition: tm_type.c:354
const char * Typemaker2_Type_GetDefaultValue(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:491
void Typemaker2_Type_SetExtends(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:276
void Typemaker2_Type_Attach(TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:118
void Typemaker2_Type_SetIdentifier(TYPEMAKER2_TYPE *ty, const char *s)
Definition: tm_type.c:552
const char * Typemaker2_Type_GetBaseType(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:289
const char * Typemaker2_Type_GetFieldCountId(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:749
const char * Typemaker2_Type_GetPrefix(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:565
uint32_t Typemaker2_Type_GetGetFlags(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:385
struct TYPEMAKER2_MEMBER TYPEMAKER2_MEMBER
Definition: tm_member.h:21
TYPEMAKER2_TYPE * Typemaker2_Type_GetInheritsPtr(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:605
struct TYPEMAKER2_CODE TYPEMAKER2_CODE
Definition: tm_code.h:24
int Typemaker2_Type_GetUsePrivateConstructor(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:473
TYPEMAKER2_SIGNAL_LIST * Typemaker2_Type_GetSignals(const TYPEMAKER2_TYPE *ty)
Definition: tm_type.c:704
void Typemaker2_Type_SetCopyFlags(TYPEMAKER2_TYPE *ty, uint32_t i)
Definition: tm_type.c:442
void Typemaker2_Type_SetNonVolatileMemberCount(TYPEMAKER2_TYPE *ty, int i)
Definition: tm_type.c:740
struct GWEN__XMLNODE GWEN_XMLNODE
Definition: xml.h:148
void Typemaker2_Type_SetInheritsPtr(TYPEMAKER2_TYPE *ty, TYPEMAKER2_TYPE *p)
Definition: tm_type.c:614
void Typemaker2_Type_SetType(TYPEMAKER2_TYPE *ty, int i)
Definition: tm_type.c:186
void Typemaker2_Type_Dump(TYPEMAKER2_TYPE *ty, FILE *f, int indent)
Definition: tm_type.c:1229