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

Method GenerateStubHpp

codegen/client_code_render.cpp:46–110  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

44}
45
46void ClientCodeRender::GenerateStubHpp(SyntaxTree *stree, FILE *write) {
47 char file_name[128]{'\0'};
48 name_render_.GetStubFileName(stree->GetName(), file_name, sizeof(file_name));
49
50 string buffer;
51 name_render_.GetCopyright("phxrpc_pb2client", stree->GetProtoFile(), &buffer);
52
53 fprintf(write, "/* %s.h\n", file_name);
54 fprintf(write, "%s", buffer.c_str());
55 fprintf(write, "*/\n");
56 fprintf(write, "\n");
57
58 fprintf(write, "#pragma once\n");
59
60 fprintf(write, "\n");
61
62 name_render_.GetMessageFileName(stree->GetProtoFile(), file_name, sizeof(file_name));
63 fprintf(write, "#include \"%s.h\"\n", file_name);
64
65 fprintf(write, "\n");
66 fprintf(write, "\n");
67
68 fprintf(write, "namespace phxrpc {\n");
69 fprintf(write, "\n");
70 fprintf(write, "\n");
71 fprintf(write, "class BaseTcpStream;\n");
72 fprintf(write, "class ClientMonitor;\n");
73 fprintf(write, "\n");
74 fprintf(write, "\n");
75 fprintf(write, "}\n");
76
77 fprintf(write, "\n");
78 fprintf(write, "\n");
79
80 char class_name[128]{'\0'};
81 name_render_.GetStubClassName(stree->GetName(), class_name, sizeof(class_name));
82
83 {
84 fprintf(write, "class %s {\n", class_name);
85 fprintf(write, " public:\n");
86 fprintf(write, " %s(phxrpc::BaseTcpStream &socket, phxrpc::ClientMonitor &client_monitor);\n", class_name);
87 fprintf(write, " virtual ~%s();\n", class_name);
88 fprintf(write, "\n");
89
90 fprintf(write, " void SetKeepAlive(const bool keep_alive);\n\n");
91
92 SyntaxFuncVector *flist{stree->GetFuncList()};
93 auto fit(flist->cbegin());
94 for (; flist->cend() != fit; ++fit) {
95 string buffer;
96 GetStubFuncDeclaration(stree, &(*fit), 1, &buffer);
97 fprintf(write, " %s;\n", buffer.c_str());
98 }
99 fprintf(write, "\n");
100
101 fprintf(write, " private:\n");
102 fprintf(write, " phxrpc::BaseTcpStream &socket_;\n");
103 fprintf(write, " phxrpc::ClientMonitor &client_monitor_;\n");

Callers 1

Proto2ClientFunction · 0.80

Calls 7

GetStubFileNameMethod · 0.80
GetNameMethod · 0.80
GetCopyrightMethod · 0.80
GetProtoFileMethod · 0.80
GetMessageFileNameMethod · 0.80
GetStubClassNameMethod · 0.80
GetFuncListMethod · 0.80

Tested by

no test coverage detected