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

Method GenerateToolCpp

codegen/tool_code_render.cpp:120–167  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

118}
119
120void ToolCodeRender::GenerateToolCpp(SyntaxTree *stree, FILE *write) {
121 char file_name[128]{'\0'};
122 name_render_.GetToolFileName(stree->GetName(), file_name, sizeof(file_name));
123
124 string buffer;
125 name_render_.GetCopyright("phxrpc_pb2tool", stree->GetProtoFile(), &buffer);
126
127 fprintf(write, "/* %s.cpp\n", file_name);
128 fprintf(write, "%s", buffer.c_str());
129 fprintf(write, "*/\n");
130 fprintf(write, "\n");
131
132 fprintf(write, "#include \"phxrpc/file.h\"\n\n");
133 fprintf(write, "#include \"%s.h\"\n", file_name);
134
135 name_render_.GetClientFileName(stree->GetName(), file_name, sizeof(file_name));
136 fprintf(write, "#include \"%s.h\"\n", file_name);
137
138 fprintf(write, "\n");
139 fprintf(write, "\n");
140 fprintf(write, "using namespace phxrpc;\n");
141 fprintf(write, "\n");
142 fprintf(write, "\n");
143
144 char class_name[128]{'\0'};
145 name_render_.GetToolClassName(stree->GetName(), class_name, sizeof(class_name));
146
147 fprintf(write, "%s::%s() {\n", class_name, class_name);
148 fprintf(write, "}\n");
149 fprintf(write, "\n");
150
151 fprintf(write, "%s::~%s() {\n", class_name, class_name);
152 fprintf(write, "}\n");
153 fprintf(write, "\n");
154
155 char client_class[128]{'\0'};
156 name_render_.GetClientClassName(stree->GetName(), client_class, sizeof(client_class));
157
158 SyntaxFuncVector *flist{stree->GetFuncList()};
159 auto fit(flist->cbegin());
160 for (; flist->cend() != fit; ++fit) {
161 fprintf(write, "int %s::%s(phxrpc::OptMap &/* opt_map */) {\n", class_name, fit->GetName());
162 fprintf(write, " printf(\"\\n *** %s unimplement ***\\n\");\n\n", fit->GetName());
163 fprintf(write, " return -1;\n");
164 fprintf(write, "}\n");
165 fprintf(write, "\n");
166 }
167}
168
169void ToolCodeRender::GenerateToolImplHpp(SyntaxTree *stree, FILE *write) {
170 char file_name[128]{'\0'};

Callers 1

Proto2ToolFunction · 0.80

Calls 8

GetToolFileNameMethod · 0.80
GetNameMethod · 0.80
GetCopyrightMethod · 0.80
GetProtoFileMethod · 0.80
GetClientFileNameMethod · 0.80
GetToolClassNameMethod · 0.80
GetClientClassNameMethod · 0.80
GetFuncListMethod · 0.80

Tested by

no test coverage detected