Documentation
¶
Index ¶
- Variables
- type ChannelPoolOption
- func ChannelPoolWithConnectionIdleTimeout(timeout time.Duration) ChannelPoolOption
- func ChannelPoolWithIdleTimeout(timeout time.Duration) ChannelPoolOption
- func ChannelPoolWithInitialCap(capacity uint32) ChannelPoolOption
- func ChannelPoolWithLogger(logger logr.Logger) ChannelPoolOption
- func ChannelPoolWithMaxCap(capacity uint32) ChannelPoolOption
- func ChannelPoolWithName(name string) ChannelPoolOption
- type Connection
- type ConnectionChannel
- type Factory
- type Pool
- type Registry
- type SyncMapPoolRegistryOption
Constants ¶
This section is empty.
Variables ¶
var ( ErrInvalidCapacity = errors.New("invalid capacity settings") ErrNilConnection = errors.New("could not put nil connection") )
var ( DefaultInitialCap uint32 = 0 DefaultMaxCap uint32 = 20 DefaultConnectionIdleTimeout time.Duration = time.Second * 90 DefaultIdleTimeout time.Duration = time.Second * 90 )
var ( // ErrClosed is the error resulting if the pool is closed via pool.Close(). ErrClosed = errors.New("pool is closed") )
var ( // ErrPoolNotFound is the error to indicate when a requested pool is not found. ErrPoolNotFound = errors.New("pool is not found") )
Functions ¶
This section is empty.
Types ¶
type ChannelPoolOption ¶
type ChannelPoolOption func(*channelPool)
ChannelPoolOption is a function for channel pool options.
func ChannelPoolWithConnectionIdleTimeout ¶
func ChannelPoolWithConnectionIdleTimeout(timeout time.Duration) ChannelPoolOption
ChannelPoolWithConnectionIdleTimeout sets connection idle timeout of the pool.
func ChannelPoolWithIdleTimeout ¶
func ChannelPoolWithIdleTimeout(timeout time.Duration) ChannelPoolOption
ChannelPoolWithIdleTimeout sets idle timeout of the pool.
func ChannelPoolWithInitialCap ¶
func ChannelPoolWithInitialCap(capacity uint32) ChannelPoolOption
ChannelPoolWithInitialCap sets initial capability of the pool.
func ChannelPoolWithLogger ¶
func ChannelPoolWithLogger(logger logr.Logger) ChannelPoolOption
ChannelPoolWithLogger sets the logger of the pool.
func ChannelPoolWithMaxCap ¶
func ChannelPoolWithMaxCap(capacity uint32) ChannelPoolOption
ChannelPoolWithMaxCap sets maximum connection count of the pool.
func ChannelPoolWithName ¶
func ChannelPoolWithName(name string) ChannelPoolOption
ChannelPoolWithName sets the name of the pool.
type Connection ¶
type Connection interface {
net.Conn
// Discard closes the underlying net.Conn and mark the connection closed.
Discard() error
// IsClosed returns whether the connection is closed.
IsClosed() bool
// Acquire signals when the connection is served from the connection pool.
Acquire()
// Release signals when the connection is put back into the connection pool.
Release()
}
Connection interface describes a pool connection.
type ConnectionChannel ¶
type ConnectionChannel chan Connection
type Pool ¶
type Pool interface {
// Get returns a connection from the pool or create new one at request.
Get() (net.Conn, error)
// Put puts the connection back to the pool.
Put(net.Conn) error
// Len returns the current number of connections of the pool.
Len() int
// Close closes the pool and all its connections. After Close() the pool is
// no longer usable.
Close() error
// IsClosed returns whether the pool is closed.
IsClosed() bool
}
Pool interface describes a pool implementation.
func NewChannelPool ¶
func NewChannelPool(factory Factory, opts ...ChannelPoolOption) (Pool, error)
NewChannelPool returns a new pool based on buffered channels. A new connection will be created during a Get() via the Factory(), if there is no new connection available in the pool.
type Registry ¶
type Registry interface {
// GetPool returns a registered pool for the given id or an error.
GetPool(id string) (Pool, error)
// HasPool returns whether a pool is registered with the given id.
HasPool(id string) bool
// AddPool registers the given pool for the given id.
AddPool(id string, pool Pool)
// RemovePool removes the pool registered for the given id.
RemovePool(id string)
// Len returns the current number of registered pools.
Len() int
// Close closes the registry and also every pool registered into it.
// The registry is unusable after this call.
Close() error
// IsClosed returns whether the registry is closed.
IsClosed() bool
}
Registry interface describes a pool registry.
func NewSyncMapPoolRegistry ¶
func NewSyncMapPoolRegistry(opts ...SyncMapPoolRegistryOption) Registry
type SyncMapPoolRegistryOption ¶
type SyncMapPoolRegistryOption func(*syncMapPoolRegistry)
SyncMapPoolRegistryOption is a function for sync map pool registry options.
func SyncMapPoolRegistryWithLogger ¶
func SyncMapPoolRegistryWithLogger(logger logr.Logger) SyncMapPoolRegistryOption
SyncMapPoolRegistryWithLogger sets the logger of the pool.
func SyncMapPoolRegistryWithName ¶
func SyncMapPoolRegistryWithName(name string) SyncMapPoolRegistryOption
SyncMapPoolRegistryWithName sets the name of the registry.