frostfs-sdk-go/api/rpc/client/client.go
Pavel Pogodaev 6ce73790ea [#276] Merge repo with frostfs-api-go
Signed-off-by: Pavel Pogodaev <p.pogodaev@yadro.com>
2024-10-22 14:05:12 +00:00

30 lines
726 B
Go

package client
import (
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/api/util/proto/encoding"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"
)
// Client represents client for exchanging messages
// with a remote server using Protobuf RPC.
type Client struct {
cfg
}
// New creates, configures via options and returns new Client instance.
func New(opts ...Option) *Client {
var c Client
c.initDefault()
for _, opt := range opts {
opt(&c.cfg)
}
c.grpcDialOpts = append(c.grpcDialOpts, grpc.WithDefaultCallOptions(grpc.ForceCodec(encoding.ProtoCodec{})))
if c.tlsCfg != nil {
c.grpcDialOpts = append(c.grpcDialOpts, grpc.WithTransportCredentials(credentials.NewTLS(c.tlsCfg)))
}
return &c
}