OSDN Git Service

new repo
[bytom/vapor.git] / vendor / github.com / go-kit / kit / transport / grpc / _grpc_test / client.go
1 package test
2
3 import (
4         "context"
5
6         "google.golang.org/grpc"
7
8         "github.com/go-kit/kit/endpoint"
9         grpctransport "github.com/go-kit/kit/transport/grpc"
10         "github.com/go-kit/kit/transport/grpc/_grpc_test/pb"
11 )
12
13 type clientBinding struct {
14         test endpoint.Endpoint
15 }
16
17 func (c *clientBinding) Test(ctx context.Context, a string, b int64) (context.Context, string, error) {
18         response, err := c.test(ctx, TestRequest{A: a, B: b})
19         if err != nil {
20                 return nil, "", err
21         }
22         r := response.(*TestResponse)
23         return r.Ctx, r.V, nil
24 }
25
26 func NewClient(cc *grpc.ClientConn) Service {
27         return &clientBinding{
28                 test: grpctransport.NewClient(
29                         cc,
30                         "pb.Test",
31                         "Test",
32                         encodeRequest,
33                         decodeResponse,
34                         &pb.TestResponse{},
35                         grpctransport.ClientBefore(
36                                 injectCorrelationID,
37                         ),
38                         grpctransport.ClientBefore(
39                                 displayClientRequestHeaders,
40                         ),
41                         grpctransport.ClientAfter(
42                                 displayClientResponseHeaders,
43                                 displayClientResponseTrailers,
44                         ),
45                         grpctransport.ClientAfter(
46                                 extractConsumedCorrelationID,
47                         ),
48                 ).Endpoint(),
49         }
50 }