gwenhywfar  5.7.2
tm_builder.h
Go to the documentation of this file.
1 /***************************************************************************
2  begin : Thu Jul 02 2009
3  copyright : (C) 2009 by Martin Preuss
4  email : martin@libchipcard.de
5 
6  ***************************************************************************
7  * Please see toplevel file COPYING for license details *
8  ***************************************************************************/
9 
10 
11 
12 #ifndef TYPEMAKER2_BUILDER_H
13 #define TYPEMAKER2_BUILDER_H
14 
15 
16 #include <gwenhywfar/inherit.h>
17 #include <gwenhywfar/stringlist.h>
18 #include <gwenhywfar/db.h>
19 #include <gwenhywfar/buffer.h>
20 
21 
22 #define TYPEMAKER2_BUILDER_WRITEFILE_FLAGS_WRITE_DEFS 0x0001
23 #define TYPEMAKER2_BUILDER_WRITEFILE_FLAGS_WRITE_TYPE 0x0002
24 
25 
28 
29 
30 #include "tm_typemanager.h"
31 #include "tm_type.h"
32 #include "tm_member.h"
33 
34 
36 
37 
40 
42 
43 
49 
50 
53 
58 void Typemaker2_Builder_AddCode(TYPEMAKER2_BUILDER *tb, const char *s);
59 
62 
65 
68 
71 
74 
77 
80 
82 
84 
85 
87 int Typemaker2_Builder_WriteFiles(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, uint32_t writeFlags);
88 
92 
93 
94 
95 
97  TYPEMAKER2_TYPE *ty,
99  const char *src,
100  const char *dst);
101 
102 int Typemaker2_Builder_ReplaceVars(const char *s,
103  GWEN_DB_NODE *db,
104  GWEN_BUFFER *dbuf);
105 
106 
107 /* see INVOKE_FN macro in tm_builder.c */
109  TYPEMAKER2_TYPE *ty,
110  TYPEMAKER2_MEMBER *tm,
111  const char *src,
112  const char *dst,
113  GWEN_BUFFER *dbuf);
114 
116  TYPEMAKER2_TYPE *ty,
117  TYPEMAKER2_MEMBER *tm,
118  const char *src,
119  const char *dst,
120  GWEN_BUFFER *dbuf);
121 
123  TYPEMAKER2_TYPE *ty,
124  TYPEMAKER2_MEMBER *tm,
125  const char *src,
126  const char *dst,
127  GWEN_BUFFER *dbuf);
128 
130  TYPEMAKER2_TYPE *ty,
131  TYPEMAKER2_MEMBER *tm,
132  const char *src,
133  const char *dst,
134  GWEN_BUFFER *dbuf);
135 
137  TYPEMAKER2_TYPE *ty,
138  TYPEMAKER2_MEMBER *tm,
139  const char *src,
140  const char *dst,
141  GWEN_BUFFER *dbuf);
142 
144  TYPEMAKER2_TYPE *ty,
145  TYPEMAKER2_MEMBER *tm,
146  const char *src,
147  const char *dst,
148  GWEN_BUFFER *dbuf);
149 
151  TYPEMAKER2_TYPE *ty,
152  TYPEMAKER2_MEMBER *tm,
153  const char *src,
154  const char *dst,
155  GWEN_BUFFER *dbuf);
156 
158  TYPEMAKER2_TYPE *ty,
159  TYPEMAKER2_MEMBER *tm,
160  const char *src,
161  const char *dst,
162  GWEN_BUFFER *dbuf);
163 
165  TYPEMAKER2_TYPE *ty,
166  TYPEMAKER2_MEMBER *tm,
167  const char *src,
168  const char *dst,
169  GWEN_BUFFER *dbuf);
170 
172  TYPEMAKER2_TYPE *ty,
173  TYPEMAKER2_MEMBER *tm,
174  const char *src,
175  const char *dst,
176  GWEN_BUFFER *dbuf);
177 
179  TYPEMAKER2_TYPE *ty,
180  TYPEMAKER2_MEMBER *tm,
181  const char *src,
182  const char *dst,
183  GWEN_BUFFER *dbuf);
184 
186  TYPEMAKER2_TYPE *ty,
187  TYPEMAKER2_MEMBER *tm,
188  const char *src,
189  const char *dst,
190  GWEN_BUFFER *dbuf);
191 
192 
193 #endif
194 
195 
196 
197 
int Typemaker2_Builder_Invoke_CompareFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst, GWEN_BUFFER *dbuf)
const char * Typemaker2_Builder_GetTypedefFileName(const TYPEMAKER2_BUILDER *tb)
int Typemaker2_Builder_MakeTypeList1(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
TYPEMAKER2_BUILDER * Typemaker2_Builder_new()
Definition: tm_builder.c:53
void Typemaker2_Builder_SetTypeManager(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPEMANAGER *tm)
Definition: tm_builder.c:141
TYPEMAKER2_TYPEMANAGER * Typemaker2_Builder_GetTypeManager(const TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:133
int Typemaker2_Builder_Invoke_DupFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst, GWEN_BUFFER *dbuf)
void Typemaker2_Builder_SetFileNameProtected(TYPEMAKER2_BUILDER *tb, const char *s)
Definition: tm_builder.c:237
struct GWEN_DB_NODE GWEN_DB_NODE
Definition: db.h:228
void Typemaker2_Builder_SetDestFolderName(TYPEMAKER2_BUILDER *tb, const char *s)
Definition: tm_builder.c:317
void Typemaker2_Builder_SetFileNameLibrary(TYPEMAKER2_BUILDER *tb, const char *s)
Definition: tm_builder.c:217
int(* TYPEMAKER2_BUILDER_BUILD_FN)(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
Definition: tm_builder.h:35
#define GWEN_INHERIT_FUNCTION_DEFS(t)
Definition: inherit.h:147
void Typemaker2_Builder_SetTypedefFileName(TYPEMAKER2_BUILDER *tb, const char *s)
GWEN_STRINGLIST * Typemaker2_Builder_GetProtectedDeclarations(const TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:109
int Typemaker2_Builder_Invoke_ToObjectFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst, GWEN_BUFFER *dbuf)
int Typemaker2_Builder_Invoke_DestructFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst, GWEN_BUFFER *dbuf)
GWEN_STRINGLIST * Typemaker2_Builder_GetCode(const TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:125
const char * Typemaker2_Builder_GetFileNameLibrary(const TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:209
void Typemaker2_Builder_AddLibraryDeclaration(TYPEMAKER2_BUILDER *tb, const char *s)
Definition: tm_builder.c:157
GWEN_DB_NODE * Typemaker2_Builder_CreateDbForCall(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst)
Definition: tm_builder.c:348
void Typemaker2_Builder_AddPrivateDeclaration(TYPEMAKER2_BUILDER *tb, const char *s)
Definition: tm_builder.c:173
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_Builder_ReplaceVars(const char *s, GWEN_DB_NODE *db, GWEN_BUFFER *dbuf)
Definition: tm_builder.c:525
const char * Typemaker2_Builder_GetFileNameCode(const TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:269
void Typemaker2_Builder_AddPublicDeclaration(TYPEMAKER2_BUILDER *tb, const char *s)
Definition: tm_builder.c:149
void Typemaker2_Builder_SetFileNameCode(TYPEMAKER2_BUILDER *tb, const char *s)
Definition: tm_builder.c:277
void Typemaker2_Builder_AddProtectedDeclaration(TYPEMAKER2_BUILDER *tb, const char *s)
Definition: tm_builder.c:165
int Typemaker2_Builder_Build(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
Definition: tm_builder.c:337
void Typemaker2_Builder_free(TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:71
const char * Typemaker2_Builder_GetFileNamePublic(const TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:189
const char * Typemaker2_Builder_GetSourceFileName(const TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:289
void Typemaker2_Builder_SetFileNamePrivate(TYPEMAKER2_BUILDER *tb, const char *s)
Definition: tm_builder.c:257
struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST
Definition: stringlist.h:56
GWEN_STRINGLIST * Typemaker2_Builder_GetPrivateDeclarations(const TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:117
int Typemaker2_Builder_MakeTypeList2(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
struct TYPEMAKER2_BUILDER TYPEMAKER2_BUILDER
Definition: tm_builder.h:26
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
Definition: buffer.h:38
GWEN_STRINGLIST * Typemaker2_Builder_GetLibraryDeclarations(const TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:101
int Typemaker2_Builder_Invoke_FromDbFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst, GWEN_BUFFER *dbuf)
void Typemaker2_Builder_SetFileNamePublic(TYPEMAKER2_BUILDER *tb, const char *s)
Definition: tm_builder.c:197
struct TYPEMAKER2_TYPE TYPEMAKER2_TYPE
Definition: tm_type.h:21
const char * Typemaker2_Builder_GetFileNameProtected(const TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:229
GWEN_STRINGLIST * Typemaker2_Builder_GetPublicDeclarations(const TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:93
const char * Typemaker2_Builder_GetFileNamePrivate(const TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:249
int Typemaker2_Builder_WriteFiles(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, uint32_t writeFlags)
Definition: tm_builder.c:1318
struct TYPEMAKER2_TYPEMANAGER TYPEMAKER2_TYPEMANAGER
void Typemaker2_Builder_AddCode(TYPEMAKER2_BUILDER *tb, const char *s)
Definition: tm_builder.c:181
void Typemaker2_Builder_SetBuildFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_BUILDER_BUILD_FN fn)
Definition: tm_builder.c:329
struct TYPEMAKER2_MEMBER TYPEMAKER2_MEMBER
Definition: tm_member.h:21
int Typemaker2_Builder_MakeTypeTree(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
int Typemaker2_Builder_Invoke_FromObjectFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst, GWEN_BUFFER *dbuf)
int Typemaker2_Builder_Invoke_AssignFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst, GWEN_BUFFER *dbuf)
int Typemaker2_Builder_Invoke_ToXmlFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst, GWEN_BUFFER *dbuf)
void Typemaker2_Builder_SetSourceFileName(TYPEMAKER2_BUILDER *tb, const char *s)
Definition: tm_builder.c:297
int Typemaker2_Builder_PrintFileNames(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
Definition: tm_builder.c:1590
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)
int Typemaker2_Builder_Invoke_ToDbFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst, GWEN_BUFFER *dbuf)