MCPcopy Create free account
hub / github.com/Tencent/phxrpc / GenerateClientHpp

Method GenerateClientHpp

codegen/client_code_render.cpp:204–269  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

202}
203
204void ClientCodeRender::GenerateClientHpp(SyntaxTree *stree, FILE *write, const bool is_uthread_mode) {
205 char file_name[128]{'\0'};
206 name_render_.GetClientFileName(stree->GetName(), file_name, sizeof(file_name));
207
208 string buffer;
209 name_render_.GetCopyright("phxrpc_pb2client", stree->GetProtoFile(), &buffer, false);
210
211 fprintf(write, "/* %s.h\n", file_name);
212 fprintf(write, "%s", buffer.c_str());
213 fprintf(write, "*/\n");
214 fprintf(write, "\n");
215
216 fprintf(write, "#pragma once\n");
217
218 fprintf(write, "\n");
219
220 string declarations;
221 {
222 SyntaxFuncVector *flist{stree->GetFuncList()};
223 auto fit(flist->cbegin());
224 for (; flist->cend() != fit; ++fit) {
225 string buffer;
226 GetClienfuncDeclaration(stree, &(*fit), 1, &buffer, is_uthread_mode);
227 declarations.append(" ").append(buffer).append(";\n");
228
229 if (0 == strcmp(fit->GetName(), "PHXEcho")) {
230 SyntaxFunc echo_func = *fit;
231 echo_func.SetName("PHXBatchEcho");
232 string buffer;
233 GetClienfuncDeclaration(stree, &echo_func, 1, &buffer, is_uthread_mode);
234 declarations.append(" ").append(buffer).append(";\n");
235 }
236 }
237 }
238
239 char client_class[128]{'\0'}, message_file[128]{'\0'};
240 char client_class_lower[128]{'\0'};
241 name_render_.GetClientClassName(stree->GetName(), client_class, sizeof(client_class));
242 name_render_.GetClientClassNameLower(stree->GetName(), client_class_lower, sizeof(client_class_lower));
243 name_render_.GetMessageFileName(stree->GetProtoFile(), message_file, sizeof(message_file));
244
245 string client_class_str(client_class);
246 string client_class_lower_str(client_class_lower);
247 if (is_uthread_mode) {
248 client_class_str += "UThread";
249 client_class_lower_str += "uthread";
250 }
251
252 string content;
253 if (!is_uthread_mode) {
254 content = PHXRPC_CLIENT_HPP_TEMPLATE;
255 } else {
256 content = PHXRPC_UTHREAD_CLIENT_HPP_TEMPLATE;
257 }
258
259 StrTrim(&content);
260 StrReplaceAll(&content, "$MessageFile$", message_file);
261 StrReplaceAll(&content, "$ClientClass$", client_class_str.c_str());

Callers 1

Proto2ClientFunction · 0.80

Calls 11

StrTrimFunction · 0.85
StrReplaceAllFunction · 0.85
GetClientFileNameMethod · 0.80
GetNameMethod · 0.80
GetCopyrightMethod · 0.80
GetProtoFileMethod · 0.80
GetFuncListMethod · 0.80
SetNameMethod · 0.80
GetClientClassNameMethod · 0.80
GetMessageFileNameMethod · 0.80

Tested by

no test coverage detected