go.ligato.io/vpp-agent/v3@v3.5.0/plugins/vpp/binapi/vpp2106/tapv2/tapv2_rpc.ba.go (about)

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