@@ -31,13 +31,17 @@ static const char *const kIdentifierChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHI
31
31
32
32
// Templates strings converted from text files by txt_to_c.py.
33
33
extern const char *const kCCommonHeader ;
34
- extern const char *const kCInterfaceHeader ;
34
+ extern const char *const kCppInterfaceHeader ;
35
+ extern const char *const kCppClientHeader ;
36
+ extern const char *const kCppClientSource ;
37
+ extern const char *const kCppServerHeader ;
38
+ extern const char *const kCppServerSource ;
39
+ extern const char *const kCppCoders ;
40
+ extern const char *const kCppCommonFunctions ;
35
41
extern const char *const kCClientHeader ;
36
42
extern const char *const kCClientSource ;
37
43
extern const char *const kCServerHeader ;
38
44
extern const char *const kCServerSource ;
39
- extern const char *const kCCoders ;
40
- extern const char *const kCCommonFunctions ;
41
45
extern const char *const kCCrc ;
42
46
43
47
// number which makes list temporary variables unique.
@@ -48,7 +52,6 @@ static uint8_t listCounter = 0;
48
52
// //////////////////////////////////////////////////////////////////////////////
49
53
CGenerator::CGenerator (InterfaceDefinition *def)
50
54
: Generator(def, kC )
51
- , m_generateC(true )
52
55
{
53
56
/* Set copyright rules. */
54
57
if (m_def->hasProgramSymbol ())
@@ -71,78 +74,114 @@ CGenerator::CGenerator(InterfaceDefinition *def)
71
74
initCReservedWords ();
72
75
}
73
76
74
- void CGenerator::generateCpp (void )
75
- {
76
- m_generateC=false ;
77
- this ->generate ();
78
- }
79
-
80
77
void CGenerator::generateOutputFiles (const string &fileName)
81
78
{
82
- generateCommonHeaderFiles (fileName);
79
+ generateCommonCHeaderFiles (fileName);
80
+
81
+ generateInterfaceCppHeaderFile (fileName);
83
82
84
- generateInterfaceHeaderFile (fileName);
83
+ generateClientCppHeaderFile (fileName);
84
+ generateClientCppSourceFile (fileName);
85
85
86
- generateClientHeaderFile (fileName);
87
- generateClientSourceFile (fileName);
86
+ generateServerCppHeaderFile (fileName);
87
+ generateServerCppSourceFile (fileName);
88
88
89
- generateServerHeaderFile (fileName);
90
- generateServerSourceFile (fileName);
89
+ generateClientCHeaderFile (fileName);
90
+ generateClientCSourceFile (fileName);
91
+
92
+ generateServerCHeaderFile (fileName);
93
+ generateServerCSourceFile (fileName);
91
94
}
92
95
93
- void CGenerator::generateCommonHeaderFiles (string fileName)
96
+ void CGenerator::generateCommonCHeaderFiles (string fileName)
94
97
{
95
98
fileName += " _common.h" ;
96
- m_templateData[" commonGuardMacro " ] = generateIncludeGuardName (fileName);
97
- m_templateData[" commonHeaderName " ] = fileName;
99
+ m_templateData[" commonCGuardMacro " ] = generateIncludeGuardName (fileName);
100
+ m_templateData[" commonCHeaderName " ] = fileName;
98
101
generateOutputFile (fileName , " c_common_header" , m_templateData, kCCommonHeader );
99
102
}
100
103
101
- void CGenerator::generateInterfaceHeaderFile (string fileName)
104
+ void CGenerator::generateInterfaceCppHeaderFile (string fileName)
102
105
{
103
- fileName += " _interface.h " ;
104
- m_templateData[" interfaceGuardMacro " ] = generateIncludeGuardName (fileName);
105
- m_templateData[" interfaceHeaderName " ] = fileName;
106
- generateOutputFile (fileName, " c_interface_header " , m_templateData, kCInterfaceHeader );
106
+ fileName += " _interface.hpp " ;
107
+ m_templateData[" interfaceCppGuardMacro " ] = generateIncludeGuardName (fileName);
108
+ m_templateData[" interfaceCppHeaderName " ] = fileName;
109
+ generateOutputFile (fileName, " cpp_interface_header " , m_templateData, kCppInterfaceHeader );
107
110
}
108
111
109
- void CGenerator::generateClientHeaderFile (string fileName)
112
+ void CGenerator::generateClientCppHeaderFile (string fileName)
110
113
{
111
- fileName += " _client.h " ;
112
- m_templateData[" clientGuardMacro " ] = generateIncludeGuardName (fileName);
113
- m_templateData[" clientHeaderName " ] = fileName;
114
- generateOutputFile (fileName, " c_client_header " , m_templateData, kCClientHeader );
114
+ fileName += " _client.hpp " ;
115
+ m_templateData[" clientCppGuardMacro " ] = generateIncludeGuardName (fileName);
116
+ m_templateData[" clientCppHeaderName " ] = fileName;
117
+ generateOutputFile (fileName, " cpp_client_header " , m_templateData, kCppClientHeader );
115
118
}
116
119
117
- void CGenerator::generateClientSourceFile (string fileName)
120
+ void CGenerator::generateClientCppSourceFile (string fileName)
118
121
{
119
- m_templateData[" source" ] = " client" ;
120
122
fileName += " _client.cpp" ;
121
- m_templateData[" clientSourceName " ] = fileName;
123
+ m_templateData[" clientCppSourceName " ] = fileName;
122
124
123
125
// TODO: temporary workaround for tests
124
126
m_templateData[" unitTest" ] = (fileName.compare (" test_unit_test_common_client.cpp" ) == 0 ? false : true );
125
127
126
- generateOutputFile (fileName, " c_client_source " , m_templateData, kCClientSource );
128
+ generateOutputFile (fileName, " cpp_client_source " , m_templateData, kCppClientSource );
127
129
}
128
130
129
- void CGenerator::generateServerHeaderFile (string fileName)
131
+ void CGenerator::generateServerCppHeaderFile (string fileName)
130
132
{
131
- fileName += " _server.h " ;
132
- m_templateData[" serverGuardMacro " ] = generateIncludeGuardName (fileName);
133
- m_templateData[" serverHeaderName " ] = fileName;
134
- generateOutputFile (fileName, " c_server_header " , m_templateData, kCServerHeader );
133
+ fileName += " _server.hpp " ;
134
+ m_templateData[" serverCppGuardMacro " ] = generateIncludeGuardName (fileName);
135
+ m_templateData[" serverCppHeaderName " ] = fileName;
136
+ generateOutputFile (fileName, " cpp_server_header " , m_templateData, kCppServerHeader );
135
137
}
136
138
137
- void CGenerator::generateServerSourceFile (string fileName)
139
+ void CGenerator::generateServerCppSourceFile (string fileName)
138
140
{
139
- m_templateData[" source" ] = " server" ;
140
141
fileName += " _server.cpp" ;
141
- m_templateData[" serverSourceName " ] = fileName;
142
+ m_templateData[" serverCppSourceName " ] = fileName;
142
143
143
144
// TODO: temporary workaround for tests
144
145
m_templateData[" unitTest" ] = (fileName.compare (" test_unit_test_common_server.cpp" ) == 0 ? false : true );
145
146
147
+ generateOutputFile (fileName, " cpp_server_source" , m_templateData, kCppServerSource );
148
+ }
149
+
150
+ void CGenerator::generateClientCHeaderFile (string fileName)
151
+ {
152
+ fileName =" c_" +fileName+ " _client.h" ;
153
+ m_templateData[" clientCGuardMacro" ] = generateIncludeGuardName (fileName);
154
+ m_templateData[" clientCHeaderName" ] = fileName;
155
+ generateOutputFile (fileName, " c_client_header" , m_templateData, kCClientHeader );
156
+ }
157
+
158
+ void CGenerator::generateClientCSourceFile (string fileName)
159
+ {
160
+ fileName =" c_" +fileName+ " _client.cpp" ;
161
+ m_templateData[" clientCSourceName" ] = fileName;
162
+
163
+ // TODO: temporary workaround for tests
164
+ m_templateData[" unitTest" ] = (fileName.compare (" c_test_unit_test_common_client.cpp" ) == 0 ? false : true );
165
+
166
+ generateOutputFile (fileName, " c_client_source" , m_templateData, kCClientSource );
167
+ }
168
+
169
+ void CGenerator::generateServerCHeaderFile (string fileName)
170
+ {
171
+ fileName =" c_" +fileName+ " _server.h" ;
172
+ m_templateData[" serverCGuardMacro" ] = generateIncludeGuardName (fileName);
173
+ m_templateData[" serverCHeaderName" ] = fileName;
174
+ generateOutputFile (fileName, " c_server_header" , m_templateData, kCServerHeader );
175
+ }
176
+
177
+ void CGenerator::generateServerCSourceFile (string fileName)
178
+ {
179
+ fileName =" c_" +fileName+ " _server.cpp" ;
180
+ m_templateData[" serverCSourceName" ] = fileName;
181
+
182
+ // TODO: temporary workaround for tests
183
+ m_templateData[" unitTest" ] = (fileName.compare (" c_test_unit_test_common_server.cpp" ) == 0 ? false : true );
184
+
146
185
generateOutputFile (fileName, " c_server_source" , m_templateData, kCServerSource );
147
186
}
148
187
@@ -155,12 +194,12 @@ void CGenerator::generateCrcFile()
155
194
156
195
void CGenerator::parseSubtemplates ()
157
196
{
158
- string templateName = " c_coders " ;
197
+ string templateName = " cpp_coders " ;
159
198
try
160
199
{
161
- parse (kCCoders , m_templateData);
162
- templateName = " c_common_functions " ;
163
- parse (kCCommonFunctions , m_templateData);
200
+ parse (kCppCoders , m_templateData);
201
+ templateName = " cpp_common_functions " ;
202
+ parse (kCppCommonFunctions , m_templateData);
164
203
}
165
204
catch (TemplateException &e)
166
205
{
@@ -1918,8 +1957,9 @@ string CGenerator::getFunctionServerCall(Function *fn, FunctionType *functionTyp
1918
1957
string proto = " " ;
1919
1958
if (!fn->getReturnType ()->isVoid () && prefix.length ()>0 )
1920
1959
{
1921
- proto += " result = " +prefix ;
1960
+ proto += " result = " ;
1922
1961
}
1962
+ proto += prefix;
1923
1963
proto += getOutputName (fn);
1924
1964
proto += " (" ;
1925
1965
0 commit comments