github.com/edwarnicke/govpp@v0.0.0-20230130211138-14ef5d20b1d0/binapi/policer/policer_rpc.ba.go (about)

     1  // Code generated by GoVPP's binapi-generator. DO NOT EDIT.
     2  
     3  package policer
     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 policer.
    15  type RPCService interface {
    16  	PolicerAddDel(ctx context.Context, in *PolicerAddDel) (*PolicerAddDelReply, error)
    17  	PolicerBind(ctx context.Context, in *PolicerBind) (*PolicerBindReply, error)
    18  	PolicerDump(ctx context.Context, in *PolicerDump) (RPCService_PolicerDumpClient, error)
    19  	PolicerInput(ctx context.Context, in *PolicerInput) (*PolicerInputReply, error)
    20  	PolicerOutput(ctx context.Context, in *PolicerOutput) (*PolicerOutputReply, error)
    21  }
    22  
    23  type serviceClient struct {
    24  	conn api.Connection
    25  }
    26  
    27  func NewServiceClient(conn api.Connection) RPCService {
    28  	return &serviceClient{conn}
    29  }
    30  
    31  func (c *serviceClient) PolicerAddDel(ctx context.Context, in *PolicerAddDel) (*PolicerAddDelReply, error) {
    32  	out := new(PolicerAddDelReply)
    33  	err := c.conn.Invoke(ctx, in, out)
    34  	if err != nil {
    35  		return nil, err
    36  	}
    37  	return out, api.RetvalToVPPApiError(out.Retval)
    38  }
    39  
    40  func (c *serviceClient) PolicerBind(ctx context.Context, in *PolicerBind) (*PolicerBindReply, error) {
    41  	out := new(PolicerBindReply)
    42  	err := c.conn.Invoke(ctx, in, out)
    43  	if err != nil {
    44  		return nil, err
    45  	}
    46  	return out, api.RetvalToVPPApiError(out.Retval)
    47  }
    48  
    49  func (c *serviceClient) PolicerDump(ctx context.Context, in *PolicerDump) (RPCService_PolicerDumpClient, error) {
    50  	stream, err := c.conn.NewStream(ctx)
    51  	if err != nil {
    52  		return nil, err
    53  	}
    54  	x := &serviceClient_PolicerDumpClient{stream}
    55  	if err := x.Stream.SendMsg(in); err != nil {
    56  		return nil, err
    57  	}
    58  	if err = x.Stream.SendMsg(&memclnt.ControlPing{}); err != nil {
    59  		return nil, err
    60  	}
    61  	return x, nil
    62  }
    63  
    64  type RPCService_PolicerDumpClient interface {
    65  	Recv() (*PolicerDetails, error)
    66  	api.Stream
    67  }
    68  
    69  type serviceClient_PolicerDumpClient struct {
    70  	api.Stream
    71  }
    72  
    73  func (c *serviceClient_PolicerDumpClient) Recv() (*PolicerDetails, error) {
    74  	msg, err := c.Stream.RecvMsg()
    75  	if err != nil {
    76  		return nil, err
    77  	}
    78  	switch m := msg.(type) {
    79  	case *PolicerDetails:
    80  		return m, nil
    81  	case *memclnt.ControlPingReply:
    82  		err = c.Stream.Close()
    83  		if err != nil {
    84  			return nil, err
    85  		}
    86  		return nil, io.EOF
    87  	default:
    88  		return nil, fmt.Errorf("unexpected message: %T %v", m, m)
    89  	}
    90  }
    91  
    92  func (c *serviceClient) PolicerInput(ctx context.Context, in *PolicerInput) (*PolicerInputReply, error) {
    93  	out := new(PolicerInputReply)
    94  	err := c.conn.Invoke(ctx, in, out)
    95  	if err != nil {
    96  		return nil, err
    97  	}
    98  	return out, api.RetvalToVPPApiError(out.Retval)
    99  }
   100  
   101  func (c *serviceClient) PolicerOutput(ctx context.Context, in *PolicerOutput) (*PolicerOutputReply, error) {
   102  	out := new(PolicerOutputReply)
   103  	err := c.conn.Invoke(ctx, in, out)
   104  	if err != nil {
   105  		return nil, err
   106  	}
   107  	return out, api.RetvalToVPPApiError(out.Retval)
   108  }