github.com/networkservicemesh/govpp@v0.0.0-20240328101142-8a444680fbba/binapi/mss_clamp/mss_clamp_rpc.ba.go (about)

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