-
Notifications
You must be signed in to change notification settings - Fork 109
/
Copy pathhelloworld.trpc.go
110 lines (90 loc) · 3.55 KB
/
helloworld.trpc.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
// Code generated by trpc-go/trpc-cmdline v2.1.6. DO NOT EDIT.
// source: helloworld.proto
package pb
import (
"context"
"errors"
"fmt"
_ "trpc.group/trpc-go/trpc-go"
"trpc.group/trpc-go/trpc-go/client"
"trpc.group/trpc-go/trpc-go/codec"
_ "trpc.group/trpc-go/trpc-go/http"
"trpc.group/trpc-go/trpc-go/server"
)
// START ======================================= Server Service Definition ======================================= START
// GreeterService defines service.
type GreeterService interface {
Hello(ctx context.Context, req *HelloRequest) (*HelloReply, error)
}
func GreeterService_Hello_Handler(svr interface{}, ctx context.Context, f server.FilterFunc) (interface{}, error) {
req := &HelloRequest{}
filters, err := f(req)
if err != nil {
return nil, err
}
handleFunc := func(ctx context.Context, reqbody interface{}) (interface{}, error) {
return svr.(GreeterService).Hello(ctx, reqbody.(*HelloRequest))
}
var rsp interface{}
rsp, err = filters.Filter(ctx, req, handleFunc)
if err != nil {
return nil, err
}
return rsp, nil
}
// GreeterServer_ServiceDesc descriptor for server.RegisterService.
var GreeterServer_ServiceDesc = server.ServiceDesc{
ServiceName: "trpc.helloworld.Greeter",
HandlerType: ((*GreeterService)(nil)),
Methods: []server.Method{
{
Name: "/trpc.helloworld.Greeter/Hello",
Func: GreeterService_Hello_Handler,
},
},
}
// RegisterGreeterService registers service.
func RegisterGreeterService(s server.Service, svr GreeterService) {
if err := s.Register(&GreeterServer_ServiceDesc, svr); err != nil {
panic(fmt.Sprintf("Greeter register error:%v", err))
}
}
// START --------------------------------- Default Unimplemented Server Service --------------------------------- START
type UnimplementedGreeter struct{}
func (s *UnimplementedGreeter) Hello(ctx context.Context, req *HelloRequest) (*HelloReply, error) {
return nil, errors.New("rpc Hello of service Greeter is not implemented")
}
// END --------------------------------- Default Unimplemented Server Service --------------------------------- END
// END ======================================= Server Service Definition ======================================= END
// START ======================================= Client Service Definition ======================================= START
// GreeterClientProxy defines service client proxy
type GreeterClientProxy interface {
Hello(ctx context.Context, req *HelloRequest, opts ...client.Option) (rsp *HelloReply, err error)
}
type GreeterClientProxyImpl struct {
client client.Client
opts []client.Option
}
var NewGreeterClientProxy = func(opts ...client.Option) GreeterClientProxy {
return &GreeterClientProxyImpl{client: client.DefaultClient, opts: opts}
}
func (c *GreeterClientProxyImpl) Hello(ctx context.Context, req *HelloRequest, opts ...client.Option) (*HelloReply, error) {
ctx, msg := codec.WithCloneMessage(ctx)
defer codec.PutBackMessage(msg)
msg.WithClientRPCName("/trpc.helloworld.Greeter/Hello")
msg.WithCalleeServiceName(GreeterServer_ServiceDesc.ServiceName)
msg.WithCalleeApp("")
msg.WithCalleeServer("")
msg.WithCalleeService("Greeter")
msg.WithCalleeMethod("Hello")
msg.WithSerializationType(codec.SerializationTypePB)
callopts := make([]client.Option, 0, len(c.opts)+len(opts))
callopts = append(callopts, c.opts...)
callopts = append(callopts, opts...)
rsp := &HelloReply{}
if err := c.client.Invoke(ctx, req, rsp, callopts...); err != nil {
return nil, err
}
return rsp, nil
}
// END ======================================= Client Service Definition ======================================= END