package pool
import "context"
type SingleConnPool struct {
pool Pooler
cn *Conn
stickyErr error
}
var _ Pooler = (*SingleConnPool )(nil )
func NewSingleConnPool (pool Pooler , cn *Conn ) *SingleConnPool {
return &SingleConnPool {
pool : pool ,
cn : cn ,
}
}
func (p *SingleConnPool ) NewConn (ctx context .Context ) (*Conn , error ) {
return p .pool .NewConn (ctx )
}
func (p *SingleConnPool ) CloseConn (cn *Conn ) error {
return p .pool .CloseConn (cn )
}
func (p *SingleConnPool ) Get (ctx context .Context ) (*Conn , error ) {
if p .stickyErr != nil {
return nil , p .stickyErr
}
return p .cn , nil
}
func (p *SingleConnPool ) Put (ctx context .Context , cn *Conn ) {}
func (p *SingleConnPool ) Remove (ctx context .Context , cn *Conn , reason error ) {
p .cn = nil
p .stickyErr = reason
}
func (p *SingleConnPool ) Close () error {
p .cn = nil
p .stickyErr = ErrClosed
return nil
}
func (p *SingleConnPool ) Len () int {
return 0
}
func (p *SingleConnPool ) IdleLen () int {
return 0
}
func (p *SingleConnPool ) Stats () *Stats {
return &Stats {}
}
The pages are generated with Golds v0.8.2 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .