gwenhywfar  4.99.8beta
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 
25 
26 
27 #include "tm_typemanager.h"
28 #include "tm_type.h"
29 #include "tm_member.h"
30 
31 
33 
34 
37 
38 
44 
45 
48 
53 void Typemaker2_Builder_AddCode(TYPEMAKER2_BUILDER *tb, const char *s);
54 
57 
60 
63 
66 
69 
72 
75 
77 
79 
80 
83 
87 
88 
89 
90 
92  TYPEMAKER2_TYPE *ty,
94  const char *src,
95  const char *dst);
96 
97 int Typemaker2_Builder_ReplaceVars(const char *s,
98  GWEN_DB_NODE *db,
99  GWEN_BUFFER *dbuf);
100 
101 
102 /* see INVOKE_FN macro in tm_builder.c */
104  TYPEMAKER2_TYPE *ty,
105  TYPEMAKER2_MEMBER *tm,
106  const char *src,
107  const char *dst,
108  GWEN_BUFFER *dbuf);
109 
111  TYPEMAKER2_TYPE *ty,
112  TYPEMAKER2_MEMBER *tm,
113  const char *src,
114  const char *dst,
115  GWEN_BUFFER *dbuf);
116 
118  TYPEMAKER2_TYPE *ty,
119  TYPEMAKER2_MEMBER *tm,
120  const char *src,
121  const char *dst,
122  GWEN_BUFFER *dbuf);
123 
125  TYPEMAKER2_TYPE *ty,
126  TYPEMAKER2_MEMBER *tm,
127  const char *src,
128  const char *dst,
129  GWEN_BUFFER *dbuf);
130 
132  TYPEMAKER2_TYPE *ty,
133  TYPEMAKER2_MEMBER *tm,
134  const char *src,
135  const char *dst,
136  GWEN_BUFFER *dbuf);
137 
139  TYPEMAKER2_TYPE *ty,
140  TYPEMAKER2_MEMBER *tm,
141  const char *src,
142  const char *dst,
143  GWEN_BUFFER *dbuf);
144 
146  TYPEMAKER2_TYPE *ty,
147  TYPEMAKER2_MEMBER *tm,
148  const char *src,
149  const char *dst,
150  GWEN_BUFFER *dbuf);
151 
153  TYPEMAKER2_TYPE *ty,
154  TYPEMAKER2_MEMBER *tm,
155  const char *src,
156  const char *dst,
157  GWEN_BUFFER *dbuf);
158 
160  TYPEMAKER2_TYPE *ty,
161  TYPEMAKER2_MEMBER *tm,
162  const char *src,
163  const char *dst,
164  GWEN_BUFFER *dbuf);
165 
167  TYPEMAKER2_TYPE *ty,
168  TYPEMAKER2_MEMBER *tm,
169  const char *src,
170  const char *dst,
171  GWEN_BUFFER *dbuf);
172 
174  TYPEMAKER2_TYPE *ty,
175  TYPEMAKER2_MEMBER *tm,
176  const char *src,
177  const char *dst,
178  GWEN_BUFFER *dbuf);
179 
181  TYPEMAKER2_TYPE *ty,
182  TYPEMAKER2_MEMBER *tm,
183  const char *src,
184  const char *dst,
185  GWEN_BUFFER *dbuf);
186 
187 
188 #endif
189 
190 
191 
192 
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:30
void Typemaker2_Builder_SetTypeManager(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPEMANAGER *tm)
Definition: tm_builder.c:110
TYPEMAKER2_TYPEMANAGER * Typemaker2_Builder_GetTypeManager(const TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:103
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:191
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:255
void Typemaker2_Builder_SetFileNameLibrary(TYPEMAKER2_BUILDER *tb, const char *s)
Definition: tm_builder.c:175
int Typemaker2_Builder_WriteFiles(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, int defsOnly)
Definition: tm_builder.c:1163
#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:82
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:96
const char * Typemaker2_Builder_GetFileNameLibrary(const TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:168
void Typemaker2_Builder_AddLibraryDeclaration(TYPEMAKER2_BUILDER *tb, const char *s)
Definition: tm_builder.c:124
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:281
void Typemaker2_Builder_AddPrivateDeclaration(TYPEMAKER2_BUILDER *tb, const char *s)
Definition: tm_builder.c:138
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:425
const char * Typemaker2_Builder_GetFileNameCode(const TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:216
void Typemaker2_Builder_AddPublicDeclaration(TYPEMAKER2_BUILDER *tb, const char *s)
Definition: tm_builder.c:117
void Typemaker2_Builder_SetFileNameCode(TYPEMAKER2_BUILDER *tb, const char *s)
Definition: tm_builder.c:223
void Typemaker2_Builder_AddProtectedDeclaration(TYPEMAKER2_BUILDER *tb, const char *s)
Definition: tm_builder.c:131
int Typemaker2_Builder_Build(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
Definition: tm_builder.c:271
void Typemaker2_Builder_free(TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:47
const char * Typemaker2_Builder_GetFileNamePublic(const TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:152
const char * Typemaker2_Builder_GetSourceFileName(const TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:232
void Typemaker2_Builder_SetFileNamePrivate(TYPEMAKER2_BUILDER *tb, const char *s)
Definition: tm_builder.c:207
int(* TYPEMAKER2_BUILDER_BUILD_FN)(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
Definition: tm_builder.h:32
struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST
Definition: stringlist.h:54
GWEN_STRINGLIST * Typemaker2_Builder_GetPrivateDeclarations(const TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:89
int Typemaker2_Builder_MakeTypeList2(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
struct TYPEMAKER2_BUILDER TYPEMAKER2_BUILDER
Definition: tm_builder.h:23
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
Definition: buffer.h:41
GWEN_STRINGLIST * Typemaker2_Builder_GetLibraryDeclarations(const TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:75
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:159
struct TYPEMAKER2_TYPE TYPEMAKER2_TYPE
Definition: tm_type.h:21
const char * Typemaker2_Builder_GetFileNameProtected(const TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:184
GWEN_STRINGLIST * Typemaker2_Builder_GetPublicDeclarations(const TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:68
const char * Typemaker2_Builder_GetFileNamePrivate(const TYPEMAKER2_BUILDER *tb)
Definition: tm_builder.c:200
struct TYPEMAKER2_TYPEMANAGER TYPEMAKER2_TYPEMANAGER
void Typemaker2_Builder_AddCode(TYPEMAKER2_BUILDER *tb, const char *s)
Definition: tm_builder.c:145
void Typemaker2_Builder_SetBuildFn(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_BUILDER_BUILD_FN fn)
Definition: tm_builder.c:264
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:239
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)