| 70 | } |
| 71 | |
| 72 | void ServerCodeRender::GenerateServerConfigCpp(SyntaxTree *stree, FILE *write) { |
| 73 | char file_name[128]{'\0'}; |
| 74 | name_render_.GetServerConfigFileName(stree->GetName(), file_name, sizeof(file_name)); |
| 75 | |
| 76 | string buffer; |
| 77 | name_render_.GetCopyright("phxrpc_pb2server", stree->GetProtoFile(), &buffer, false); |
| 78 | |
| 79 | fprintf(write, "/* %s.cpp\n", file_name); |
| 80 | fprintf(write, "%s", buffer.c_str()); |
| 81 | fprintf(write, "*/\n"); |
| 82 | fprintf(write, "\n"); |
| 83 | |
| 84 | char class_name[128]{'\0'}; |
| 85 | char message_file[128]{'\0'}; |
| 86 | name_render_.GetServerConfigClassName(stree->GetName(), class_name, sizeof(class_name)); |
| 87 | name_render_.GetMessageFileName(stree->GetProtoFile(), message_file, sizeof(message_file)); |
| 88 | |
| 89 | string content = PHXRPC_EPOLL_SERVER_CONFIG_CPP_TEMPLATE; |
| 90 | |
| 91 | string package_name = "\"" + string(stree->GetPackageName()) + "\""; |
| 92 | |
| 93 | { |
| 94 | string message_name; |
| 95 | for (auto itr : *(stree->GetFuncList())) { |
| 96 | if (string(itr.GetReq()->GetType()).find(stree->GetPackageName()) != string::npos) { |
| 97 | message_name = itr.GetReq()->GetType(); |
| 98 | break; |
| 99 | } else if (string(itr.GetResp()->GetType()).find(stree->GetPackageName()) != string::npos) { |
| 100 | message_name = itr.GetResp()->GetType(); |
| 101 | break; |
| 102 | } |
| 103 | } |
| 104 | if (message_name != "") { |
| 105 | int package_name_len = strlen(stree->GetPackageName()); |
| 106 | message_name = message_name.substr(package_name_len + 1, |
| 107 | message_name.size() - package_name_len - 1); |
| 108 | package_name = "\n " + string(stree->GetPackageName()) + "::" + message_name |
| 109 | + "::default_instance().GetDescriptor()->file()->package().c_str()"; |
| 110 | } |
| 111 | } |
| 112 | |
| 113 | StrTrim(&content); |
| 114 | StrReplaceAll(&content, "$MessageFile$", message_file); |
| 115 | StrReplaceAll(&content, "$PackageName$", package_name); |
| 116 | StrReplaceAll(&content, "$ServerConfigClass$", class_name); |
| 117 | StrReplaceAll(&content, "$ServerConfigFile$", file_name); |
| 118 | |
| 119 | fprintf(write, "%s", content.c_str()); |
| 120 | |
| 121 | fprintf(write, "\n"); |
| 122 | fprintf(write, "\n"); |
| 123 | } |
| 124 | |
| 125 | void ServerCodeRender::GenerateServerMainCpp(SyntaxTree *stree, FILE *write, const bool is_uthread_mode) { |
| 126 | char svrfile[128]{'\0'}; |
no test coverage detected