forked from mirror/redis
68 lines
1.0 KiB
Go
68 lines
1.0 KiB
Go
package pool
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/go-redis/redis/internal"
|
|
)
|
|
|
|
type SingleConnPool struct {
|
|
cn *Conn
|
|
cnClosed bool
|
|
}
|
|
|
|
var _ Pooler = (*SingleConnPool)(nil)
|
|
|
|
func NewSingleConnPool(cn *Conn) *SingleConnPool {
|
|
return &SingleConnPool{
|
|
cn: cn,
|
|
}
|
|
}
|
|
|
|
func (p *SingleConnPool) NewConn(context.Context) (*Conn, error) {
|
|
panic("not implemented")
|
|
}
|
|
|
|
func (p *SingleConnPool) CloseConn(*Conn) error {
|
|
panic("not implemented")
|
|
}
|
|
|
|
func (p *SingleConnPool) Get(ctx context.Context) (*Conn, error) {
|
|
if p.cnClosed {
|
|
return nil, internal.ErrSingleConnPoolClosed
|
|
}
|
|
return p.cn, nil
|
|
}
|
|
|
|
func (p *SingleConnPool) Put(cn *Conn) {
|
|
if p.cn != cn {
|
|
panic("p.cn != cn")
|
|
}
|
|
}
|
|
|
|
func (p *SingleConnPool) Remove(cn *Conn) {
|
|
if p.cn != cn {
|
|
panic("p.cn != cn")
|
|
}
|
|
p.cnClosed = true
|
|
}
|
|
|
|
func (p *SingleConnPool) Len() int {
|
|
if p.cnClosed {
|
|
return 0
|
|
}
|
|
return 1
|
|
}
|
|
|
|
func (p *SingleConnPool) IdleLen() int {
|
|
return 0
|
|
}
|
|
|
|
func (p *SingleConnPool) Stats() *Stats {
|
|
return nil
|
|
}
|
|
|
|
func (p *SingleConnPool) Close() error {
|
|
return nil
|
|
}
|