package pool

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

Index

Constants

const DefaultLimit = 50

Functions

func WithCloseItemTimeout

func WithCloseItemTimeout[PT Item[T], T any](t time.Duration) option[PT, T]

func WithCreateFunc

func WithCreateFunc[PT Item[T], T any](f func(ctx context.Context) (PT, error)) option[PT, T]

func WithCreateItemTimeout

func WithCreateItemTimeout[PT Item[T], T any](t time.Duration) option[PT, T]

func WithLimit

func WithLimit[PT Item[T], T any](size int) option[PT, T]

func WithTrace

func WithTrace[PT Item[T], T any](t *Trace) option[PT, T]

Types

type ChangeInfo

type ChangeInfo = Stats

type CloseDoneInfo

type CloseDoneInfo struct {
	Error error
}

type CloseStartInfo

type CloseStartInfo struct {
	// Context make available context in trace stack.Callerback function.
	// Pointer to context provide replacement of context in trace stack.Callerback function.
	// Warning: concurrent access to pointer on client side must be excluded.
	// Safe replacement of context are provided only inside stack.Callerback function
	Context *context.Context
	Call    stack.Caller
}

type GetDoneInfo

type GetDoneInfo struct {
	Error error
}

type GetStartInfo

type GetStartInfo struct {
	// Context make available context in trace stack.Callerback function.
	// Pointer to context provide replacement of context in trace stack.Callerback function.
	// Warning: concurrent access to pointer on client side must be excluded.
	// Safe replacement of context are provided only inside stack.Callerback function
	Context *context.Context
	Call    stack.Caller
}

type Item

type Item[T any] interface {
	*T
	IsAlive() bool
	Close(ctx context.Context) error
}

type NewDoneInfo

type NewDoneInfo struct {
	Limit int
}

type NewStartInfo

type NewStartInfo struct {
	// Context make available context in trace stack.Callerback function.
	// Pointer to context provide replacement of context in trace stack.Callerback function.
	// Warning: concurrent access to pointer on client side must be excluded.
	// Safe replacement of context are provided only inside stack.Callerback function
	Context *context.Context
	Call    stack.Caller
}

type Pool

type Pool[PT Item[T], T any] struct {
	// contains filtered or unexported fields
}

func New

func New[PT Item[T], T any](
	ctx context.Context,
	opts ...option[PT, T],
) *Pool[PT, T]

func (*Pool[PT, T]) Close

func (p *Pool[PT, T]) Close(ctx context.Context) (finalErr error)

func (*Pool[PT, T]) Stats

func (p *Pool[PT, T]) Stats() Stats

func (*Pool[PT, T]) With

func (p *Pool[PT, T]) With(
	ctx context.Context,
	f func(ctx context.Context, item PT) error,
	opts ...retry.Option,
) (finalErr error)

type PutDoneInfo

type PutDoneInfo struct {
	Error error
}

type PutStartInfo

type PutStartInfo struct {
	// Context make available context in trace stack.Callerback function.
	// Pointer to context provide replacement of context in trace stack.Callerback function.
	// Warning: concurrent access to pointer on client side must be excluded.
	// Safe replacement of context are provided only inside stack.Callerback function
	Context *context.Context
	Call    stack.Caller
}

type Stats

type Stats struct {
	Limit int
	Index int
	Idle  int
	InUse int
}

type Trace

type Trace struct {
	OnNew    func(*NewStartInfo) func(*NewDoneInfo)
	OnClose  func(*CloseStartInfo) func(*CloseDoneInfo)
	OnTry    func(*TryStartInfo) func(*TryDoneInfo)
	OnWith   func(*WithStartInfo) func(*WithDoneInfo)
	OnPut    func(*PutStartInfo) func(*PutDoneInfo)
	OnGet    func(*GetStartInfo) func(*GetDoneInfo)
	OnChange func(ChangeInfo)
}

type TryDoneInfo

type TryDoneInfo struct {
	Error error
}

type TryStartInfo

type TryStartInfo struct {
	// Context make available context in trace stack.Callerback function.
	// Pointer to context provide replacement of context in trace stack.Callerback function.
	// Warning: concurrent access to pointer on client side must be excluded.
	// Safe replacement of context are provided only inside stack.Callerback function
	Context *context.Context
	Call    stack.Caller
}

type WithDoneInfo

type WithDoneInfo struct {
	Error error

	Attempts int
}

type WithStartInfo

type WithStartInfo struct {
	// Context make available context in trace stack.Callerback function.
	// Pointer to context provide replacement of context in trace stack.Callerback function.
	// Warning: concurrent access to pointer on client side must be excluded.
	// Safe replacement of context are provided only inside stack.Callerback function
	Context *context.Context
	Call    stack.Caller
}

Source Files

defaults.go errors.go pool.go stats.go trace.go

Version
v3.75.2
Published
Jul 17, 2024
Platform
js/wasm
Imports
10 packages
Last checked
12 seconds ago

Tools for package owners.