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

Method GenerateServiceHpp

codegen/service_code_render.cpp:43–84  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

41}
42
43void ServiceCodeRender::GenerateServiceHpp(SyntaxTree *stree, FILE *write) {
44 char file_name[128]{'\0'};
45 name_render_.GetServiceFileName(stree->GetName(), file_name, sizeof(file_name));
46
47 string buffer;
48 name_render_.GetCopyright("phxrpc_pb2service", stree->GetProtoFile(), &buffer);
49
50 fprintf(write, "/* %s.h\n", file_name);
51 fprintf(write, "%s", buffer.c_str());
52 fprintf(write, "*/\n");
53 fprintf(write, "\n");
54
55 fprintf(write, "#pragma once\n");
56 fprintf(write, "\n");
57
58 name_render_.GetMessageFileName(stree->GetProtoFile(), file_name, sizeof(file_name));
59 fprintf(write, "#include \"%s.h\"\n", file_name);
60
61 fprintf(write, "\n");
62 fprintf(write, "\n");
63
64 char service_name[128]{'\0'};
65 name_render_.GetServiceClassName(stree->GetName(), service_name, sizeof(service_name));
66
67 fprintf(write, "class %s {\n", service_name);
68 fprintf(write, " public:\n");
69 fprintf(write, " %s();\n", service_name);
70 fprintf(write, " virtual ~%s();\n", service_name);
71 fprintf(write, "\n");
72
73 SyntaxFuncVector *flist{stree->GetFuncList()};
74 auto fit(flist->cbegin());
75 for (; flist->cend() != fit; ++fit) {
76 string buffer;
77 GetServiceFuncDeclaration(stree, &(*fit), 1, 0, 1, &buffer);
78 fprintf(write, " virtual %s;\n", buffer.c_str());
79 }
80
81 fprintf(write, "};\n");
82
83 fprintf(write, "\n");
84}
85
86void ServiceCodeRender::GenerateServiceCpp(SyntaxTree *stree, FILE *write) {
87 char file_name[128]{'\0'};

Callers 1

Proto2ServiceFunction · 0.80

Calls 7

GetServiceFileNameMethod · 0.80
GetNameMethod · 0.80
GetCopyrightMethod · 0.80
GetProtoFileMethod · 0.80
GetMessageFileNameMethod · 0.80
GetServiceClassNameMethod · 0.80
GetFuncListMethod · 0.80

Tested by

no test coverage detected