github.com/edwarnicke/govpp@v0.0.0-20230130211138-14ef5d20b1d0/binapi/fib/fib_rpc.ba.go (about) 1 // Code generated by GoVPP's binapi-generator. DO NOT EDIT. 2 3 package fib 4 5 import ( 6 "context" 7 "fmt" 8 "io" 9 10 api "git.fd.io/govpp.git/api" 11 memclnt "github.com/edwarnicke/govpp/binapi/memclnt" 12 ) 13 14 // RPCService defines RPC service fib. 15 type RPCService interface { 16 FibSourceAdd(ctx context.Context, in *FibSourceAdd) (*FibSourceAddReply, error) 17 FibSourceDump(ctx context.Context, in *FibSourceDump) (RPCService_FibSourceDumpClient, 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) FibSourceAdd(ctx context.Context, in *FibSourceAdd) (*FibSourceAddReply, error) { 29 out := new(FibSourceAddReply) 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) FibSourceDump(ctx context.Context, in *FibSourceDump) (RPCService_FibSourceDumpClient, error) { 38 stream, err := c.conn.NewStream(ctx) 39 if err != nil { 40 return nil, err 41 } 42 x := &serviceClient_FibSourceDumpClient{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_FibSourceDumpClient interface { 53 Recv() (*FibSourceDetails, error) 54 api.Stream 55 } 56 57 type serviceClient_FibSourceDumpClient struct { 58 api.Stream 59 } 60 61 func (c *serviceClient_FibSourceDumpClient) Recv() (*FibSourceDetails, error) { 62 msg, err := c.Stream.RecvMsg() 63 if err != nil { 64 return nil, err 65 } 66 switch m := msg.(type) { 67 case *FibSourceDetails: 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 }