pool

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 1, 2023 License: BSD-3-Clause Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultBuffer = NewBuffer(2048)
View Source
var DefaultConnOptions = &ConnOptions{
	IdleMaxCap: 30,
	Timeout:    90 * time.Second,
}
View Source
var DefaultConnProvider = NewConnProvider(DefaultConnOptions)

Functions

This section is empty.

Types

type Buffer

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

func NewBuffer

func NewBuffer(size int) *Buffer

func (*Buffer) Get

func (b *Buffer) Get() []byte

func (*Buffer) Put

func (b *Buffer) Put(buf []byte)

type ConnContainer

type ConnContainer interface {
	// Get returned a idle net.Conn
	Get(addr string) (net.Conn, error)

	// Put place a idle net.Conn into the pool
	Put(conn net.Conn) error

	// Release connection pool
	Release() error
}

ConnContainer connection pool interface

type ConnOptions

type ConnOptions struct {
	// IdleMaxCap is max connection capacity for a single net.Addr
	IdleMaxCap int

	// Timeout specifies how long the connection will timeout
	Timeout time.Duration
}

ConnOptions is ConnProvider options

type ConnProvider

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

ConnProvider is a connection pool, it implements ConnContainer

func NewConnProvider

func NewConnProvider(opt *ConnOptions) *ConnProvider

Create a ConnProvider

func (*ConnProvider) Get

func (p *ConnProvider) Get(addr string) (net.Conn, error)

Get returned a idle net.Conn

func (*ConnProvider) Put

func (p *ConnProvider) Put(conn net.Conn) error

Put place a idle net.Conn into the pool

func (*ConnProvider) Release

func (p *ConnProvider) Release() error

Release connection pool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL