| 131 | } |
| 132 | |
| 133 | void 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 | |
| 186 | void ClientCodeRender::GenerateStubFunc(const SyntaxTree *const stree, const SyntaxFunc *const func, |
| 187 | FILE *write) { |
no test coverage detected