Help us shape the future of Go! Take the 2026 Go Developer Survey

pool

package
v9.1.7 Latest Latest
Warning

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

Go to latest
Published: Aug 4, 2020 License: BSD-2-Clause Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrClosed = errors.New("pg: database is closed")
View Source
var ErrPoolTimeout = errors.New("pg: connection pool timeout")

Functions

This section is empty.

Types

type BadConnError

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

func (BadConnError) Error

func (e BadConnError) Error() string

func (BadConnError) Unwrap

func (e BadConnError) Unwrap() error

type Conn

type Conn struct {
	ProcessID int32
	SecretKey int32

	Inited bool
	// contains filtered or unexported fields
}

func NewConn

func NewConn(netConn net.Conn) *Conn

func (*Conn) Close

func (cn *Conn) Close() error

func (*Conn) NetConn

func (cn *Conn) NetConn() net.Conn

func (*Conn) NextID

func (cn *Conn) NextID() string

func (*Conn) RemoteAddr

func (cn *Conn) RemoteAddr() net.Addr

func (*Conn) SetNetConn

func (cn *Conn) SetNetConn(netConn net.Conn)

func (*Conn) SetUsedAt

func (cn *Conn) SetUsedAt(tm time.Time)

func (*Conn) UsedAt

func (cn *Conn) UsedAt() time.Time

func (*Conn) WithReader

func (cn *Conn) WithReader(
	ctx context.Context, timeout time.Duration, fn func(rd *internal.BufReader) error,
) error

func (*Conn) WithWriter

func (cn *Conn) WithWriter(
	ctx context.Context, timeout time.Duration, fn func(wb *WriteBuffer) error,
) error

type ConnPool

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

func NewConnPool

func NewConnPool(opt *Options) *ConnPool

func (*ConnPool) Close

func (p *ConnPool) Close() error

func (*ConnPool) CloseConn

func (p *ConnPool) CloseConn(cn *Conn) error

func (*ConnPool) Filter

func (p *ConnPool) Filter(fn func(*Conn) bool) error

func (*ConnPool) Get

func (p *ConnPool) Get(c context.Context) (*Conn, error)

Get returns existed connection from the pool or creates a new one.

func (*ConnPool) IdleLen

func (p *ConnPool) IdleLen() int

IdleLen returns number of idle connections.

func (*ConnPool) Len

func (p *ConnPool) Len() int

Len returns total number of connections.

func (*ConnPool) NewConn

func (p *ConnPool) NewConn(c context.Context) (*Conn, error)

func (*ConnPool) Put

func (p *ConnPool) Put(cn *Conn)

func (*ConnPool) ReapStaleConns

func (p *ConnPool) ReapStaleConns() (int, error)

func (*ConnPool) Remove

func (p *ConnPool) Remove(cn *Conn, reason error)

func (*ConnPool) Stats

func (p *ConnPool) Stats() *Stats

type Options

type Options struct {
	Dialer  func(context.Context) (net.Conn, error)
	OnClose func(*Conn) error

	PoolSize           int
	MinIdleConns       int
	MaxConnAge         time.Duration
	PoolTimeout        time.Duration
	IdleTimeout        time.Duration
	IdleCheckFrequency time.Duration
}

type Pooler

type Pooler interface {
	NewConn(context.Context) (*Conn, error)
	CloseConn(*Conn) error

	Get(context.Context) (*Conn, error)
	Put(*Conn)
	Remove(*Conn, error)

	Len() int
	IdleLen() int
	Stats() *Stats

	Close() error
}

type SingleConnPool

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

func NewSingleConnPool

func NewSingleConnPool(pool Pooler) *SingleConnPool

func (*SingleConnPool) Close

func (p *SingleConnPool) Close() error

func (*SingleConnPool) CloseConn

func (p *SingleConnPool) CloseConn(cn *Conn) error

func (*SingleConnPool) Get

func (p *SingleConnPool) Get(c context.Context) (*Conn, error)

func (*SingleConnPool) IdleLen

func (p *SingleConnPool) IdleLen() int

func (*SingleConnPool) Len

func (p *SingleConnPool) Len() int

func (*SingleConnPool) NewConn

func (p *SingleConnPool) NewConn(c context.Context) (*Conn, error)

func (*SingleConnPool) Put

func (p *SingleConnPool) Put(cn *Conn)

func (*SingleConnPool) Remove

func (p *SingleConnPool) Remove(cn *Conn, reason error)

func (*SingleConnPool) Reset

func (p *SingleConnPool) Reset() error

func (*SingleConnPool) SetConn

func (p *SingleConnPool) SetConn(cn *Conn)

func (*SingleConnPool) Stats

func (p *SingleConnPool) Stats() *Stats

type Stats

type Stats struct {
	Hits     uint32 // number of times free connection was found in the pool
	Misses   uint32 // number of times free connection was NOT found in the pool
	Timeouts uint32 // number of times a wait timeout occurred

	TotalConns uint32 // number of total connections in the pool
	IdleConns  uint32 // number of idle connections in the pool
	StaleConns uint32 // number of stale connections removed from the pool
}

Stats contains pool state information and accumulated stats.

type WriteBuffer

type WriteBuffer struct {
	Bytes []byte
	// contains filtered or unexported fields
}

func NewWriteBuffer

func NewWriteBuffer() *WriteBuffer

func (*WriteBuffer) FinishMessage

func (buf *WriteBuffer) FinishMessage()

func (*WriteBuffer) FinishNullParam

func (buf *WriteBuffer) FinishNullParam()

func (*WriteBuffer) FinishParam

func (buf *WriteBuffer) FinishParam()

func (*WriteBuffer) ReadFrom

func (buf *WriteBuffer) ReadFrom(r io.Reader) (int64, error)

func (*WriteBuffer) Reset

func (buf *WriteBuffer) Reset()

func (*WriteBuffer) ResetBuffer

func (buf *WriteBuffer) ResetBuffer(b []byte)

func (*WriteBuffer) StartMessage

func (buf *WriteBuffer) StartMessage(c byte)

func (*WriteBuffer) StartParam

func (buf *WriteBuffer) StartParam()

func (*WriteBuffer) Write

func (buf *WriteBuffer) Write(b []byte) (int, error)

func (*WriteBuffer) WriteByte

func (buf *WriteBuffer) WriteByte(c byte) error

func (*WriteBuffer) WriteBytes

func (buf *WriteBuffer) WriteBytes(b []byte)

func (*WriteBuffer) WriteInt16

func (buf *WriteBuffer) WriteInt16(num int16)

func (*WriteBuffer) WriteInt32

func (buf *WriteBuffer) WriteInt32(num int32)

func (*WriteBuffer) WriteString

func (buf *WriteBuffer) WriteString(s string)

Jump to

Keyboard shortcuts

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