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

Method GenerateServerMainCpp

codegen/server_code_render.cpp:125–167  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

123}
124
125void ServerCodeRender::GenerateServerMainCpp(SyntaxTree *stree, FILE *write, const bool is_uthread_mode) {
126 char svrfile[128]{'\0'};
127 name_render_.GetServerMainFileName(stree->GetName(), svrfile, sizeof(svrfile));
128
129 string buffer;
130 name_render_.GetCopyright("phxrpc_pb2server", stree->GetProtoFile(), &buffer, false);
131
132 fprintf(write, "/* %s.cpp\n", svrfile);
133 fprintf(write, "%s", buffer.c_str());
134 fprintf(write, "*/\n");
135 fprintf(write, "\n");
136
137 char dispatcher_class[128]{'\0'}, dispatcher_file[128]{'\0'};
138 char service_impl_class[128]{'\0'}, service_impl_file[128]{'\0'};
139 char server_config_class[128]{'\0'}, server_config_file[128]{'\0'};
140
141 name_render_.GetDispatcherClassName(stree->GetName(), dispatcher_class, sizeof(dispatcher_class));
142 name_render_.GetDispatcherFileName(stree->GetName(), dispatcher_file, sizeof(dispatcher_file));
143 name_render_.GetServiceImplClassName(stree->GetName(), service_impl_class, sizeof(service_impl_class));
144 name_render_.GetServiceImplFileName(stree->GetName(), service_impl_file, sizeof(service_impl_file));
145 name_render_.GetServerConfigClassName(stree->GetName(), server_config_class, sizeof(server_config_class));
146 name_render_.GetServerConfigFileName(stree->GetName(), server_config_file, sizeof(server_config_file));
147
148 string content;
149 if (!is_uthread_mode) {
150 content = PHXRPC_EPOLL_SERVER_MAIN_TEMPLATE;
151 } else {
152 content = PHXRPC_EPOLL_UTHREAD_SERVER_MAIN_TEMPLATE;
153 }
154
155 StrTrim(&content);
156 StrReplaceAll(&content, "$DispatcherFile$", dispatcher_file);
157 StrReplaceAll(&content, "$DispatcherClass$", dispatcher_class);
158 StrReplaceAll(&content, "$ServiceImplFile$", service_impl_file);
159 StrReplaceAll(&content, "$ServiceImplClass$", service_impl_class);
160 StrReplaceAll(&content, "$ServerConfigFile$", server_config_file);
161 StrReplaceAll(&content, "$ServerConfigClass$", server_config_class);
162
163 fprintf(write, "%s", content.c_str());
164
165 fprintf(write, "\n");
166 fprintf(write, "\n");
167}
168
169void ServerCodeRender::GenerateServerEtc(SyntaxTree *stree, FILE *write, const bool is_uthread_mode) {
170 char etc_file[128]{'\0'};

Callers 1

Proto2ServerFunction · 0.80

Calls 12

StrTrimFunction · 0.85
StrReplaceAllFunction · 0.85
GetServerMainFileNameMethod · 0.80
GetNameMethod · 0.80
GetCopyrightMethod · 0.80
GetProtoFileMethod · 0.80
GetDispatcherFileNameMethod · 0.80

Tested by

no test coverage detected