github.com/TrueCloudLab/frostfs-api-go/v2@v2.0.0-20230228134343-196241c4e79a/rpc/client/client.go (about)

     1  package client
     2  
     3  import (
     4  	"google.golang.org/grpc"
     5  	"google.golang.org/grpc/credentials"
     6  )
     7  
     8  // Client represents client for exchanging messages
     9  // with a remote server using Protobuf RPC.
    10  type Client struct {
    11  	cfg
    12  }
    13  
    14  // New creates, configures via options and returns new Client instance.
    15  func New(opts ...Option) *Client {
    16  	var c Client
    17  	c.initDefault()
    18  
    19  	for _, opt := range opts {
    20  		opt(&c.cfg)
    21  	}
    22  
    23  	if c.tlsCfg != nil {
    24  		c.grpcDialOpts = append(c.grpcDialOpts, grpc.WithTransportCredentials(credentials.NewTLS(c.tlsCfg)))
    25  	}
    26  
    27  	return &c
    28  }