github.com/networkservicemesh/govpp@v0.0.0-20240328101142-8a444680fbba/binapi/gre/gre_rpc.ba.go (about) 1 // Code generated by GoVPP's binapi-generator. DO NOT EDIT. 2 3 package gre 4 5 import ( 6 "context" 7 "fmt" 8 "io" 9 10 memclnt "github.com/networkservicemesh/govpp/binapi/memclnt" 11 api "go.fd.io/govpp/api" 12 ) 13 14 // RPCService defines RPC service gre. 15 type RPCService interface { 16 GreTunnelAddDel(ctx context.Context, in *GreTunnelAddDel) (*GreTunnelAddDelReply, error) 17 GreTunnelDump(ctx context.Context, in *GreTunnelDump) (RPCService_GreTunnelDumpClient, error) 18 } 19 20 type serviceClient struct { 21 conn api.Connection 22 } 23 24 func NewServiceClient(conn api.Connection) RPCService { 25 return &serviceClient{conn} 26 } 27 28 func (c *serviceClient) GreTunnelAddDel(ctx context.Context, in *GreTunnelAddDel) (*GreTunnelAddDelReply, error) { 29 out := new(GreTunnelAddDelReply) 30 err := c.conn.Invoke(ctx, in, out) 31 if err != nil { 32 return nil, err 33 } 34 return out, api.RetvalToVPPApiError(out.Retval) 35 } 36 37 func (c *serviceClient) GreTunnelDump(ctx context.Context, in *GreTunnelDump) (RPCService_GreTunnelDumpClient, error) { 38 stream, err := c.conn.NewStream(ctx) 39 if err != nil { 40 return nil, err 41 } 42 x := &serviceClient_GreTunnelDumpClient{stream} 43 if err := x.Stream.SendMsg(in); err != nil { 44 return nil, err 45 } 46 if err = x.Stream.SendMsg(&memclnt.ControlPing{}); err != nil { 47 return nil, err 48 } 49 return x, nil 50 } 51 52 type RPCService_GreTunnelDumpClient interface { 53 Recv() (*GreTunnelDetails, error) 54 api.Stream 55 } 56 57 type serviceClient_GreTunnelDumpClient struct { 58 api.Stream 59 } 60 61 func (c *serviceClient_GreTunnelDumpClient) Recv() (*GreTunnelDetails, error) { 62 msg, err := c.Stream.RecvMsg() 63 if err != nil { 64 return nil, err 65 } 66 switch m := msg.(type) { 67 case *GreTunnelDetails: 68 return m, nil 69 case *memclnt.ControlPingReply: 70 err = c.Stream.Close() 71 if err != nil { 72 return nil, err 73 } 74 return nil, io.EOF 75 default: 76 return nil, fmt.Errorf("unexpected message: %T %v", m, m) 77 } 78 }