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

Method GenerateStubCpp

codegen/client_code_render.cpp:133–184  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

131}
132
133void ClientCodeRender::GenerateStubCpp(SyntaxTree *stree, FILE *write) {
134 char file_name[128]{'\0'};
135 name_render_.GetStubFileName(stree->GetName(), file_name, sizeof(file_name));
136
137 string buffer;
138 name_render_.GetCopyright("phxrpc_pb2client", stree->GetProtoFile(), &buffer);
139
140 fprintf(write, "/* %s.cpp\n", file_name);
141 fprintf(write, "%s", buffer.c_str());
142 fprintf(write, "*/\n");
143 fprintf(write, "\n");
144
145 fprintf(write, "#include \"%s.h\"\n", file_name);
146 fprintf(write, "\n");
147
148 fprintf(write, "#include \"phxrpc/rpc.h\"\n");
149 fprintf(write, "#include \"phxrpc/network.h\"\n");
150 fprintf(write, "\n");
151
152 name_render_.GetMessageFileName(stree->GetProtoFile(), file_name, sizeof(file_name));
153 fprintf(write, "#include \"%s.h\"\n", file_name);
154 fprintf(write, "\n");
155 fprintf(write, "\n");
156
157 char class_name[128]{'\0'};
158 name_render_.GetStubClassName(stree->GetName(), class_name, sizeof(class_name));
159
160 {
161 fprintf(write, "%s::%s(phxrpc::BaseTcpStream &socket, phxrpc::ClientMonitor &client_monitor)\n",
162 class_name, class_name);
163
164 fprintf(write, " : socket_(socket), client_monitor_(client_monitor), keep_alive_(false) {\n");
165 fprintf(write, "}\n");
166 fprintf(write, "\n");
167
168 fprintf(write, "%s::~%s() {\n", class_name, class_name);
169 fprintf(write, "}\n");
170 fprintf(write, "\n");
171
172 fprintf(write, "void %s::SetKeepAlive(const bool keep_alive) {\n", class_name);
173 fprintf(write, " keep_alive_ = keep_alive;\n");
174 fprintf(write, "}\n");
175 fprintf(write, "\n");
176
177 SyntaxFuncVector *flist{stree->GetFuncList()};
178 auto fit(flist->cbegin());
179 for (; flist->cend() != fit; ++fit) {
180 GenerateStubFunc(stree, &(*fit), write);
181 }
182
183 }
184}
185
186void ClientCodeRender::GenerateStubFunc(const SyntaxTree *const stree, const SyntaxFunc *const func,
187 FILE *write) {

Callers 1

Proto2ClientFunction · 0.80

Calls 7

GetStubFileNameMethod · 0.80
GetNameMethod · 0.80
GetCopyrightMethod · 0.80
GetProtoFileMethod · 0.80
GetMessageFileNameMethod · 0.80
GetStubClassNameMethod · 0.80
GetFuncListMethod · 0.80

Tested by

no test coverage detected