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

Method GenerateServerConfigCpp

codegen/server_code_render.cpp:72–123  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

70}
71
72void 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
125void ServerCodeRender::GenerateServerMainCpp(SyntaxTree *stree, FILE *write, const bool is_uthread_mode) {
126 char svrfile[128]{'\0'};

Callers 1

Proto2ServerFunction · 0.80

Calls 14

StrTrimFunction · 0.85
StrReplaceAllFunction · 0.85
GetNameMethod · 0.80
GetCopyrightMethod · 0.80
GetProtoFileMethod · 0.80
GetMessageFileNameMethod · 0.80
GetFuncListMethod · 0.80
GetReqMethod · 0.80
GetRespMethod · 0.80
sizeMethod · 0.80

Tested by

no test coverage detected