/
hello.go
75 lines (64 loc) · 1.73 KB
/
hello.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
// Code generated by Kitex v0.5.1. DO NOT EDIT.
package hello
import (
"context"
client "github.com/cloudwego/kitex/client"
kitex "github.com/cloudwego/kitex/pkg/serviceinfo"
api "github.com/kitex-contrib/registry-nacos/v2/example/hello/kitex_gen/api"
)
func serviceInfo() *kitex.ServiceInfo {
return helloServiceInfo
}
var helloServiceInfo = NewServiceInfo()
func NewServiceInfo() *kitex.ServiceInfo {
serviceName := "Hello"
handlerType := (*api.Hello)(nil)
methods := map[string]kitex.MethodInfo{
"echo": kitex.NewMethodInfo(echoHandler, newHelloEchoArgs, newHelloEchoResult, false),
}
extra := map[string]interface{}{
"PackageName": "api",
}
svcInfo := &kitex.ServiceInfo{
ServiceName: serviceName,
HandlerType: handlerType,
Methods: methods,
PayloadCodec: kitex.Thrift,
KiteXGenVersion: "v0.5.1",
Extra: extra,
}
return svcInfo
}
func echoHandler(ctx context.Context, handler interface{}, arg, result interface{}) error {
realArg := arg.(*api.HelloEchoArgs)
realResult := result.(*api.HelloEchoResult)
success, err := handler.(api.Hello).Echo(ctx, realArg.Req)
if err != nil {
return err
}
realResult.Success = success
return nil
}
func newHelloEchoArgs() interface{} {
return api.NewHelloEchoArgs()
}
func newHelloEchoResult() interface{} {
return api.NewHelloEchoResult()
}
type kClient struct {
c client.Client
}
func newServiceClient(c client.Client) *kClient {
return &kClient{
c: c,
}
}
func (p *kClient) Echo(ctx context.Context, req *api.Request) (r *api.Response, err error) {
var _args api.HelloEchoArgs
_args.Req = req
var _result api.HelloEchoResult
if err = p.c.Call(ctx, "echo", &_args, &_result); err != nil {
return
}
return _result.GetSuccess(), nil
}