| 84 | } |
| 85 | |
| 86 | void ServiceCodeRender::GenerateServiceCpp(SyntaxTree *stree, FILE *write) { |
| 87 | char file_name[128]{'\0'}; |
| 88 | name_render_.GetServiceFileName(stree->GetName(), file_name, sizeof(file_name)); |
| 89 | |
| 90 | string buffer; |
| 91 | name_render_.GetCopyright("phxrpc_pb2service", stree->GetProtoFile(), &buffer); |
| 92 | |
| 93 | fprintf(write, "/* %s.cpp\n", file_name); |
| 94 | fprintf(write, "%s", buffer.c_str()); |
| 95 | fprintf(write, "*/\n"); |
| 96 | fprintf(write, "\n"); |
| 97 | |
| 98 | fprintf(write, "#include \"%s.h\"\n", file_name); |
| 99 | fprintf(write, "\n"); |
| 100 | |
| 101 | name_render_.GetMessageFileName(stree->GetProtoFile(), file_name, sizeof(file_name)); |
| 102 | fprintf(write, "#include \"%s.h\"\n", file_name); |
| 103 | fprintf(write, "#include \"phxrpc/file.h\"\n"); |
| 104 | |
| 105 | fprintf(write, "\n"); |
| 106 | fprintf(write, "\n"); |
| 107 | |
| 108 | char service_name[128]{'\0'}; |
| 109 | name_render_.GetServiceClassName(stree->GetName(), service_name, sizeof(service_name)); |
| 110 | |
| 111 | fprintf(write, "%s::%s() {\n", service_name, service_name); |
| 112 | fprintf(write, "}\n"); |
| 113 | fprintf(write, "\n"); |
| 114 | |
| 115 | fprintf(write, "%s::~%s() {\n", service_name, service_name); |
| 116 | fprintf(write, "}\n"); |
| 117 | fprintf(write, "\n"); |
| 118 | |
| 119 | SyntaxFuncVector *flist{stree->GetFuncList()}; |
| 120 | auto fit(flist->cbegin()); |
| 121 | for (; flist->cend() != fit; ++fit) { |
| 122 | string buffer; |
| 123 | GetServiceFuncDeclaration(stree, &(*fit), 0, 0, 0, &buffer); |
| 124 | fprintf(write, "%s {\n", buffer.c_str()); |
| 125 | fprintf(write, " phxrpc::log(LOG_ERR, \"ERROR: %s unimplemented\");\n", fit->GetName()); |
| 126 | fprintf(write, " return -1;\n"); |
| 127 | fprintf(write, "}\n"); |
| 128 | fprintf(write, "\n"); |
| 129 | } |
| 130 | } |
| 131 | |
| 132 | void ServiceCodeRender::GenerateServiceImplHpp(SyntaxTree *stree, FILE *write, const bool is_uthread_mode) { |
| 133 | char file_name[128]{'\0'}; |
no test coverage detected