Lines Matching refs:printer

66 void GenerateImports(grpc_generator::File *file, grpc_generator::Printer *printer,
69 printer->Print("//Generated by gRPC Go plugin\n");
70 printer->Print("//If you make any local changes, they will be lost\n");
71 printer->Print(vars, "//source: $filename$\n\n");
72 printer->Print(vars, "package $Package$\n\n");
74 printer->Print(file->additional_imports().c_str());
75 printer->Print("\n\n");
77 printer->Print("import (\n");
78 printer->Indent();
79 printer->Print(vars, "$context$ \"golang.org/x/net/context\"\n");
80 printer->Print(vars, "$grpc$ \"google.golang.org/grpc\"\n");
81 printer->Outdent();
82 printer->Print(")\n\n");
86 void GenerateServerMethodSignature(const grpc_generator::Method *method, grpc_generator::Printer *printer,
92 printer->Print(vars, "$Method$($context$.Context, *$Request$) (*$Response$, error)");
94 printer->Print(vars, "$Method$(*$Request$, $Service$_$Method$Server) error");
96 printer->Print(vars, "$Method$($Service$_$Method$Server) error");
100 void GenerateServerMethod(const grpc_generator::Method *method, grpc_generator::Printer *printer,
108 printer->Print(vars, "func $Handler$(srv interface{}, ctx $context$.Context,\n\tdec func(interface{}) error, interceptor $grpc$.UnaryServerInterceptor) (interface{}, error) {\n");
109 printer->Indent();
110 printer->Print(vars, "in := new($Request$)\n");
111 printer->Print("if err := dec(in); err != nil { return nil, err }\n");
112 printer->Print(vars, "if interceptor == nil { return srv.($Service$Server).$Method$(ctx, in) }\n");
113 printer->Print(vars, "info := &$grpc$.UnaryServerInfo{\n");
114 printer->Indent();
115 printer->Print("Server: srv,\n");
116 printer->Print(vars, "FullMethod: \"$FullMethodName$\",\n");
117 printer->Outdent();
118 printer->Print("}\n\n");
119 printer->Print(vars, "handler := func(ctx $context$.Context, req interface{}) (interface{}, error) {\n");
120 printer->Indent();
121 printer->Print(vars, "return srv.($Service$Server).$Method$(ctx, req.(* $Request$))\n");
122 printer->Outdent();
123 printer->Print("}\n");
124 printer->Print("return interceptor(ctx, in, info, handler)\n");
125 printer->Outdent();
126 printer->Print("}\n\n");
130 printer->Print(vars, "func $Handler$(srv interface{}, stream $grpc$.ServerStream) error {\n");
131 printer->Indent();
133 printer->Print(vars, "m := new($Request$)\n");
134 printer->Print(vars, "if err := stream.RecvMsg(m); err != nil { return err }\n");
135 printer->Print(vars, "return srv.($Service$Server).$Method$(m, &$StreamType${stream})\n");
137 printer->Print(vars, "return srv.($Service$Server).$Method$(&$StreamType${stream})\n");
139 printer->Outdent();
140 printer->Print("}\n\n");
146 printer->Print(vars, "type $Service$_$Method$Server interface { \n");
147 printer->Indent();
149 printer->Print(vars, "Send(* $Response$) error\n");
152 printer->Print(vars, "Recv() (* $Request$, error)\n");
155 printer->Print(vars, "SendAndClose(* $Response$) error\n");
157 printer->Print(vars, "$grpc$.ServerStream\n");
158 printer->Outdent();
159 printer->Print("}\n\n");
161 printer->Print(vars, "type $StreamType$ struct {\n");
162 printer->Indent();
163 printer->Print(vars, "$grpc$.ServerStream\n");
164 printer->Outdent();
165 printer->Print("}\n\n");
168 printer->Print(vars, "func (x *$StreamType$) Send(m *$Response$) error {\n");
169 printer->Indent();
170 printer->Print("return x.ServerStream.SendMsg(m)\n");
171 printer->Outdent();
172 printer->Print("}\n\n");
175 printer->Print(vars, "func (x *$StreamType$) Recv() (*$Request$, error) {\n");
176 printer->Indent();
177 printer->Print(vars, "m := new($Request$)\n");
178 printer->Print("if err := x.ServerStream.RecvMsg(m); err != nil { return nil, err }\n");
179 printer->Print("return m, nil\n");
180 printer->Outdent();
181 printer->Print("}\n\n");
184 printer->Print(vars, "func (x *$StreamType$) SendAndClose(m *$Response$) error {\n");
185 printer->Indent();
186 printer->Print("return x.ServerStream.SendMsg(m)\n");
187 printer->Outdent();
188 printer->Print("}\n\n");
194 void GenerateClientMethodSignature(const grpc_generator::Method *method, grpc_generator::Printer *printer,
205 printer->Print(vars, "$Method$(ctx $context$.Context$Request$, \n\topts... $grpc$.CallOption) ($Response$, error)");
209 void GenerateClientMethod(const grpc_generator::Method *method, grpc_generator::Printer *printer,
211 printer->Print(vars, "func (c *$ServiceUnexported$Client) ");
212 GenerateClientMethodSignature(method, printer, vars);
213 printer->Print(" {\n");
214 printer->Indent();
220 printer->Print(vars, "out := new($Response$)\n");
221 printer->Print(vars, "err := $grpc$.Invoke(ctx, \"$FullMethodName$\", in, out, c.cc, opts...)\n");
222 printer->Print("if err != nil { return nil, err }\n");
223 printer->Print("return out, nil\n");
224 printer->Outdent();
225 printer->Print("}\n\n");
229 printer->Print(vars, "stream, err := $grpc$.NewClientStream(ctx, &$MethodDesc$, c.cc, \"$FullMethodName$\", opts...)\n");
230 printer->Print("if err != nil { return nil, err }\n");
232 printer->Print(vars, "x := &$StreamType${stream}\n");
234 printer->Print("if err := x.ClientStream.SendMsg(in); err != nil { return nil, err }\n");
235 printer->Print("if err := x.ClientStream.CloseSend(); err != nil { return nil, err }\n");
237 printer->Print("return x,nil\n");
238 printer->Outdent();
239 printer->Print("}\n\n");
246 printer->Print(vars, "type $Service$_$Method$Client interface {\n");
247 printer->Indent();
249 printer->Print(vars, "Send(*$Request$) error\n");
252 printer->Print(vars, "Recv() (*$Response$, error)\n");
255 printer->Print(vars, "CloseAndRecv() (*$Response$, error)\n");
257 printer->Print(vars, "$grpc$.ClientStream\n");
258 printer->Outdent();
259 printer->Print("}\n\n");
262 printer->Print(vars, "type $StreamType$ struct{\n");
263 printer->Indent();
264 printer->Print(vars, "$grpc$.ClientStream\n");
265 printer->Outdent();
266 printer->Print("}\n\n");
269 printer->Print(vars, "func (x *$StreamType$) Send(m *$Request$) error {\n");
270 printer->Indent();
271 printer->Print("return x.ClientStream.SendMsg(m)\n");
272 printer->Outdent();
273 printer->Print("}\n\n");
277 printer->Print(vars, "func (x *$StreamType$) Recv() (*$Response$, error) {\n");
278 printer->Indent();
279 printer->Print(vars, "m := new($Response$)\n");
280 printer->Print("if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err }\n");
281 printer->Print("return m, nil\n");
282 printer->Outdent();
283 printer->Print("}\n\n");
287 printer->Print(vars, "func (x *$StreamType$) CloseAndRecv() (*$Response$, error) {\n");
288 printer->Indent();
289 printer->Print("if err := x.ClientStream.CloseSend(); err != nil { return nil, err }\n");
290 printer->Print(vars, "m := new ($Response$)\n");
291 printer->Print("if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err }\n");
292 printer->Print("return m, nil\n");
293 printer->Outdent();
294 printer->Print("}\n\n");
299 void GenerateService(const grpc_generator::Service *service, grpc_generator::Printer* printer,
303 printer->Print(vars, "// Client API for $Service$ service\n");
304 printer->Print(vars, "type $Service$Client interface{\n");
305 printer->Indent();
307 GenerateClientMethodSignature(service->method(i).get(), printer, vars);
308 printer->Print("\n");
310 printer->Outdent();
311 printer->Print("}\n\n");
315 printer->Print(vars, "type $ServiceUnexported$Client struct {\n");
316 printer->Indent();
317 printer->Print(vars, "cc *$grpc$.ClientConn\n");
318 printer->Outdent();
319 printer->Print("}\n\n");
322 printer->Print(vars, "func New$Service$Client(cc *$grpc$.ClientConn) $Service$Client {\n");
323 printer->Indent();
324 printer->Print(vars, "return &$ServiceUnexported$Client{cc}");
325 printer->Outdent();
326 printer->Print("\n}\n\n");
339 GenerateClientMethod(method.get(), printer, vars);
343 printer->Print(vars, "// Server API for $Service$ service\n");
344 printer->Print(vars, "type $Service$Server interface {\n");
345 printer->Indent();
347 GenerateServerMethodSignature(service->method(i).get(), printer, vars);
348 printer->Print("\n");
350 printer->Outdent();
351 printer->Print("}\n\n");
354 printer->Print(vars, "func Register$Service$Server(s *$grpc$.Server, srv $Service$Server) {\n");
355 printer->Indent();
356 printer->Print(vars, "s.RegisterService(&$ServiceDesc$, srv)\n");
357 printer->Outdent();
358 printer->Print("}\n\n");
361 GenerateServerMethod(service->method(i).get(), printer, vars);
362 printer->Print("\n");
367 printer->Print(vars, "var $ServiceDesc$ = $grpc$.ServiceDesc{\n");
368 printer->Indent();
369 printer->Print(vars, "ServiceName: \"$Package$.$Service$\",\n");
370 printer->Print(vars, "HandlerType: (*$Service$Server)(nil),\n");
371 printer->Print(vars, "Methods: []$grpc$.MethodDesc{\n");
372 printer->Indent();
378 printer->Print("{\n");
379 printer->Indent();
380 printer->Print(vars, "MethodName: \"$Method$\",\n");
381 printer->Print(vars, "Handler: $Handler$, \n");
382 printer->Outdent();
383 printer->Print("},\n");
386 printer->Outdent();
387 printer->Print("},\n");
388 printer->Print(vars, "Streams: []$grpc$.StreamDesc{\n");
389 printer->Indent();
395 printer->Print("{\n");
396 printer->Indent();
397 printer->Print(vars, "StreamName: \"$Method$\",\n");
398 printer->Print(vars, "Handler: $Handler$, \n");
400 printer->Print("ClientStreams: true,\n");
402 printer->Print("ServerStreams: true,\n");
404 printer->Print("ServerStreams: true,\n");
405 printer->Print("ClientStreams: true,\n");
407 printer->Outdent();
408 printer->Print("},\n");
411 printer->Outdent();
412 printer->Print("},\n");
413 printer->Outdent();
414 printer->Print("}\n\n");
425 auto printer = p.get();
430 GenerateImports(file, printer, vars);
434 GenerateService(service, printer, vars);