gwenhywfar 5.12.0
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#define TYPEMAKER2_FLAGS_GWEN_CB 0x00100000
51
52
53#define TYPEMAKER2_TYPEFLAGS_WITH_DB 0x00000001
54#define TYPEMAKER2_TYPEFLAGS_WITH_XML 0x00000002
55#define TYPEMAKER2_TYPEFLAGS_WITH_OBJECT 0x00000004
56#define TYPEMAKER2_TYPEFLAGS_WITH_LIST1 0x00000008
57#define TYPEMAKER2_TYPEFLAGS_WITH_LIST2 0x00000010
58#define TYPEMAKER2_TYPEFLAGS_WITH_INHERIT 0x00000020
59#define TYPEMAKER2_TYPEFLAGS_WITH_IDMAP 0x00000040
60#define TYPEMAKER2_TYPEFLAGS_WITH_TREE 0x00000080
61#define TYPEMAKER2_TYPEFLAGS_WITH_REFCOUNT 0x00000100
62#define TYPEMAKER2_TYPEFLAGS_WITH_SIGNALS 0x00000800
63#define TYPEMAKER2_TYPEFLAGS_WITH_SLOTS 0x00001000
64#define TYPEMAKER2_TYPEFLAGS_WITH_CACHEFNS 0x00002000
65#define TYPEMAKER2_TYPEFLAGS_DUP 0x00004000
66#define TYPEMAKER2_TYPEFLAGS_NODUP 0x00008000
67#define TYPEMAKER2_TYPEFLAGS_COPY 0x00010000
68#define TYPEMAKER2_TYPEFLAGS_NOCOPY 0x00020000
69#define TYPEMAKER2_TYPEFLAGS_WITH_HASH 0x00040000
70#define TYPEMAKER2_TYPEFLAGS_WITH_CONSTLIST2 0x00080000
71#define TYPEMAKER2_TYPEFLAGS_WITH_TREE2 0x00100000
72
73
74
75enum {
80};
81
82
83
84enum {
90};
91
92
93#include "tm_member.h"
94#include "tm_header.h"
95#include "tm_enum.h"
96#include "tm_define.h"
97#include "tm_code.h"
98#include "tm_inline.h"
99#include "tm_virtualfn.h"
100#include "tm_signal.h"
101#include "tm_slot.h"
102#include "tm_group.h"
103
104
105
106
110
111
112const char *Typemaker2_Type_GetName(const TYPEMAKER2_TYPE *ty);
113void Typemaker2_Type_SetName(TYPEMAKER2_TYPE *ty, const char *s);
114
115const char *Typemaker2_Type_GetExtends(const TYPEMAKER2_TYPE *ty);
116void Typemaker2_Type_SetExtends(TYPEMAKER2_TYPE *ty, const char *s);
117
118const char *Typemaker2_Type_GetBaseType(const TYPEMAKER2_TYPE *ty);
119void Typemaker2_Type_SetBaseType(TYPEMAKER2_TYPE *ty, const char *s);
120
123
124const char *Typemaker2_Type_GetAqDbType(const TYPEMAKER2_TYPE *ty);
125void Typemaker2_Type_SetAqDbType(TYPEMAKER2_TYPE *ty, const char *s);
126
128void Typemaker2_Type_SetBaseFileName(TYPEMAKER2_TYPE *ty, const char *s);
129
130const char *Typemaker2_Type_GetFreeHook(const TYPEMAKER2_TYPE *ty);
131void Typemaker2_Type_SetFreeHook(TYPEMAKER2_TYPE *ty, const char *s);
132
133uint32_t Typemaker2_Type_GetFlags(const TYPEMAKER2_TYPE *ty);
134void Typemaker2_Type_SetFlags(TYPEMAKER2_TYPE *ty, uint32_t i);
135
137void Typemaker2_Type_SetSetFlags(TYPEMAKER2_TYPE *ty, uint32_t i);
138
140void Typemaker2_Type_SetGetFlags(TYPEMAKER2_TYPE *ty, uint32_t i);
141
143void Typemaker2_Type_SetDupFlags(TYPEMAKER2_TYPE *ty, uint32_t i);
144
147
150
153
156
158void Typemaker2_Type_SetDescription(TYPEMAKER2_TYPE *ty, const char *s);
159
161void Typemaker2_Type_SetDefaultValue(TYPEMAKER2_TYPE *ty, const char *s);
162
164void Typemaker2_Type_SetPresetValue(TYPEMAKER2_TYPE *ty, const char *s);
165
167void Typemaker2_Type_SetIdentifier(TYPEMAKER2_TYPE *ty, const char *s);
168
169const char *Typemaker2_Type_GetPrefix(const TYPEMAKER2_TYPE *ty);
170void Typemaker2_Type_SetPrefix(TYPEMAKER2_TYPE *ty, const char *s);
171
172const char *Typemaker2_Type_GetInherits(const TYPEMAKER2_TYPE *ty);
173void Typemaker2_Type_SetInherits(TYPEMAKER2_TYPE *ty, const char *s);
174
175const char *Typemaker2_Type_GetBaseType(const TYPEMAKER2_TYPE *ty);
176void Typemaker2_Type_SetBaseType(TYPEMAKER2_TYPE *ty, const char *s);
177
178const char *Typemaker2_Type_GetExtends(const TYPEMAKER2_TYPE *ty);
179void Typemaker2_Type_SetExtends(TYPEMAKER2_TYPE *ty, const char *s);
180
183
184
185TYPEMAKER2_MEMBER_LIST *Typemaker2_Type_GetMembers(const TYPEMAKER2_TYPE *ty);
186TYPEMAKER2_HEADER_LIST *Typemaker2_Type_GetHeaders(const TYPEMAKER2_TYPE *ty);
187TYPEMAKER2_ENUM_LIST *Typemaker2_Type_GetEnums(const TYPEMAKER2_TYPE *ty);
188TYPEMAKER2_DEFINE_LIST *Typemaker2_Type_GetDefines(const TYPEMAKER2_TYPE *ty);
189TYPEMAKER2_CODE_LIST *Typemaker2_Type_GetCodeDefs(const TYPEMAKER2_TYPE *ty);
190TYPEMAKER2_INLINE_LIST *Typemaker2_Type_GetInlines(const TYPEMAKER2_TYPE *ty);
191TYPEMAKER2_VIRTUALFN_LIST *Typemaker2_Type_GetVirtualFns(const TYPEMAKER2_TYPE *ty);
192TYPEMAKER2_SIGNAL_LIST *Typemaker2_Type_GetSignals(const TYPEMAKER2_TYPE *ty);
193TYPEMAKER2_SLOT_LIST *Typemaker2_Type_GetSlots(const TYPEMAKER2_TYPE *ty);
194TYPEMAKER2_GROUP_TREE *Typemaker2_Type_GetGroupTree(const TYPEMAKER2_TYPE *ty);
195
198
199
202
205
208
210void Typemaker2_Type_SetFieldCountId(TYPEMAKER2_TYPE *ty, const char *s);
211
212
215 const TYPEMAKER2_MEMBER *tm,
216 const char *id);
217
218
219int Typemaker2_Type_readXml(TYPEMAKER2_TYPE *ty, GWEN_XMLNODE *node, const char *wantedLang);
220
221void Typemaker2_Type_Dump(TYPEMAKER2_TYPE *ty, FILE *f, int indent);
222
223
224
225#endif
226
227
228
#define GWEN_LIST_FUNCTION_DEFS(t, pr)
Definition list1.h:358
#define GWEN_LIST2_FUNCTION_DEFS(t, pr)
Definition list2.h:92
struct TYPEMAKER2_CODE TYPEMAKER2_CODE
Definition tm_code.h:24
struct TYPEMAKER2_ENUM TYPEMAKER2_ENUM
Definition tm_enum.h:24
struct TYPEMAKER2_MEMBER TYPEMAKER2_MEMBER
Definition tm_member.h:21
TYPEMAKER2_CODE_LIST * Typemaker2_Type_GetCodeDefs(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:719
TYPEMAKER2_DEFINE_LIST * Typemaker2_Type_GetDefines(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:710
void Typemaker2_Type_SetCopyFlags(TYPEMAKER2_TYPE *ty, uint32_t i)
Definition tm_type.c:462
uint32_t Typemaker2_Type_GetSetFlags(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:383
int Typemaker2_Type_GetStructAccess(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:493
void Typemaker2_Type_SetDupFlags(TYPEMAKER2_TYPE *ty, uint32_t i)
Definition tm_type.c:440
TYPEMAKER2_ENUM * Typemaker2_Type_FindEnum(TYPEMAKER2_TYPE *ty, const char *s)
Definition tm_type.c:1389
int Typemaker2_Type_GetType(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:171
void Typemaker2_Type_SetAqDbType(TYPEMAKER2_TYPE *ty, const char *s)
Definition tm_type.c:208
uint32_t Typemaker2_Type_GetCopyFlags(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:449
struct TYPEMAKER2_TYPE TYPEMAKER2_TYPE
Definition tm_type.h:21
void Typemaker2_Type_SetType(TYPEMAKER2_TYPE *ty, int i)
Definition tm_type.c:186
const char * Typemaker2_Type_GetFieldCountId(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:791
void Typemaker2_Type_SetFreeHook(TYPEMAKER2_TYPE *ty, const char *s)
Definition tm_type.c:254
TYPEMAKER2_TYPE * Typemaker2_Type_GetInheritsPtr(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:647
const char * Typemaker2_Type_GetDescription(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:149
TYPEMAKER2_HEADER_LIST * Typemaker2_Type_GetHeaders(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:692
const char * Typemaker2_Type_GetIdentifier(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:585
void Typemaker2_Type_SetUsePrivateConstructor(TYPEMAKER2_TYPE *ty, int i)
Definition tm_type.c:524
int Typemaker2_Type_GetAccess(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:471
void Typemaker2_Type_SetIdentifier(TYPEMAKER2_TYPE *ty, const char *s)
Definition tm_type.c:594
void Typemaker2_Type_SetInheritsPtr(TYPEMAKER2_TYPE *ty, TYPEMAKER2_TYPE *p)
Definition tm_type.c:656
void Typemaker2_Type_SetFlags(TYPEMAKER2_TYPE *ty, uint32_t i)
Definition tm_type.c:374
TYPEMAKER2_SLOT_LIST * Typemaker2_Type_GetSlots(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:755
void Typemaker2_Type_Dump(TYPEMAKER2_TYPE *ty, FILE *f, int indent)
Definition tm_type.c:1284
TYPEMAKER2_VIRTUALFN_LIST * Typemaker2_Type_GetVirtualFns(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:737
int Typemaker2_Type_GetPack(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:289
const char * Typemaker2_Type_GetPresetValue(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:559
void Typemaker2_Type_SetSetFlags(TYPEMAKER2_TYPE *ty, uint32_t i)
Definition tm_type.c:396
void Typemaker2_Type_SetPack(TYPEMAKER2_TYPE *ty, int i)
Definition tm_type.c:298
void Typemaker2_Type_SetName(TYPEMAKER2_TYPE *ty, const char *s)
Definition tm_type.c:136
uint32_t Typemaker2_Type_GetFlags(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:361
@ TypeMaker2_Access_Private
Definition tm_type.h:89
@ TypeMaker2_Access_Library
Definition tm_type.h:88
@ TypeMaker2_Access_Protected
Definition tm_type.h:87
@ TypeMaker2_Access_Unknown
Definition tm_type.h:85
@ TypeMaker2_Access_Public
Definition tm_type.h:86
void Typemaker2_Type_SetPrefix(TYPEMAKER2_TYPE *ty, const char *s)
Definition tm_type.c:616
const char * Typemaker2_Type_GetExtends(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:267
void Typemaker2_Type_Attach(TYPEMAKER2_TYPE *ty)
Definition tm_type.c:118
const char * Typemaker2_Type_GetFreeHook(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:244
@ TypeMaker2_Type_Array
Definition tm_type.h:79
@ TypeMaker2_Type_Pointer
Definition tm_type.h:78
@ TypeMaker2_Type_Opaque
Definition tm_type.h:77
@ TypeMaker2_Type_Unknown
Definition tm_type.h:76
TYPEMAKER2_TYPE * Typemaker2_Type_GetBaseTypePtr(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:665
void Typemaker2_Type_free(TYPEMAKER2_TYPE *ty)
Definition tm_type.c:65
void Typemaker2_Type_SetBaseFileName(TYPEMAKER2_TYPE *ty, const char *s)
Definition tm_type.c:231
const char * Typemaker2_Type_GetBaseFileName(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:221
void Typemaker2_Type_SetDefaultValue(TYPEMAKER2_TYPE *ty, const char *s)
Definition tm_type.c:546
void Typemaker2_Type_SetGetFlags(TYPEMAKER2_TYPE *ty, uint32_t i)
Definition tm_type.c:418
uint32_t Typemaker2_Type_GetGetFlags(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:405
TYPEMAKER2_ENUM_LIST * Typemaker2_Type_GetEnums(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:701
const char * Typemaker2_Type_GetName(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:127
TYPEMAKER2_INLINE_LIST * Typemaker2_Type_GetInlines(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:728
int Typemaker2_Type_GetNonVolatileMemberCount(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:773
const char * Typemaker2_Type_GetPrefix(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:607
void Typemaker2_Type_SetAccess(TYPEMAKER2_TYPE *ty, int i)
Definition tm_type.c:484
const char * Typemaker2_Type_GetAqDbType(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:195
void Typemaker2_Type_SetBaseTypePtr(TYPEMAKER2_TYPE *ty, TYPEMAKER2_TYPE *p)
Definition tm_type.c:674
void Typemaker2_Type_SetPresetValue(TYPEMAKER2_TYPE *ty, const char *s)
Definition tm_type.c:572
TYPEMAKER2_TYPE * Typemaker2_Type_GetExtendsPtr(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:629
TYPEMAKER2_MEMBER_LIST * Typemaker2_Type_GetMembers(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:683
const char * Typemaker2_Type_GetBaseType(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:309
void Typemaker2_Type_SetInherits(TYPEMAKER2_TYPE *ty, const char *s)
Definition tm_type.c:348
const char * Typemaker2_Type_GetInherits(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:335
TYPEMAKER2_GROUP_TREE * Typemaker2_Type_GetGroupTree(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:764
const char * Typemaker2_Type_GetDefaultValue(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:533
void Typemaker2_Type_SetBaseType(TYPEMAKER2_TYPE *ty, const char *s)
Definition tm_type.c:322
void Typemaker2_Type_SetExtends(TYPEMAKER2_TYPE *ty, const char *s)
Definition tm_type.c:276
void Typemaker2_Type_SetStructAccess(TYPEMAKER2_TYPE *ty, int i)
Definition tm_type.c:506
void Typemaker2_Type_SetExtendsPtr(TYPEMAKER2_TYPE *ty, TYPEMAKER2_TYPE *p)
Definition tm_type.c:638
void Typemaker2_Type_SetDescription(TYPEMAKER2_TYPE *ty, const char *s)
Definition tm_type.c:158
int Typemaker2_Type_GetUsePrivateConstructor(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:515
TYPEMAKER2_CODE * Typemaker2_Type_FindCodeForMember(const TYPEMAKER2_TYPE *ty, const TYPEMAKER2_MEMBER *tm, const char *id)
Definition tm_type.c:1409
void Typemaker2_Type_SetNonVolatileMemberCount(TYPEMAKER2_TYPE *ty, int i)
Definition tm_type.c:782
TYPEMAKER2_TYPE * Typemaker2_Type_new()
Definition tm_type.c:32
int Typemaker2_Type_readXml(TYPEMAKER2_TYPE *ty, GWEN_XMLNODE *node, const char *wantedLang)
Definition tm_type.c:875
uint32_t Typemaker2_Type_GetDupFlags(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:427
TYPEMAKER2_SIGNAL_LIST * Typemaker2_Type_GetSignals(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:746
void Typemaker2_Type_SetFieldCountId(TYPEMAKER2_TYPE *ty, const char *s)
Definition tm_type.c:800
struct GWEN__XMLNODE GWEN_XMLNODE
Definition xml.h:156