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

Method GenerateServiceCpp

codegen/service_code_render.cpp:86–130  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

84}
85
86void ServiceCodeRender::GenerateServiceCpp(SyntaxTree *stree, FILE *write) {
87 char file_name[128]{'\0'};
88 name_render_.GetServiceFileName(stree->GetName(), file_name, sizeof(file_name));
89
90 string buffer;
91 name_render_.GetCopyright("phxrpc_pb2service", stree->GetProtoFile(), &buffer);
92
93 fprintf(write, "/* %s.cpp\n", file_name);
94 fprintf(write, "%s", buffer.c_str());
95 fprintf(write, "*/\n");
96 fprintf(write, "\n");
97
98 fprintf(write, "#include \"%s.h\"\n", file_name);
99 fprintf(write, "\n");
100
101 name_render_.GetMessageFileName(stree->GetProtoFile(), file_name, sizeof(file_name));
102 fprintf(write, "#include \"%s.h\"\n", file_name);
103 fprintf(write, "#include \"phxrpc/file.h\"\n");
104
105 fprintf(write, "\n");
106 fprintf(write, "\n");
107
108 char service_name[128]{'\0'};
109 name_render_.GetServiceClassName(stree->GetName(), service_name, sizeof(service_name));
110
111 fprintf(write, "%s::%s() {\n", service_name, service_name);
112 fprintf(write, "}\n");
113 fprintf(write, "\n");
114
115 fprintf(write, "%s::~%s() {\n", service_name, service_name);
116 fprintf(write, "}\n");
117 fprintf(write, "\n");
118
119 SyntaxFuncVector *flist{stree->GetFuncList()};
120 auto fit(flist->cbegin());
121 for (; flist->cend() != fit; ++fit) {
122 string buffer;
123 GetServiceFuncDeclaration(stree, &(*fit), 0, 0, 0, &buffer);
124 fprintf(write, "%s {\n", buffer.c_str());
125 fprintf(write, " phxrpc::log(LOG_ERR, \"ERROR: %s unimplemented\");\n", fit->GetName());
126 fprintf(write, " return -1;\n");
127 fprintf(write, "}\n");
128 fprintf(write, "\n");
129 }
130}
131
132void ServiceCodeRender::GenerateServiceImplHpp(SyntaxTree *stree, FILE *write, const bool is_uthread_mode) {
133 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