package conn

import "github.com/ydb-platform/ydb-go-sdk/v3/internal/conn"

Index

Constants

const (
	Unknown = State(iota)
	Created
	Online
	Banned
	Offline
	Destroyed
)

Functions

func UseWrapping

func UseWrapping(ctx context.Context) bool

func WithAfterFunc

func WithAfterFunc(
	cc grpc.ClientConnInterface,
	after func(),
) grpc.ClientConnInterface

func WithAppendOptions

func WithAppendOptions(cc grpc.ClientConnInterface, appendOpts ...grpc.CallOption) grpc.ClientConnInterface

func WithBeforeFunc

func WithBeforeFunc(
	cc grpc.ClientConnInterface,
	before func(),
) grpc.ClientConnInterface

func WithContextModifier

func WithContextModifier(
	cc grpc.ClientConnInterface,
	modifyCtx func(ctx context.Context) context.Context,
) grpc.ClientConnInterface

func WithoutWrapping

func WithoutWrapping(ctx context.Context) context.Context

Types

type Config

type Config interface {
	DialTimeout() time.Duration
	Trace() *trace.Driver
	ConnectionTTL() time.Duration
	GrpcDialOptions() []grpc.DialOption
}

type Conn

type Conn interface {
	grpc.ClientConnInterface

	Endpoint() endpoint.Endpoint

	LastUsage() time.Time

	Ping(ctx context.Context) error
	IsState(states ...State) bool
	GetState() State
	SetState(State) State
	Unban() State
}

func New

func New(e endpoint.Endpoint, config Config, opts ...option) Conn

type Pool

type Pool struct {
	// contains filtered or unexported fields
}

func NewPool

func NewPool(config Config) *Pool

func (*Pool) Allow

func (p *Pool) Allow(ctx context.Context, cc Conn)

func (*Pool) Ban

func (p *Pool) Ban(ctx context.Context, cc Conn, cause error)

func (*Pool) Get

func (p *Pool) Get(endpoint endpoint.Endpoint) Conn

func (*Pool) Release

func (p *Pool) Release(ctx context.Context) error

func (*Pool) Take

func (p *Pool) Take(context.Context) error

type State

type State int8

func (State) Code

func (s State) Code() int

func (State) IsValid

func (s State) IsValid() bool

func (State) String

func (s State) String() string

Source Files

config.go conn.go context.go error.go grpc_client_stream.go middleware.go pool.go state.go trace_id.go

Version
v3.53.1
Published
Oct 12, 2023
Platform
js/wasm
Imports
22 packages
Last checked
11 seconds ago

Tools for package owners.