github.com/edwarnicke/govpp@v0.0.0-20230130211138-14ef5d20b1d0/binapi/stn/stn_rpc.ba.go (about) 1 // Code generated by GoVPP's binapi-generator. DO NOT EDIT. 2 3 package stn 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 stn. 15 type RPCService interface { 16 StnAddDelRule(ctx context.Context, in *StnAddDelRule) (*StnAddDelRuleReply, error) 17 StnRulesDump(ctx context.Context, in *StnRulesDump) (RPCService_StnRulesDumpClient, 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) StnAddDelRule(ctx context.Context, in *StnAddDelRule) (*StnAddDelRuleReply, error) { 29 out := new(StnAddDelRuleReply) 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) StnRulesDump(ctx context.Context, in *StnRulesDump) (RPCService_StnRulesDumpClient, error) { 38 stream, err := c.conn.NewStream(ctx) 39 if err != nil { 40 return nil, err 41 } 42 x := &serviceClient_StnRulesDumpClient{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_StnRulesDumpClient interface { 53 Recv() (*StnRulesDetails, error) 54 api.Stream 55 } 56 57 type serviceClient_StnRulesDumpClient struct { 58 api.Stream 59 } 60 61 func (c *serviceClient_StnRulesDumpClient) Recv() (*StnRulesDetails, error) { 62 msg, err := c.Stream.RecvMsg() 63 if err != nil { 64 return nil, err 65 } 66 switch m := msg.(type) { 67 case *StnRulesDetails: 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 }